After several trial and error, I could manage my BB Curve 8310 as bluetooth modem on my Ubuntu Hardy box.

Resources:

https://help.ubuntu.com/community/BluetoothDialup

http://kapsi.fi/%7Emcfrisk/linux_gprs.html

My Device :

BB Curve 8310 OS 4.5.0.44 Beta Release 62 (Platform 2.7.0.61) :D

PC box : Ubuntu 8.04 Hardy Heron

Provider : Satelindo (Indonesia)

APN : satelindogprs.com (Username and Password blank)

=================================

STEP BY STEP CONFIGURATION

=================================

PART I – Configure Scripts

1. Download three scripts: gprs, gprs-connect-chat and gprs-disconnect-chat from HERE. These scripts are user friendly, full of self explanation.

2. Edit gprs script. Here I delete all commented line, but it is a good practice not to delete those line for troubleshooting.

- Edit Connect script section

# Connect script:
connect /etc/ppp/peers/gprs-connect-chat

- Edit Serial Device section

# Serial device to which the GPRS phone is connected:
/dev/rfcomm0

- Edit IP address section

# IP addresses:
:169.254.1.1

I’m not sure here, it probably depend on local LAN network? Before I change this address I got long repeated line on terminal console like this:

sent [IPCP ConfRej id=0xd3 <addr 169.254.1.1>]
rcvd [IPCP ConfReq id=0xd4 <addr 169.254.1.1>]

So I just use this address.

- Edit Username and password section

My provider setup for username and password is blank. If you have Username and Password you have some works here :D

# Username and password:
user “”

3. Edit script gprs-connect-chat. Change to your provider APN this line.

OK ‘AT+CGDCONT=1,”IP”,”satelindogprs.com”,”",0,0′ \

4. Copy all three scripts to /etc/ppp/peers/

5. Change files authorities. Use these commands:

$ sudo chown root:root /etc/ppp/peers/gprs*
$ sudo chmod u+rwx,g=rx,o=rx /etc/ppp/peers/gprs-connect-chat
$ sudo chmod u+rwx,g=rx,o=rx /etc/ppp/peers/gprs-disconnect-chat

PART II – Configure Bluetooth Connection

1. Bluetooth pairing

- On Ubuntu, set bluetooth discoverable
- From Blackberry initiate bluetooth pairing, input pin when asked
- On BB set the Ubuntu box as trusted after successfull pairing

2. Obtain Blackberry MAC address

- On BB go to Bluetooth Setting – Option. Write down the BB MAC Address.

3. Obtain BB Dialup Networking channel.

Set BB bluetooth discoverable and run this command:

$ sdptool search DUN

It will list all bluetooth DUN device in range. Find the Channel for Dialup Networking for our BB and remember this channel. The result will similar to this:

budjo@ubuntu:~$ sdptool search DUN
Inquiring …
Searching for DUN on 00:1C:CC:9D:AC:41=> BB MAC Address
Service Name: Dialup Networking
Service RecHandle: 0×10000
Service Class ID List:
“Dialup Networking” (0×1103)
“Generic Networking” (0×1201)
Protocol Descriptor List:
“L2CAP” (0×0100)
“RFCOMM” (0×0003)
Channel: 1 => BB Bluetooth Dialup Networking Channel
Profile Descriptor List:
“Dialup Networking” (0×1103)
Version: 0×0100

4. Rfcomm device configuration

- Edit file /etc/bluetooth/rfcomm.conf , use this command:

$ sudo gedit /etc/bluetooth/rfcomm.conf

- Paste the following into the file, replacing your-BB-mac-address and your-BB-rfcomm-channel with appropriate values:

rfcomm0 {
bind yes;
device your-BB-mac-address;
channel your-BB-rfcomm-channel;

comment “Bluetooth BB Connection”;

}

For example :

rfcomm0 {
bind yes;
device 00:1C:CC:9D:AC:41;
channel 1;
comment “Bluetooth BB Connection”;

}

- Save and close the rfcomm.conf file.
- Restart bluetooth service. Use the folowing command:

$ sudo /etc/init.d/bluetooth restart

5. Bind the rfcomm channel

Run the following command on console:

$ sudo rfcomm bind 0 your-BB-mac-address your-BB-rfcomm-channel

For example :

$ sudo rfcomm bind 0 00:1C:CC:9D:AC:41 1

=============================

Now we are ready. Disable Local LAN network if you connected to LAN. Start the connection using this command on user mode:

$ pppd call gprs

If everything works it will show something like this:

budjo@ubuntu:~$ pppd call gprs
Press CTRL-C to close the connection at any stage!
defining PDP context…
rAT

OK
ATH

OK
ATE1

OK
AT+CGDCONT=1,”IP”,”satelindogprs.com”,”",0,0

OK
waiting for connect…

ATD*99#

CONNECT
Connected.
If the following ppp negotiations fail,
try restarting the phone.

Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <–> /dev/rfcomm0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x124171e3>]
rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <auth pap>]
sent [LCP ConfAck id=0x0 <asyncmap 0x0> <auth pap>]
rcvd [LCP ConfRej id=0x1 <magic 0x124171e3>]
sent [LCP ConfReq id=0x2 <asyncmap 0x0>]
rcvd [LCP ConfAck id=0x2 <asyncmap 0x0>]
sent [PAP AuthReq id=0x1 user="ubuntu" password=""]
rcvd [PAP AuthAck id=0x1]
PAP authentication succeeded
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [LCP ProtRej id=0x1 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00]
Protocol-Reject for ‘Compression Control Protocol’ (0×80fd) received
rcvd [IPCP ConfReq id=0x2 <addr 169.254.1.1>]
sent [IPCP ConfAck id=0x2 <addr 169.254.1.1>]
rcvd [IPCP ConfNak id=0x1 <addr 10.33.147.0> <ms-dns1 124.195.15.100> <ms-dns3 124.195.15.98>]
sent [IPCP ConfReq id=0x2 <addr 10.33.147.0> <ms-dns1 124.195.15.100> <ms-dns3 124.195.15.98>]
rcvd [IPCP ConfAck id=0x2 <addr 10.33.147.0> <ms-dns1 124.195.15.100> <ms-dns3 124.195.15.98>]
not replacing existing default route via 192.168.0.2
Cannot determine ethernet address for proxy ARP
local IP address 10.33.147.0
remote IP address 169.254.1.1
primary DNS address 124.195.15.100
secondary DNS address 124.195.15.98
Script /etc/ppp/ip-up started (pid 6271)
Script /etc/ppp/ip-up finished (pid 6271), status = 0×0

To disconnect DUN press CTRL-C

NOTE

1. Be carefull when copying from webpage since it seems mess up punctuations

2. Check your network provider subcription for GPRS data before using this connection.

TROUBLESHOOTING

* Error occured while binding rfcomm device

Error – Can’t create device: Address already in use. It is happened if the rfcomm device already bound to other device.

Solution

- Try to bind another rfcomm device, ie. rfcomm1. Use this command:

$ sudo rfcomm bind 1 your-BB-mac-address your-BB-rfcomm-channel

- Edit gprs script -> Serial Device section -> /dev/rfcomm1

- Add new rfcomm device to file /etc/bluetooth/rfcomm.conf. If you have two bluetooth device it will look like this:

rfcomm0 {
bind yes;
device other-bluetooth-device-mac-address;
channel other-bluetooth-device-rfcomm-channel;
comment “Other Bluetooth Device Connection”;

}

rfcomm1 {
bind yes;
device 00:1C:CC:9D:AC:41;
channel 1;
comment “Bluetooth BB Connection”;

}