GPRS connection using Nokia E50 on GNU/Linux
It was a child’s play to configure Linux for GPRS. There was hardly anything considerable I did to get it working. I connect using my mobile, Nokia E50 with Nokia Connectivity Cable (data cable) CA-53 on my historic laptop Acer TravelMate 240.
Before I start, about my system:
Hardware: Acer Travelmate240 with 2.4 GHz Intel Celeron and 768MB memory.
OS: Debian GNU/Linux, Kernel 2.6.8-2-686 (precompiled, from Debian apt system)
So this is how it goes. I connected my USB connectivity cable CA-53 that came bundled with E50. As soon as I connected mobile to the cable, phone poped a message on its screen as shown in the image below.

I selected cancel here. If you select OK, it will treat it as a USB storage media. At this time dmesg registered messages as shown below.
usb 3-1: new full speed USB device using address 7
scsi2 : SCSI emulation for USB Mass Storage devices
Vendor: Nokia Model: E50 Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
SCSI device sda: 2011917 512-byte hdwr sectors (1030 MB)
sda: assuming Write Enabled
sda: assuming drive cache: write through
/dev/scsi/host2/bus0/target0/lun0:
Attached scsi removable disk sda at scsi2, channel 0, id 0, lun 0
USB Mass Storage device found at 7
usb 3-1: USB disconnect, address 7
scsi2 (0:0): rejecting I/O to dead device
SCSI error: host 2 id 0 lun 0 return code = 4000000
Sense class 0, sense error 0, extended sense 0
As you see, the device is detected correctly and it has also detected my 1GB microSD card.
Next, it poped a screen asking to select mode. Here I selected “PC Suite” as shown in image below.

At this stage dmesg showed following messages:
usb 3-1: new full speed USB device using address 3
drivers/usb/class/cdc-acm.c: Ignoring extra header
cdc_acm 3-1:1.10: ttyACM0: USB ACM device
usbcore: registered new driver cdc_acm
drivers/usb/class/cdc-acm.c: v0.23:USB Abstract Control Model driver for USB modems and ISDN adapters
As can be seen from these messages, mobile phone is detected as v0.23:USB Abstract Control Model driver for USB modems and ISDN adapters. It also registered the drivers for our device. The line
cdc_acm 3-1:1.10: ttyACM0: USB ACM device
shows that our device is detected as ttyACM0. It means it is placed under /dev/ttyACM0.
Next, since I was not using my built in modem, I did not have a /etc/wvdial.conf file. So I created a /etc/wvdial.conf file with following contents:
[Dialer Defaults]
Init1 = AT+CGDCONT=1,”IP”,”airtelgprs.com”
Modem Type = USB Modem
Phone = *99#
Password = “”
Username = “”
Modem = /dev/ttyACM0
Baud = 460800
In this file, first line is an initialization string. You can obtain this string from your GPRS service provider. If you are lucky and the help desk guy/girl not clueless, you will get this info. In India, my service provider is airtel. Fortunately in the second call to helpdesk, I found the right guy who had a clue about what Initialization string is :). So armed with this info, it is really trivial to write a configuration script.
In connect string, the part after equals sign, i.e. AT+CGDCONT=1 can be different. “IP” is the IP which will be dynamic mostly. Next is the Access Point Name*, which, in my case is “airtelgprs.com”.
Next line specifies a name for this modem, which can be any arbitrary name you want. Third line specifies the number to dial, in my case it is *99#. You have to obtain this from your service provider. For my network username and password is blank. But wvdial does not like blanks. So you need to supply something there as I did, an empty string. The line starting with “Modem” specifies where our device is located. You can keep the Baud rate as it is.
Next I ran the command wvdial in a shell. Here are the messages from wvdial:
swordfish:/etc# wvdial
–> WvDial: Internet dialer version 1.54.0
–> Cannot get information for serial port.
–> Initializing modem.
–> Sending: AT+CGDCONT=1,”IP”,”airtelgprs.com”
AT+CGDCONT=1,”IP”,”airtelgprs.com”
OK
–> Modem initialized.
–> Sending: ATDT*99#
–> Waiting for carrier.
ATDT*99#
CONNECT
~[7f]}#@!}!} } }2}#}$@#}!}$}%\}”}&} }*} } g}%~
–> Carrier detected. Waiting for prompt.
~[7f]}#@!}!} } }2}#}$@#}!}$}%\}”}&} }*} } g}%~
–> PPP negotiation detected.
–> Starting pppd at Mon Dec 25 21:54:16 2006
–> pid of pppd: 18155
–> Using interface ppp0
–> local IP address 10.148.27.10
–> remote IP address 10.6.6.6
–> primary DNS address 202.56.230.5
–> secondary DNS address 202.56.230.6
Caught signal #2! Attempting to exit gracefully…
–> Terminating on signal 15
–> Connect time 2.5 minutes.
–> Disconnecting at Mon Dec 25 21:56:50 2006
swordfish:/etc#
You may use other tools like KPPP or whatever you prefer instead of wvdial.
* GSM GPRS/EDGE cellular data networks use a mechanism called an APN (Access Point Name) to determine how a Mobile Station (MS), communicates via the GSM network to a host site (i.e., how the carrier network passes IP traffic to the host network). An APN determines what IP addresses are assigned to the mobile station, what security methods are used, and how the GSM data network connects to the customer’s network.

I am using Airtel connection, conneted via serial cable.
In
Dialer Defaults]
can I change \
Comment by arun — January 5, 2007 @ 12:19 pm
My Kubuntu froze few seconds after connecting the phone.
Comment by Tomasz — March 6, 2007 @ 12:13 am
Can you please elaborate the steps you performed.
Also provide following info:
Which kernel you are using?
Which kubuntu version you are using?
Is there any relevant entries in syslog?
What does your `dmesg | tail` say just after you connect your phone?
Comment by strike — March 6, 2007 @ 10:56 am