2008/05/16

ZTE MF620 in linux

There is a how-to in Portuguese here

You need to install
- USB ModeSwitch
- Wvdial
- Gcom
- libusb

To install the first one open a terminal window and...
#wget http://www.draisberghof.de/usb_modeswitch/usb_modeswitch-0.9.2.tar.bz2
#tar -jxvf usb_modeswitch-0.9.2.tar.bz2
#cd usb_modeswitch-0.9.2
#./compile.sh
#
cp usb_modeswitch /usr/sbin/

The others you can find in the package manager

then edit
gedit /etc/wvdial.conf

and add this

[Dialer default]
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
; Phone =
ISDN = 0
; Username =
Init1 = ATZ
; Password =
Modem = /dev/ttyUSB0
Baud = 460800
[Dialer tmn]
Init2 = ATZ
Init3 = AT+CGDCONT=1,"ip","internet"
Stupid Mode = 1
ISDN = 0
Phone = *99***1#
Ask Password = 0
Modem = /dev/ttyUSB0
Username = tmn
Dial Command = ATD
Password = "your_pin"
Baud = 460800

Next edit/create
/etc/usb_modeswitch.conf and add
DefaultVendor=0x19d2
DefaultProduct=0x2000
TargetVendor=0x19d2
TargetProduct=0x0001
MessageEndpoint=0x04
MessageContent="5553424308a0b7870000000000000600000000000000000000000000000000"


One more to edit
gedit /etc/udev/rules.d/15-zte-mf620.rules
with
ACTION!="add", GOTO="ZTE_End"
# Is this the ZeroCD device?
SUBSYSTEM=="usb", SYSFS{idProduct}=="2000",
SYSFS{idVendor}=="19d2", GOTO="ZTE_ZeroCD"
# Is this the actual modem?
SUBSYSTEM=="usb", SYSFS{idProduct}=="0001",
SYSFS{idVendor}=="19d2", GOTO="ZTE_Modem"
LABEL="ZTE_ZeroCD"
# This is the ZeroCD part of the card, remove
# the usb_storage kernel module so
# it does not get treated like a storage device
#RUN+="/sbin/rmmod usb_storage"
RUN+="/usr/sbin/usb_modeswitch -d 1 -v 0x19d2 -p 0x2000 -V 0x19d2 -P 0x0001"
LABEL="ZTE_Modem"
# This is the Modem part of the card, let's
# load usbserial with the correct vendor
# and product ID's so we get our usb serial devices
RUN+="/sbin/modprobe usbserial vendor=0x19d2 product=0x0001",
# Make users belonging to the dialout group
# able to use the usb serial devices.
#MODE="660", GROUP="dialout"
MODE="660", GROUP="tty"
LABEL="ZTE_End"


Now connect the device and do
#tail -f /var/log/messages

and wait until these lines are shown
.... [ 276.548000] usbserial_generic 2-2:1.0: generic converter detected
.... [ 276.548000] usb 2-2: generic converter now attached to ttyUSB0
.... [ 276.552000] usbserial_generic 2-2:1.1: generic converter detected
.... [ 276.552000] usb 2-2: generic converter now attached to ttyUSB1
.... [ 276.556000] usbserial_generic 2-2:1.2: generic converter detected
.... [ 276.556000] usb 2-2: generic converter now attached to ttyUSB2

after do
#/usr/sbin/usb_modeswitch -d 1 -v 0x19d2 -p 0x2000 -V 0x19d2 -P 0x0001
(not really necessary its just to confirm)

now do
#/usr/bin/gcom -d /dev/ttyUSB0

you will get something like this

SIM ready
Waiting for Registration..(120 sec max)

after the third dot appear press Ctrl+C waith for the led to turn on and run againg
#/usr/bin/gcom -d /dev/ttyUSB0

If something like this appears
SIM ready
Waiting for Registration..(120 sec max)
Registered on Home network:
Failed to register
you are good to go


now execute
/usr/bin/wvdial tmn

And if everything is working you'll get a internet connection.


1 comment:

Unknown said...

Hi... I seem to be encountering a problem in compiling the usb_modeswitch... am getting a 'no file or directory' error and I think its the -l usb portion of the gcc. Any idea how I get this done? thanks!