Jump to content
xisto Community
rahid

Using Mobile Broadband In Ubuntu With Bluetooth

Recommended Posts

What you need
To using mobile internet over Bluetooth you need a few common things that is probably you have all ready. You just need a computer with Ubuntu (Linux distribution) operating system loaded. Then you have a Bluetooth enabled Mobile phone (Cellphone) which you want to use as a GPRS/EDGE/cdma 2000 1x/EVDO/HSDPA modem. You don't need a data cable because your data communication from your PC to Mobile phone will be wireless through Bluetooth. You should have a data plan from your Mobile operator for using internet. A unlimited data plan or some thing like is recommended. Because you may wish to using internet too much.
My Configuration

My Configuration was followings:
Ubuntu 8.04 (Hardy Heron) intel based 32 bit version
USB Bluetooth modem on my PC
Sagem x700 Cellphone
Unlimited EDGE connection

This should be portable across all Debian-based distributions and telecoms. But the configuration might vary from phone to phone (notably the channel number).
Make Your System Ready

Before starting the job you have to make your system ready. You may have to install some packages. By default those packages should be installed on your Ubuntu system. But make sure they all are installed.
Install the relevant packages

You need a Bluetooth device manager for gnome. There is a package named bluez-gnome. By default bluez-gnome is installed on your Ubuntu PC. You have to check that this package is all ready been installed. You can check it in Synaptic Package Manager. You will find this here:
System > Administration > Synaptic Package Manager

You have to also check for the package bluez-utils, bluez-pin, ppp. If those package are not installed then go to Terminal.
Application > Accessories > Terminal

Now install those with following command
sudo apt-get install bluez-gnome bluez-utils bluez-pin ppp
Permissions

Your user needs to be able to dial-out (if you are the first user on an ubuntu system, this is already done):
adduser your-username-here dialout

Log out and Log in again.
Connect to your phone

Now you have to turn on bluetooth on your phone and computer. If you've already tried connecting them before, delete any reference to your computer from your phone's list of Bluetooth devices. And delete any reference to your phone's ID from your Ubuntu PC. To do this go to here:
/var/lib/bluetooth/

Now delete all folders/files there. If you have problem with permission then do the following command on Terminal and try again.
sudo chmod -R oa+rw /var/lib/bluetooth

Now if the gnome bluetooth applet doesn't appear yet, run:
bluetooth-applet

It should make your computer discoverable by default.

Do a bluetooth scan on the phone, and add your computer as a paired device.

Enter the same pass code in both phone and computer. They should bond.

Now you can edit the properties of the computer on the phone's list of Bluetooth devices and tell it to always accept connections from the computer.

Now you need to find your phone's bluetooth mac address, make the phone discoverable, and run in Terminal
hcitool scan

Copy the MAC address (the text with the capital letters, numbers, and ':'s) somewhere convenient. You'll need it many times.

Now you'll need to find out what channel to connect to:
sdptool browse XX:XX:XX:XX:XX:XX <-- Insert your phone's MAC address here

Now probably you 'll see the followings reply.
Browsing 00:12:D2:FB:9B:AC ...
Service Name: Headset Audio Gateway
Service RecHandle: 0x4f491112
Service Class ID List:
"Headset Audio Gateway" (0x1112)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 10
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
code_ISO639: 0x6672
encoding: 0x6a
base_offset: 0x110
code_ISO639: 0x6465
encoding: 0x6a
base_offset: 0x120
code_ISO639: 0x6a61
encoding: 0x6a
base_offset: 0x130
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100

Service Name: Handsfree Audio Gateway
Service RecHandle: 0x4f49111f
Service Class ID List:
"Handfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 8
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
code_ISO639: 0x6672
encoding: 0x6a
base_offset: 0x110
code_ISO639: 0x6465
encoding: 0x6a
base_offset: 0x120
code_ISO639: 0x6a61
encoding: 0x6a
base_offset: 0x130
Profile Descriptor List:
"Handsfree" (0x111e)
Version: 0x0102

