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.