HUAWEI E1692 HDSPA stick under Linux

I own a HUAWEI E1692 HDSPA USB stick, bought from the italian provider TIM, but unlocked and confirmed to work also with a Wind SIM. It came with GUI software for windows, OS/X and linux, which is nice and one of the reasons I've been suggesting it as a good purchase on the LUG ML.

Installing stuff from spurious sources, however, isn't a very linuxy way of doing things, so I'm using it using only free software from the distribution repositories. This offers an additional advantage: I hope I will be able to use the same key on a certain device with an arm processor, where the binary software from the key has little chances of running.

Current status is: I have it working on debian (x86) using usb_modeswitch and wvdial, for both tim and wind, I' working on using pppd instead of wvdial.

switching modes

The HUAWEI E1692 is a "flip flop" device that needs to be switched from usb storage mode to serial mode

usb_modeswitch

This device is supported by any recent version of usb_modeswitch; since version 1.1.3 it is enough to connect the key to have it recognised and switched to tty mode.

For earlier versions, the following lines needed uncommenting in either /etc/usb_modeswitch.conf (up to version 1.1.0) or /etc/usb_modeswitch.setup

DefaultVendor=  0x12d1
DefaultProduct= 0x1446

TargetVendor=   0x12d1
TargetProduct=  0x140c

MessageContent="55534243123456780000000000000011060000000000000000000000000000"

And then one had to launch:

# usb_modeswitch

as root, or add the following udev rule, e.g. in /etc/udev/rules.d/30-hsdpa.rules, tested under debian:

SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1446", RUN+="/usr/sbin/usb_modeswitch"

dialing

wvdial

The easiest way to connect using a command line tool is probably wvdial; I just use the following /etc/wvdial.conf:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
ISDN = 0
Modem = /dev/ttyUSB0
Baud = 9600

[Dialer wind]
Init3 = AT+CGDCONT=1,"IP","internet.wind",,0,0
Phone = *99***1#
Username = ''
Password = ''

[Dialer tim]
Init3 = AT+CGDCONT=1,"IP","ibox.tim.it",,0,0
Phone = *99***1#
Username = ''
Password = ''

and connect using either:

# wvdial wind

or

# wvdial tim

depending on the sim I'm using.

pppd

I have heard that there are problems porting wvdial to the ARM platform, so I've tried to use pppd directly; there is an helpful howto by David Santinoli that explains how to do it, with configurations for the italian operators tim and tre.

The trivially adapted configuration files for wind are /etc/ppp/chat/wind:

ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT DELAYED
'' ATZ
OK-AT-OK AT+CGDCONT=1,"IP","internet.wind"
OK-AT-OK AT+CGQREQ=1,2,4,3,6,31
OK-AT-OK AT+CGQMIN=1,2,4,3,6,31
OK-AT-OK AT+CGATT=1 OK-AT-OK ATD*99#
CONNECT ''

and /etc/ppp/peers/wind:

hide-password
noauth
connect "/usr/sbin/chat -v -s -f /etc/ppp/chat/wind"
debug
-crtscts
/dev/ttyUSB0
460800
defaultroute
noipdefault
remotename huawei
ipparam huawei
usepeerdns
nodetach

And then the connection can be estabilished with pon wind and terminated with poff, as described in the howto.

For coop voce the following configuration files apply, /etc/ppp/chat/coop:

ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT DELAYED
'' ATZ
OK-AT-OK AT+CGDCONT=1,"IP","web.coopvoce.it"
OK-AT-OK AT+CGQREQ=1,2,4,3,6,31
OK-AT-OK AT+CGQMIN=1,2,4,3,6,31
OK-AT-OK AT+CGATT=1 OK-AT-OK ATD*99#
CONNECT ''

and /etc/ppp/peers/coop:

hide-password
noauth
connect "/usr/sbin/chat -v -s -f /etc/ppp/chat/coop"
debug
-crtscts
/dev/ttyUSB0
460800
defaultroute
noipdefault
remotename huawei
ipparam huawei
usepeerdns
nodetach

This is tested to work on both Arch Linux on i686 and Ångström Linux on an arm-based OpenPandora.

everything else

It would also be interesting to be able to access SMSs on the SIM, and to get various stats such as prepaid credit available that can be seen using the GUI software.

Send a comment: unless requested otherwise I may add it, or some extract, to this page.

Return to Top