Service Name: A2DP Audio Source
Service RecHandle: 0x4f49110a
Service Class ID List:
"Audio Source" (0x110a)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x100
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
code_ISO639: 0x6672
encoding: 0x6a
base_offset: 0x110
code_ISO639: 0x6465
encoding: 0x6a
base_offset: 0x120
code_ISO639: 0x6a61
encoding: 0x6a
base_offset: 0x130
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0100

Service Name: File Transfer
Service Description: OBEX File Transfer Protocol
Service RecHandle: 0x4f491106
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 12
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
code_ISO639: 0x6672
encoding: 0x6a
base_offset: 0x110
code_ISO639: 0x6465
encoding: 0x6a
base_offset: 0x120
code_ISO639: 0x6a61
encoding: 0x6a
base_offset: 0x130
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100

Service Name: OBEX Object Push
Service Description: Object Push
Service RecHandle: 0x4f491105
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 4
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
code_ISO639: 0x6672
encoding: 0x6a
base_offset: 0x110
code_ISO639: 0x6465
encoding: 0x6a
base_offset: 0x120
code_ISO639: 0x6a61
encoding: 0x6a
base_offset: 0x130
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100

Service Name: FAX
Service RecHandle: 0x4f491111
Service Class ID List:
"Fax" (0x1111)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 5
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
code_ISO639: 0x6672
encoding: 0x6a
base_offset: 0x110
code_ISO639: 0x6465
encoding: 0x6a
base_offset: 0x120
code_ISO639: 0x6a61
encoding: 0x6a
base_offset: 0x130
Profile Descriptor List:
"Fax" (0x1111)
Version: 0x0100

Service Name: Dial-up Networking
Service RecHandle: 0x4f491103
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 6 <-- Find this channel number
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
code_ISO639: 0x6672
encoding: 0x6a
base_offset: 0x110
code_ISO639: 0x6465
encoding: 0x6a
base_offset: 0x120
code_ISO639: 0x6a61
encoding: 0x6a
base_offset: 0x130
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Service Name: SPP: Direct COM port
Service RecHandle: 0x4f491101
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 20
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
code_ISO639: 0x6672
encoding: 0x6a
base_offset: 0x110
code_ISO639: 0x6465
encoding: 0x6a
base_offset: 0x120
code_ISO639: 0x6a61
encoding: 0x6a
base_offset: 0x130


The number you want is the Channel number for Dial-up Networking. You find this under Service Name: Dial-up Network (Pointed in top).
Configure bluez

Now you are going to configure the bluez. Just type the following command in the terminal.
sudo gedit /etc/bluetooth/rfcomm.conf

Add the following text at the end:
rfcomm0 {
bind yes;
device XX:XX:XX:XX:XX:XX; <- Insert your phone's MAC address here
channel 4;
comment "P900 PPP connection";
}

restart blue-utils
/etc/init.d/bluez-utils restart
Configuring PPP

Now you have to configure ppp. Just run the following in terminal.
sudo gedit /etc/ppp/peers/BluetoothDialup

Now you see a blank text file. Then paste the following on the file
debug
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/BluetoothDialup"
usepeerdns
/dev/rfcomm0 115200
defaultroute
crtscts
lcp-echo-failure 0

Save and close the BluetoothDialup file. Then run the following.
gksudo gedit /etc/chatscripts/BluetoothDialup

Now you see a blank text file. Then paste the following text on the text file, replacing your-apn-here with the APN from your data services profile and your-data-profile-number-here with the number you stored the profile into on the phone . If you don't know your apn (access point name) contact with your operator's help line.
TIMEOUT 35
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
OK 'AT+CGDCONT=1,"IP","your-apn-here"'
OK ATD*99***your-data-profile-number-here#
CONNECT ""

The "AT+CGDCONT=1" command depends upon your operator. So get the right command from your operator's help service.
Connect To Internet

