Notices


Reply
Thread Tools
Posts: 1,425 | Thanked: 982 times | Joined on May 2010 @ Hong Kong
#1
1 Background

Tethering is the use of a mobile device such as a mobile phone to supply Internet access for another device. The following is to show you how to make N900 to supply Internet access to a PC via Bluetooth-PAN (Personal Area Network). This is the reverse idea of Bluetooth PAN: Tethering N900 from another phone.

There're already three commonly used tethering methods around: USB tethering (Nokia PC-Suite), WiFi hotspot (Mobile Hotspot, Joikuspot) and Bluetooth DUN (Dial-Up Network, bluetooth-dun). The advantages and disadvantages to use Bluetooth-PAN are as listed in next section.

2 Advantages and Disadvantages

2.1 The advantage of Bluetooth-PAN tethering:

2.1.1 Bluetooth-PAN doesn't require cable as in USB tethering
2.1.2 Bluetooth-PAN consumes much less battery power than WiFi hotspot, even when setting WiFi power to 10mW (Most important factor in my opinion)
2.1.3 Bluetooth-PAN is supposed to be faster than Bluetooth-DUN
2.1.4 The tethering method of Bluetooth-DUN might not work with some mobile carriers

2.2 The disadvantage of Bluetooth-PAN tethering:

