Mobile Internet on the Eee PC (Ubuntu Eee)

Setting up the Internet on the Eee PC over bluetooth to my Nokia N95 with T-Mobile GPRS/EDGE/3G connection can be tricky.  Yet it sounds like one of those setups that could be so easy, right?  Well it seems stable for the moment, so here’s what you’ll need.  Or rather, what I have…

You’re going to be setting up your connection though pppd, and all of these instructions are based on instructions that I’m going to steal, slightly change and probably skip parts to suit my purposes (and hopefully yours) perfectly.

If your set-up doesn’t match exactly, perhaps you can make use of both pages and work out where things should change.  Or lovingly rip these instructions off, as I did – to make your own.

Setup your bluetooth dongle
First off, you’re going to need an apt repository that has the bluez-utils packages in. So open up a terminal
sudo nano /etc/apt/sources.list
and add the line
deb etch main

Then you can install the package.

apt-get install bluez-utils
/etc/init.d/bluetooth restart
lsusb | grep -i bluetooth
(should show the bluetooth device)
hcitool dev
(also lists bluetooth devices)

Setup networking

You can grab my gprs-settings which should be put into /etc/ppp/peers directory, and untarred.
tar -xvf gprs-settings.tar

Pair the phone

First, get the bluetooth ID of the N95
hcitool scan
Then pair your Eee with your phone, you have to do this from the N95.
Bluetooth -> right arrow (Paired devices) - Options
New paired devices (search)
Choose your eee and then type the pairing keys (anything of your choosing

Bind bluetooth to an rfcomm device

We use “rfcomm” to bind the bluetooth connection to a device. So first, find out the channel the phones bluetooth dial up networking system is on. You can do this with sdptool (Service Discovery Protocol tool):
sdptool search dun
Service Name: Dial-Up Networking
Service RecHandle: 0x1001e
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Note the “Channel: 2” which show which channel to bind.

Then to bind the channel (in this case #2) to one of the rfcomm devices (for example, rfcomm0):
rfcomm bind 0 11:22:BE:EF:44:33 2
You can see the binding with:
rfcomm0: 11:22:BE:EF:44:33 channel 2 clean

You might find you need to reset the bind and restart it every now and then (especially failed connection attempts)
rfcomm release 0
rfcomm bind 0 11:22:BE:EF:44:33 2

You can edit the settings in “/etc/bluetooth/rfcomm.conf,” set bind to “yes” and give the device and channel for rfcomm0. Then you can put these commands into /etc/init.d/bluetooth and it will automatically bind and release the rfcomm device:
# At the end of the "start)" section
rfcomm bind all
# At the beginning of the "stop)" section
rfcomm release all

Start pppd to connect.
Start up pppd.  Command line first, but because we’ve called it ppp0, you will later be able to do this via the normal ubuntu eee networking menu in the menu bar.
% pppd call ppp0
You should now have a ppp0 interface in your ‘ifconfig’ output that is up and running. The output should look something like this:
# pppd call ppp0
Press CTRL-C to close the connection at any stage!
defining PDP context...
waiting for connect...
If the following ppp negotiations fail,
try restarting the phone.
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/rfcomm0

You can hit control-c on the pppd process and it will shut down the connection, then you can release the rfcomm binding.

So… as I was saying… It’s not the easiest thing in the world to get going, but once you’ve got the hang of it, and set it up once you’ll have a connection everywhere you go.

Tags: , , , , , , , , ,

Leave a Reply?