To connect to internet through your Mobile Phone's GPRS/EDGE/cdma 2000 1x/EVDO/HSDPA network with Bluetooth run the following dial up command in Terminal.
pon BluetoothDialup
Wait for about 30 - 60 seconds.You should able to connect to internet within this time.
Your Mobile Phone should display GPRS/EDGE/cdma 2000 1x/EVDO/HSDPA etc in the right place.
Test your connection through web browser with http://ubuntu-help.co.cc/ address.
To stop your internet connection. Command this:


poff BluetoohDialup
Debug

To see your connection progress.
tail -f /var/log/syslog

You can make your phone undiscoverable/hidden now. Enjoy.


Edited by yordan
Quoted the part copied from http://ubuntu-help.co.cc/index.php/ubuntu-help/35-internet/46-mobile-broadband-internet-over-bluetooth (see edit history)

Share this post


Link to post
Share on other sites

Very nice tutorial, thanks a lot.
Unfortunately, this text has already been published somewhere else, namely here almost two months ago :
http://ubuntu-help.co.cc/index.php/ubuntu--over-bluetooth
You know, it is not forbidden to post copied text here.
However, we ask you to put the copied text between quotes, and add the references of your sources.
Quoting copied text is an act of honesty as well as a politeness acting.
I did the quoting job for you today. Next time I would like you to do the quoting job by yourself.
If not, we could think that you are trying to cheat with the Credit System. And this causes some mods around here becoming rather angry. :rolleyes:

Share this post


Link to post
Share on other sites

This true it was published before on http://ubuntu-help.co.cc/index.php/ubuntu--over-bluetooth . And for your kind information that site is mine. To be sure follow that link & find author name, you will see the name Rahid Hasan.

Of course, you are righ.

Saturday, 06 September 2008 07:59 Rahid Hasan

Unfortunately, in order to be valid, your posts have to be published at Xisto first. The quoted document is dated from September 6h, almost three monthes ago. So, the ubuntu-help.co.cc is the original one, the Xisto one is the copied one.

You have to quote yourself if you post something you already posted somewhere else.

That's why I quote myself on the other forums and I write my topics at Xisto first. My next Oracle 11gRAC tutorial will be on Xisto, and I will put in Metalink a link to the Xisto tuto. My next Linux tutorial will be in Xisto, and I will pot in LinuxQuestions.org a link to the Xisto topic.

Share this post


Link to post
Share on other sites

OK i understand this time. So i'm sorry. I promise you i'll never do it again. Actually as a new user i just do a wrong.
Thank you any way.

No problem. Each new guy here has to learn the rules.
And the admins have to know that the guy is simply doing mistakes, not deliberately violating the rules.

Share this post


Link to post
Share on other sites

FantasticUsing Mobile Broadband In Ubuntu With Bluetooth

This is outstanding -- thank you!! And as it turns out, it's a good thing you posted a copy here since that other site is dead now.

I got this working on Ubuntu 10.04 with a Sprint BlackBerry 8330m. The only things I had to change were:

  • Chatscript: use the sprint-blackberry chatscript here: http://forums.crackberry.com/general-blackberry-discussion-f2/sprint-curve-bluetooth-modem-ubuntu-8-04-a-147514/

  • The package bluez-pin no longer exists and is not needed.

  • The command /etc/init.D/bluez-utils restart is now /etc/init.D/bluetooth restart.

  • I had to manually create rfcomm0 and manually bind the device to it (now sure why rfcomm.Conf wasn't doing that -- probably something I messed up). To manually create the device I did sudo cd /dev && mknod rfcomm0 c 216 (found here), and to bind it, sudo rfcomm bind <MAC ADDRESS> <CHANNEL>. I ended up adding that last command to rc.Local so it would just bind every time I login.

  • Firefox has an annoying bug that causes it to go into offline mode when PPP is used. The fix for that is to set toolkit.Networkmanager.Disable to true in FF's about:config.

Thanks again! So nice to have Bluetooth connectivity with my Ubuntu laptop. I can't even do that in Windows -- the Sprint software requires a USB cable! So nice to have a good OS and some smart people on the internet.

Cheers,

Jeremy

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.