2.2.1 Not all mobile devices supports Bluetooth-PAN, though PC and Mac are usually supported
2.2.2 The effective distance of use is shorter than Wifi
2.2.3 No security implementation (but WiFi's WEP is next to nothing anyway, see aircrack-ng)
2.2.4 Peer-to-Peer connection (verse one-to-many connection in Wifi Hotspot)

3 Prerequisites

3.1 Install rootsh
3.2 Install Kernel Power (or any other kernel that support iptables)
3.3 Install iptables
3.4 Install pc-connectivity-manager - Tablet PC-Connectivity Manager
3.5 Install bluezwitch (Optional)
3.6 Turn off WiFi, unless you're very familiar with IP routing

4 Detail Instructions

4.1 Pairing PC and N900 as Bluetooth-PAN

Pairing Bluetooth-PAN is as easy as pairing a bluetooth headphone.

4.1.1 (On N900) Switch on Bluetooth in N900 and make it search-able
4.1.2 (On PC) Discover the Bluetooth device, define a password and then pair up
4.1.3 (On PC) Join the Personal Area Network. The joining method depends on your Bluetooth device, e.g. EagleTec Bluetooth USB will has an icon on the taskbar on which PAN can be found by right clicking it. You mileage may vary.
4.1.4 (On PC) You might require to choose among PANU, GN or NAP under PAN. You should choose NAP, but it actually makes no difference for our purpose.

4.2 Setup IP network for client (PC or Mac)

After pairing up, and the PAN between your PC and N900 is established, then you should setup an IP network on top of it.

4.2.1 A Bluetooth Network Connection should appear in the Connection Setting of your PC (or Mac). Setup the network with the following information: Choose to acquire IP and DNS automatically from the server. (Thanks to mauron85's suggestion)


Code:
IP: 192.168.3.2
Netmask: 255.255.255.0
Gateway: 192.168.3.1
DNS: 192.168.3.1


4.3 Setup IP network for server (N900)

4.3.1 Create a script under /home/user/ and save it as bluetooth-pan-tethering.sh

Code:
#!/bin/sh

# by 9000 @ talk.maemo.org

# Prompt you to select the Internet connection. You may choose gprs or wifi
run-standalone.sh dbus-send --system --type=method_call --dest=com.nokia.icd_ui /com/nokia/icd_ui com.nokia.icd_u

# Selecting and establishing connection takes time
sleep 10

# Verbose mode. You can remove it when you're using widget to activate this script

set -x

IP_ADDR="192.168.3.1"
NETMASK="255.255.255.0"
DHCP_RANGE="192.168.3.100,192.168.3.127"
RUNFILE="/var/run/btpan_tethering.pid"
DNSMASQ="/usr/sbin/dnsmasq"

# Load modules
modprobe ipt_MASQUERADE

# flush old rules
iptables -F
iptables -t nat -F

iptables -t nat -A POSTROUTING -o gprs0 -j MASQUERADE

# forward IPs
echo 1 > /proc/sys/net/ipv4/ip_forward

# Setup bnep0
ifconfig bnep0 down
ifconfig bnep0 up
ifconfig bnep0 $IP_ADDR netmask $NETMASK up

# Setup DNS and DHCP
start-stop-daemon -S -p $RUNFILE -m -b -x $DNSMASQ -- -k -I lo -z -a $IP_ADDR -F $DHCP_RANGE -b

run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:'Bluetooth PAN Activated'
Note that if your N900 is connecting to Internet via WiFi(wlan0) instead of GPRS(gprs0), you must change the "iptables" command above accordingly.

(Note to users in talk.maem.org: you may also download the tarball attached and extract it under /home/user/ in xterminal)

4.3.2 Make the script executable

Code:
chmod u+x /home/user/bluetooth-pan.sh
4.3.3 Run the script with root privilege

Code:
echo "/home/user/bluetooth-pan.sh" | sudo gainroot
The script will first ask you to establish the Internet connection. Choose your Internet service provider or WiFi.

Wait 10 second until you see "Bluetooth PAN Tethering Activated". Now you PC can access the Internet via your N900's Internet Connection.


5 Troubleshooting

5.1 DNS - in Step 4.2.1 points the DNS to 192.168.3.1, expecting the N900 answers to your DNS queries. However, if that doesn't work for you:
5.1.1 Add an DNS entries into the /etc/resolv.conf, the following is an example of the resolv.conf using Google Public DNS, you may enter the DNS of your Internet service provider:

Code:
nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4
5.1.2 OR you may enter the DNS server address provided by your Internet Service Provider directly into the client.

5.2 After pairing up the PC and N900 in Step 4.1, a bnep0 device should appear in N900. There's a chance that bnep0 device was not created automatically. You may use the following command under Xterminal of N900 to verify:

Code:
sudo ifconfig bnep0
If bnep0 did not appear after pairing up, you may try reconnecting PAN with different profiles like PANU or GN in Step 4.1.4 instead of NAP, until bnep0 appears.

Reinstall libicd2 if you still couldn't find your bnep0 (JadeH)
Code:
apt-get install libicd2 --reinstall
5.3 The module ipt_MASQUERADE isn't loaded after upgrading to kernel-power v47

The module works fine in v46. Downgrade your kernel-power. (at your own risk)

6 References
6.1 Bluetooth PAN: Tethering N900 from another phone: http://talk.maemo.org/showthread.php?t=37710
6.2 HOWTO : Bluetooth Tethering with Nokia N900 (by DUN): http://syntacticsugar.nl/2009/12/03/...th-nokia-n900/
6.3 HowTo set up common PAN scenarios with BlueZ's integrated PAN support: http://bluez.sourceforge.net/contrib/HOWTO-PAN


7 Feedback
Please send me feedback or suggestion so that I can improve the steps.

EDIT: Inserted 3.3. It seems that pc-connectivity-manager is essential for PAN to work for most configuration.
EDIT: Attached the tarball of the script in 4.3.1
EDIT: Added procedures to setup sudoers added under 4.3.3
EDIT: Inserted 3.3 for iptables installation. It is now a standalone package that need to be installed explicitly.
EDIT: Added 3.6 such that WiFi will not get in the way of PAN routing
EDIT: Removed the method to setup sudoers in section 4.3.3, and directly run as root, to make the procedures simpler
EDIT: Added iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
(commented) in the script 4.3.1 for internet via WiFi instead of GPRS.
EDIT: Thanks to mauron85's suggestion in setting up DHCP and DNS. Main script in 4.3.1 modified.
EDIT: Troubleshooting updated (JadeH)
EDIT: dnsmasq will not run as daemon. Script edited. Use network 192.168.3 instead of 192.168.1 as the latter is used by WiFi
EDIT: ipt_MASQUERADE isn't loaded after upgrading to kernel-power v47
Attached Files
File Type: tar bluetooth-pan-tethering.tar (3.0 KB, 793 views)

Last edited by 9000; 2011-06-22 at 01:19.
 

The Following 51 Users Say Thank You to 9000 For This Useful Post:
Posts: 346 | Thanked: 271 times | Joined on Jan 2010
#2
Thanks, for me, USB native tethering, bluetooth DUN and mobilehotspot stop working after 20 minutes, maybe that I will have more luck with that one
 
Posts: 1,425 | Thanked: 982 times | Joined on May 2010 @ Hong Kong
#3
Originally Posted by Megaltariak View Post
Thanks, for me, USB native tethering, bluetooth DUN and mobilehotspot stop working after 20 minutes, maybe that I will have more luck with that one
Actually that's what drove me to get bluetooth-pan working.

I've encountered the same disconnection problems with some old WiFi routers and CISCO WiFi USB dongle, etc. Other newer WiFi routers or PCI WiFi card works fine with N900, though.

After investigating the logs I found out it has something to do with the power-saving. However, turning off the power-saving mode of WiFi in N900 doesn't seem to completely solve the problem. I managed to resolve some of them by updating those old WiFi routers with latest firmware, but without luck with some obsolete devices.

I tried Bluetooth-DUN (as in the references), but cannot connect to my ISP through it.

I hope Bluetooth-PAN would help. Please feedback if you had tried. Thanks.

Last edited by 9000; 2010-07-16 at 11:19.
 
Posts: 346 | Thanked: 271 times | Joined on Jan 2010
#4
Ok, so I tried:
On Ubuntu: It seem that there is no native Bluetotooth PAN support, it is surely a solution but I have not the head for that ATM.
On XP with WIDCOMM Bluetooth Software: It seem that it support PAN but it is not listed on N900 supported services when I scan it so I can't use PAN with N900.
 
Posts: 729 | Thanked: 155 times | Joined on Dec 2009
#5
Thanks for that!
Would it possible for you to package that script with an icon and upload it to extras-devel?
 
Posts: 1,425 | Thanked: 982 times | Joined on May 2010 @ Hong Kong
#6
Originally Posted by Megaltariak View Post
Ok, so I tried:
On Ubuntu: It seem that there is no native Bluetotooth PAN support, it is surely a solution but I have not the head for that ATM.
On XP with WIDCOMM Bluetooth Software: It seem that it support PAN but it is not listed on N900 supported services when I scan it so I can't use PAN with N900.
You need pand in Ubuntu, I hope this help: http://ubuntuforums.org/showthread.php?p=8995803

WIDCOMM deliberately removed PAN profile from its driver for Vista, but driver for XP definitely works. You might have used a version of the driver that has PAN removed. For example, the following instructions is to build PAN with WIDCOMM: http://www.whizoo.com/bt_setup/

I don't know why WIDCOMM decided to remove PAN profile from driver for Vista, even WM has PAN setup, so I guess PAN is not an obsolete thing.
 
Posts: 1,425 | Thanked: 982 times | Joined on May 2010 @ Hong Kong
#7
Originally Posted by DaSilva View Post
Thanks for that!
Would it possible for you to package that script with an icon and upload it to extras-devel?
When I finish my book I'll spare time to do that. Thanks. ^^
 

The Following User Says Thank You to 9000 For This Useful Post:
Posts: 39 | Thanked: 2 times | Joined on Jun 2010
#8
Hi! just a quick question..can a pc share internet connection to n900 (via bluetooth)?
 
Posts: 1,425 | Thanked: 982 times | Joined on May 2010 @ Hong Kong
#9
Originally Posted by jonchew View Post
Hi! just a quick question..can a pc share internet connection to n900 (via bluetooth)?
Yes of course. If you're using Windows 7 it's supported by default, just create a wifi profile with sharing. If you're using XP you can install Connectivity. The concept of PAN is as simple as join a LAN. If your LAN allow Internet connect via a gateway, you can always point to that gateway in N900 to access to the Internet.

It requires a bit of setup effort but you can find the detail in previous discussion in talk.maemo.org. Hope this help.
 
Posts: 515 | Thanked: 193 times | Joined on Oct 2009
#10
Im trying to set this up for my ipad. I find the wifi hotspot programmes really unreliable.

Im having a couple of issues with the installation. I have skipped steps 4.1 to 4.3 as Im assuming the DUP application on the ipad covers this?? However the issue is - I have created the script "bluetooth-pan.sh" ie saved the scriped in notepad and renamed it to bluetooth-pan.sh.
Copied it into the correct folder over SSH. Then in terminal at step 4.3.2 have typed in the code but nothing seems to happen, the same for 4.3.3. I have tried both in root and both not.
Do you have any idea what I could be doing wrong?

PS I have the latest power-kernel installed and bluetooth 'on'.
 
Reply

Tags
bluetooth-pan, tethering

Thread Tools

 
Forum Jump


All times are GMT. The time now is 15:43.