Figuring out how to get my blackberry to tether with Ubuntu linux was a pain. I had to reference several different websites and take a little information from each to come up with a working solution. Here are the steps I took in order to get it to work for me. Some steps may be 'extras' as I did a lot of different things before coming to a working solution. I have not went through to figure out exactly what got it working. I may come back to clean this up a little later.
Pairing your blackberry with your computer over bluetooth- Install Blueman Bluetooth manager (replacing bluez):
- echo "deb http://ppa.launchpad.net/blueman/ppa/ubuntu jaunty main" | sudo tee -a /etc/apt/sources.list
- gpg --no-default-keyring --keyring /tmp/awn.keyring --keyserver keyserver.ubuntu.com --recv 947C4F7371932C794B153F0F6B15AB91951DC1E2 && gpg --no-default-keyring --keyring /tmp/awn.keyring --export --armor 947C4F7371932C794B153F0F6B15AB91951DC1E2 | sudo apt-key add - && rm /tmp/awn.keyring
- sudo apt-get install blueman bluetooth bluez bluez-alsa bluez-cups bluez-gstreamer bluez-utils libbluetooth3 libbluetooth-dev bluez-compat bluez-pcmcia-support
- run blueman-manager or reboot if you don't know how
- Make sure bluetooth is enabled on your blackberry
- Make sure your blackberry is discoverable
- Right-click on the bluetooth icon in the taskbar, select Setup New Device…
- Click "Forward" button to proceed with searching for bluetooth devices
- Find your blackberry, select it and then click the "Forward" button
- Select "Don't connect" and click the "Forward" button
- Choose a pin to send to blackberry
- Enter pin on blackberry
- This should pair your blackberry with your computer
The steps above may not be needed. You may be able to utilize bluez-gnome for your pairing needs. I did the above steps (based off of the following blogpost of someone else:
http://lnxg.wordpress.com/2009/05/26/tethering-a-blackberry-curve-and-linux/) hoping that blueman would go all the way on automatically configuring the DUN part also (the part I had you skip). However, for me, it was saying that I did not have a GPRS/CDMA capable device. However, I kept blueman because I liked it more then bluez functionality wise.
Figuring out device MAC with blueman:- Click on the blueman applet
- You will see a list of bluetooth devices. Each displays a MAC address. Write down the MAC address for your blackberry
Figure out device MAC with hcitool:- On the host (the computer that will connect to the BlackBerry), run:
- The output will return a MAC address and device name. Write down the MAC address for your blackberry.
You can also get the MAC by checking around the blackberry bluetooth menus/options.
Configuring rfcomm.conf- We need to get the channel for the DUN service provided by your blackberry:
- From the example above, we would use Channel 1. Yours may be different.
- Now let's edit /etc/bluetooth/rfcomm.conf. It should by similar to the following, replacing the channel and MAC with your values:
//Change to rfcomm1, rfcomm2, etc., if necessary
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the blackberry device
device 00:11:22:33:44:55;
# RFCOMM channel for the connection
# This should match the channel number from the sdptool output
channel 1;
# Description of the connection (whatever you want to call it)
comment "BlackBerry DUN";
}
- Now restart bluetooth:
- /etc/init.d/bluetooth restart
- Check that /dev/rfcomm0 exists:
- If it doesn't, create it manually:
Configuring PPP- First we will create the chatscript that PPP will use. The following steps should work for ATT/Cingular. Different providers will require different contents for the chatscript. You can reference the following link for some ideas for other carriers: https://help.ubuntu.com/community/BluetoothDialup#Carrier%20specific%20configuration%20info
- Start editting a file
- Add the following to the file:
# Activate the device and pause before sending additional AT commands.
'' AT+CFUN=1
'' AT
# Verify GPRS Attach prior to attempting PDP Context negotiation.
'' AT+CGREG=1
# Define the PDP context. THIS WILL BE DIFFERENT FOR DIFFERENT CARRIERS.
OK AT+CGDCONT=1,"IP","isp.cingular"
# Set the dialing string and specify which PDP Context definition to use.
# THIS WILL BE DIFFERENT FOR DIFFERENT CARRIERS.
OK ATDT*99***1#
# Attempt to connect.
'' CONNECT
- Now we will setup the PPP password file(s) to authenticate with the provider over the tether. Again, this information is specific to ATT/Cingular as a provider:
- vi /etc/ppp/chap-secrets
- Add the following information:
- vi /etc/ppp/pap-secrets
- Add the following information:
- Now we will setup the PPP script that, again specific to ATT/Cingular:
- vi /etc/ppp/peers/att
- Add the following information:
All configuration items should now be complete. We can now try to initialize a tether with our blackberry.
Initiate Blackberry Tether- Check if you have any routes setup
- route -n
- If you have routes in your routing table, disable all of the devices (under column Iface). We need a clear routing table to have this work correctly.
- Now we will turn on the PPP for att.net
- pon att.new
- You can watch /var/log/messages to see if it works correctly or errors with a code/description
- If everything worked, you should now have a pan0 and ppp0 interface in your network list
- ifconfig -a | grep -P 'ppp|pan'
- Check your routing table to make sure routes are setup for this new ppp device:
- Take your connection on a test drive!
Disconnecting- To disconnect you need to turn off ppp:
ReferencesListed are the links that I referenced and combined information from to get to this point.