N900 pan tethering
Man kann die Internetverbindung des n900 via Bluetooth und PAN-Profil mit einem anderen Rechner teilen (Tethering).
Inhaltsverzeichnis
Voraussetzungen
1. Auf dem n900 muss der sog. Power-Kernel installiert sein, da IPv4-Forwarding benötigt wird 2. Paket dbus-scripts aus extras-devel 3. iptables
Scripte anlegen
Jetzt wird es ernst: folgende Datei tethering in /etc/dbus-scripts.d/ anlegen:
/usr/local/bin/tethering.sh * * org.freedesktop.Hal.Manager DeviceAdded /usr/local/bin/tethering.sh * * org.freedesktop.Hal.Manager DeviceRemoved
Und dieses Script tethering.sh muss nach /usr/local/bin/:
#!/bin/sh # /usr/bin/tethering.sh * * org.freedesktop.Hal.Manager DeviceAdded # /usr/bin/tethering.sh * * org.freedesktop.Hal.Manager DeviceRemoved EVENT="$4" UDI="$5" HALDEV="$(echo $UDI | sed 's#.*/\([0-9a-zA-Z_]*\)#\1#')" LOG="/tmp/tethering.log" #INETDEV="wlan0" RUNFILE="/var/run/tethering.$HALDEV.pid" IFACEFILE="/var/run/tethering.$HALDEV.iface" if [ "$EVENT" = "DeviceAdded" ]; then IFACE=$(hal-get-property --udi $UDI --key net.interface) case $IFACE in bnep0 ) IF_ADDRESS=192.168.254.254 IF_RANGE=192.168.254.1,192.168.254.254 ;; usb0 ) IF_ADDRESS=192.168.253.254 IF_RANGE=192.168.253.1,192.168.253.254 ;; * ) exit 0 ;; esac echo "$(date) Enabling tethering on interface $IFACE" >> $LOG echo "$IFACE" > $IFACEFILE ifconfig "$IFACE" "$IF_ADDRESS" /sbin/modprobe ipt_MASQUERADE /usr/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE start-stop-daemon -S -p "$RUNFILE" -m -b -x /usr/sbin/dnsmasq -- -k -I lo -i "$IFACE" -a $IF_ADDRESS -z -F $IF_RANGE,3600 echo 1 > /proc/sys/net/ipv4/ip_forward fi if [ "$EVENT" = "DeviceRemoved" ]; then if [ ! -f "$IFACEFILE" ]; then exit 0 fi IFACE="$(cat $IFACEFILE)" rm "$IFACEFILE" echo "$(date) Disabling tethering on device $IFACE" >> $LOG start-stop-daemon -K -p "$RUNFILE" -x /usr/sbin/dnsmasq /usr/sbin/iptables -t nat -D POSTROUTING -j MASQUERADE fi exit 0
Anschließend mit
sudo chmod a+x /usr/local/bin/tethering.sh
ausführbar machen!
Den dbus zum Neustart zwingen mit
sudo killall dbus-scripts
Bluetooth-Geräte koppeln
Jetzt wird es ernst: man muss nun den Computer mit dem Telefon koppeln. Wichtig ist hierbei, dass das Telefon schon bei der Auswahl der Geräte als Computer erkannt wird und nicht nur als Telefon! (:twisted:)
Ist letzteres der Fall muss man auf dem n900 die Datei /etc/bluetooth/main.conf bearbeiten:
[General] # List of plugins that should not be loaded on bluetoothd startup #DisablePlugins = network,hal
Der Kommentar vor DisablePlugins muss drin sein, sonst funktioniert PAN nicht! Offenbar ist das die Default-Einstellung... (:rolleyes:)
Man koppelt also nun den Rechner mit dem "Computer" n900. Beim gnome-network-manager erscheint die Frage, ob man das PAN- oder DUN-Profil benutzen will- hier PAN auswählen
Nach dem Fertigstellen der Koppelung erscheint im Menü des Networkmanager-Applets in der Systemleiste ein neue Verbindung, mit Namen des Telefons und "Netzwerk" dahinter. Wählt man diese an, so wird die Verbindung über Bluetooth hergestellt und man kann (vorausgesetzt, das n900 ist eingewählt, das muss man selber anstoßen!) die Internetverbindung nutzen.
Getestet habe ich das auf Ubuntu 11.04 mit Unity.
Verbindung trennen
Auf meinem System (Ubuntu 11.10) erzeugte das Trennen der Verbindung per Network-Manager auf dem Notebook einen Fehler, der das Kernel-Modul mitsamt dem Bluetoothd in den Abgrund riss und -noch schlimmer- ein suspend2disk verhinderte. Nur ein Reboot half da noch (:sad:)
Abhilfe: Einfach die Bluetooth-Verbindung am n900 beenden und nicht am Notebook- der Networkmanager meldet dann von selbst, dass die Verbindung beendet sei und der bluetoothd mit Kernelmodul bleibt am Leben (:razz:)- Danke Jochen!
Danksagung
Vielen Dank und ein dickes Lob an Jochen, der das alles zusammentragen und bereitgestellt hat!
TODO: Burned benutzt kde und deren Networkmanager kann kein PAN- bitte hier wenn erfolgreich eingerichtet die Anleitung für KDE einfügen!