Marco Islas

Nokia Internet Stick CS-10 on Linux

Telcel 3GThis time I'm going to write how to make the Nokia Internet Stick CS-10 work on Linux. Two years ago I wrote about the Franklin CDU-680 which was a very good way to get online, until 5 days ago when we stop paying 800 Mexican Pesos (about $59 USD) to Iusacell.

Anyway, in the office bought this pretty "Internet Stick", and with a small googling I found that it was possible to make it run on Linux. In some blogs I read that you just need to umount the device using "eject", This is because this stick identifies itself as a "CD-ROM" and when you use "eject" it changes its behaviour and start acting like a modem.

But I have one problem, when I insert this device in my computer's usb port dmesg shows errors while reading the device. Then, it never gets mounted (the first step for umounting it :-)) and then it can't change the way it worked.

Googling a bit more, I found that we can use udev to avoid this connect-wait_for_recognition-umount-dial procedure. You just need to create this rule in /etc/udev/rules.d/90-nokia-zerocd.rules

SUBSYSTEMS=="usb", SYSFS{idVendor}=="0421", SYSFS{idProduct}=="060c", ACTION=="add", PROGRAM=="nokia-testcd %M %s{serial}", RUN+="/usr/bin/eject -s %k", OPTIONS+="last_rule"

As you can see, it depends on a program "nokia-testcd", it is just a simple bash script with this code:

# Don't eject if flag in place
if [ -f /etc/udev/nokia-zerocd-noeject ]; then
   exit 1
# Extract USB serial into major and minor numbers
minor=`echo $2 | sed 's/.[0-9]*\.//'`
major=`echo $2 | sed 's/\.[0-9]*$//'`
# Compare with current software version
if [ "$major" -gt "0" ] ||  [ "$minor" -gt "10" ]; then
   exit 1
# Clean exit on match
exit 0

Just copy the code in /lib/udev/ and make it executable (chmod 0755 /lib/udev/nokia-testcd). Once you have written the udev rule, and "installed" the nokia-testcd script just restart udev (or reload it) and plug your Nokia CS-10.

Then you can use wvdialconf to configure your connection, This is my /etc/wvdial.conf

[Dialer Defaults]
Init1 = ATZ
Init2 = AT+CFUN=1
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init4 = AT+CGDCONT=1,"IP",""
Password = webgprs2002
Phone = *99#
Modem Type = Analog Modem
Stupid mode = yes
Baud = 460800
New PPPD = yes
Modem = /dev/modem
ISDN = 0
Username = webgprs
Carrier Check = no
Auto Reconnect = yes

Now you can use wvdial to connect :-)

blog comments powered by Disqus