Wednesday, May 23, 2007

installing zte mc315 on linux

Here are 4 steps to get the reliance aircard ZTE MC315 on linux. I got it running on ubuntu 7.04.

1. Insert the card and look at dmesg
output : 0.0: ttyS3 at I/O 0x2e8 (irq = 3) is a 16C950/954

This says that your card was detected properly.
You can also run "pccardctl info"
output =
PRODID_1="CDMA1X"
PRODID_2="CARD"
PRODID_3=""
PRODID_4=""
MANFID=0279,950b
FUNCID=2
PRODID_1=""
PRODID_2=""
PRODID_3=""
PRODID_4=""
MANFID=0000,0000
FUNCID=255


2. edit /etc/wvdial.conf

[Dialer Defaults]
Modem = /dev/ttyS3
Baud = 57600
SetVolume = 0
Dial-AT-OK ATDT Command =
Init1 = ATZ
FlowControl = Hardware (CRTSCTS)
Phone = #777
Username =
Password =
New PPPD = yes
Carrier Check = no
Stupid Mode = 1

3. Run set serial
(download and install setserial - if you dont have setserial)
"setserial /dev/ttyS3 baud_base 230400"

4. run wvdial
wvdial

So to get it running everytime you will need to create a shell script doing steps 3 & 4. Say mydial

---------------
setserial /dev/ttyS3 baud_base 230400
wvdial
---------------

PS
This method is also not perfect. I got one card working with this procedure, but could not get another card working using the same procedure.

Let me know if this helps you getting your ZTE MC 315 card running on linux.

PS 2
And to add to it, finally i have got my card running.
The trick is simple - you have to play with the UART and the baud_base.

Just run setserial on your machine and it will give the following output for UART and baud_base

* uart set UART type (none, 8250, 16450, 16550, 16550A,
16650, 16650V2, 16750, 16850, 16950, 16954)
* baud_base set base baud rate (CLOCK_FREQ / 16)


What i did was that i kept on changing my UART and kept the baud_base as 230400. I changed my UART to 16850 and then to 16750. And my card responded at 16750. And i got connected to the internet

So, My dialup script does this before doing wvdial

setserial /dev/ttyS3 uart 16750
setserial /dev/ttyS3 baud_base 230400


And this gets my card running. So to get your card running, i would suggest you try setting different UART and baud_base...

5 comments:

Anonymous said...

hi Jayant,

I am a student at IIT-Delhi, I have successfully installed and made this stupid piece of chinese engineering work. Basically the problem is with the selection of baud rate between the serial port/UART (this one has an Oxford Semiconductor one, one of the bad ones) and actual IP. You will first need to make sure that your serial port driver (serial module in 2.6.xx) is selecting the prescalar values properly and configuring UART clock divider properly. Next at times u need to tell the modem explicitly using AT+IPR=XXXXXX command abt the next baud rate u will be using.
Done all this which involves patching the serial driver a bit, this piece of shit will finally connect like any other digial whore. I will never understand why they ship such products with all broken implementation of a lot of protocols (like 16650A UART, AT command set etc). The Sierra card was a much better option than this shit.

Anonymous said...

Hi All,

I was using the zte mc315 data card for last one month. but suddenly it stop working... I don't thing its demage, may be some of its setting changed after re-installation of os.

here is wvdial output.

root@mjha-laptop:/home/mjha# wvdial
--> WvDial: Internet dialer version 1.56
--> Initializing modem.
--> Sending: ATZ
--> Sending: ATQ0
ATQ0
OK
--> Re-Sending: ATZ
ATZ
OK
--> Initializing modem.
--> Sending: ATZ
--> Sending: ATQ0
ATQ0
OK
--> Re-Sending: ATZ
ATZ
OK
--> Initializing modem.
--> Sending: ATZ
--> Sending: ATQ0
ATQ0
OK
--> Re-Sending: ATZ
ATZ
OK

Please suggest.

Anonymous said...

Jayant, thank you very much for this wonderful tutorial.

It atleast gave me a place to start at. However, I did all the steps you mentioned but it got stuck at the error "Modem not responding".

I also tried changing various baud rates and also the UART but no luck.

Can you please suggest anything?

Thanka

Anonymous said...

Man, this just doesn't seem to work. ZTE is stuck on linux. Ive been banging my head against this obstacle for a while. The fact the Modem is alive, well, and seeming to respond to some commands makes it even more frustrating.

The IIT-Delhi guy who seems to have cracked to the issue has not left anything out here to work with other than his cryptic stuff "prescaler", UART, grease, voodoo etc...

Anybody with any concrete info, please post here!! Which files to modify, which to patch, what exactly is the problem?...

Kazim Zaidi said...

Thanks a lot.

I'd have thrown this piece of crap otherwise.

There was a recent discussion on ILUGD Mailing List about ZTE MC315. The conclusion -- ZTE won't work -- disappointed me a lot.

Thanks to your post, I got it working now.

- Kazim Zaidi
Blog: http://tuxplayground.blogspot.com