Present Location: News >> Blog >> E61 DUN

Blog

> E61 DUN
Posted by prox, from Charlotte, on March 26, 2007 at 20:15 local (server) time

Over the past few months, I've been getting increasingly fed up with Verizon's phone crippling, and spotty coverage in my area (Ballantyne, south Charlotte, NC).  I decided to pick up a Nokia E61 and service with Cingular.

The E61 itself is a nifty little package, sporting the full set of Bluetooth features, a miniSD slot, a SIP client, and 802.11g.

Since I got unlimited MEdia Net access [read: Internet access] through Cingular, I figured it would be worthwhile to use the DUN capabilities of the E61, via Bluetooth's rfcomm interface, or USB's CDC ACM (if needed).  The following instructions may be specific to Gentoo GNU/Linux:

Bluetooth DUN

First, I determined (erm, Matt reminded me of this) the correct DUN channel with sdptool:

destiny% sdptool browse 00:17:e3:3d:29:fc
[...]
Service Name: Dial-Up Networking
Service RecHandle: 0x100a2
Service Class ID List:
  "Dialup Networking" (0x1103)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 2

It is apparently on channel 2.  I then added a "channel 2" line and the Bluetooth address into /etc/bluetooth/rfcomm.conf, and enabled binding on startup.

Next step was to configure PPP.  Gentoo's net scripts have some PPP-specific options, so I added the following to /etc/conf.d/net:

config_ppp0=( "ppp" )
link_ppp0="/dev/rfcomm0"
username_ppp0='WAP@CINGULARGPRS.COM'
password_ppp0='CINGULAR1'
pppd_ppp0=(
     "usepeerdns"
     "defaultroute"
     "refuse-chap"
)
phone_number_ppp0=( "*99***1#" )
chat_ppp0=(
     'ABORT' 'BUSY'
     'ABORT' 'ERROR'
     'ABORT' 'NO ANSWER'
     'ABORT' 'NO CARRIER'
     'ABORT' 'NO DIALTONE'
     'ABORT' 'Invalid Login'
     'ABORT' 'Login incorrect'
     'TIMEOUT' '5'
     '' 'ATZ'
     'OK' 'AT+CGDCONT=1,"IP","WAP.CINGULAR"'
     'OK' 'ATDT\T'
     'TIMEOUT' '60'
     'CONNECT' ''
     'TIMEOUT' '5'
     '~--' ''
)

After running /etc/init.d/net.ppp0 start, a ppp0 interface appeared with an RFC1918 address - all done!  Yes, Cingular appears to NAT all connections via GPRS out regional PoPs.  Latency isn't too bad (roughly 250 ms), and downstream bandwidth seems to max out around 160 to 192 Kbit/sec.  Good enough for most things…

USB DUN

Although using the USB cable is easier and arguably less latent - it's crashy.

I replaced /dev/rfcomm0 with /dev/ttyACM0 in /etc/conf.d/net, and connected the E61 in "PC Suite" mode.  Linux produced the following:

eclipse kernel: cdc_acm 3-2:1.10: ttyACM0: USB ACM device
eclipse kernel: usbcore: registered new driver cdc_acm
eclipse kernel: drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters
eclipse kernel: usbcore: registered new driver cdc_ether
eclipse kernel: rndis_host 3-2:1.12: RNDIS init failed, -32
eclipse kernel: usb%%d: unregister 'rndis_host' usb-0000:00:1d.1-2, RNDIS device
eclipse kernel: unregister_netdevice: device usb%%d/f7f45c00 never was registered
eclipse kernel: rndis_host: probe of 3-2:1.12 failed with error -32
eclipse kernel: usbcore: registered new driver rndis_host

The whole rndis_host error had me worried for a second, but I chose to ignore it.  Firing up net.ppp0 produced a ppp0 interface, and everything looked good.  Upon stopping the connection, though, Linux became unhappy:

eclipse kernel: BUG: unable to handle kernel paging request at virtual address 203f2057
eclipse kernel:  printing eip:
eclipse kernel: c015383d
eclipse kernel: *pde = 00000000
eclipse kernel: Oops: 0000 [#1]
[...]
eclipse kernel: EIP: [sys_write+29/112] sys_write+0x1d/0x70 SS:ESP 0068:e2d89fa0
eclipse kernel: EIP: [<c015383d>] sys_write+0x1d/0x70 SS:ESP 0068:e2d89fa0
eclipse kernel:  <1>BUG: unable to handle kernel paging request at virtual address 32333634

I'm currently running 2.6.18-gentoo-r3, so changes are it's fixed in a more recent kernel version (or patch).

Anyway, that's it… not too difficult.  My next task is the SIP client.

Comment by alienvenom [Website] on April 27, 2008 at 03:00 local (server) time

Works great with Cingular and Nokia N95. Don't upgrade to openrc, as the net script will be broken.


> Add Comment

New comments are currently disabled for this entry.