Nokia E90 + Ubuntu + 3G with data cable

After succeeding with Dapper to kick my GPRS connection alive with my 9300/E90 via BT 2yrs ago, I haven’t had much joy in configuring BT+E90+3G on Edgy, Feisty, Hardy, and so on. A friend has written a good howto on connecting up via data cable (if you want an english translation, just poke him), so this afternoon I decided to try it.

My E90 is running v210.34.75. The difference is that using the AT+CGDCONT command returns an ERROR. Another howto states that the user has to set the default access point on the phone, and dial out without the CGDCONT – this worked for me. So here is the final deal:

Set up the default AP on your E90

Tools / Settings / Connection / Packet data / Access point
Add (3G) or (plain old GPRS) depending on what you want to use.

Do an lsusb do check the USB vendor/product ID:

Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 003: ID 0421:04cf Nokia Mobile Phones
Bus 002 Device 002: ID 08ff:2580 AuthenTec, Inc.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 004: ID 03f0:171d Hewlett-Packard Bus 001 Device 001: ID 0000:0000

Load the cdc_acm and the usbserial module with parameters:

# modprobe cdc_acm
# modprobe usbserial vendor=0×0421 product=0×04cf

(This will probably screw your other modules if you try to use other USB-serial converters, but decide what you want to use… 🙂 )

Connect up your E90 in PC Suite mode.

(I wanted to use the default pon/poff config, but I finally stuck with copy-pasting the wvdial conf).

Insert these into your wvdial.conf

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem = /dev/ttyACM0
Phone = *99#
Idle Seconds = 300
Password = vodafone
Modem Type = USB Modem
Stupid Mode = 1
Compuserve = 0
Baud = 460800
Auto DNS = 1
Dial Command = ATDT
Ask Password = 0
ISDN = 0
Username = vodafone

Start up wvdial:

# wvdial
–> WvDial: Internet dialer version 1.60
–> Cannot get information for serial port.
–> Initializing modem.
–> Sending: ATZ
–> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
–> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
–> Modem initialized.
–> Idle Seconds = 300, disabling automatic reconnect.
–> Sending: ATDT*99#
–> Waiting for carrier.
~[7f]}#@!}!} } }2}#}$@#}!}$}%}”}&} }*} } g}%~
–> Carrier detected. Starting PPP immediately.
–> Starting pppd at Sun Feb 15 17:23:06 2009
–> Pid of pppd: 29057
–> Using interface ppp0
–> pppd: [1b][7f]
–> pppd: [1b][7f]
–> pppd: [1b][7f]
–> pppd: [1b][7f]
–> local IP address x.x.x.x
–> pppd: [1b][7f]
–> remote IP address y.y.y.y
–> pppd: [1b][7f]
–> primary DNS address
–> pppd: [1b][7f]
–> secondary DNS address
–> pppd: [1b][7f]

Say hi to Mr. Pkerese for writing the original howto.