Natives iPhone Tethering unter Linux

Nachdem die native Tetheringfunktion auf meinem iPhone Classic nun endlich aktiviert ist, will sie natürlich auch genutzt werden. Doch wie schaut es aus unter Linux, bzw. Ubuntu mit Gnome im Speziellen? Ich nehme das Ergebnis mal vorweg: perfekt!

Vorweg sei gesagt: Für das nachfolgende braucht man KEINEN Jailbreak! Bei mir war er nur nötig um die Tetheringoption freizuschalten. Für iPhone 3G und 3GS die Tethering aktiviert haben, geht es ohne!

Das iPhone kennt zwei Möglichkeiten des Tetherings: über das USB-Kabel und über Bluetooth. USB wäre die bessere Möglichkeit, da es definitiv akkuschonender ist, also dort mal zuerst geschaut. Ziemlich schnell war klar, das es relativ aussichtslos  sein würde, da unter Windows und OSX ein neuer, proprietärer Netzwerkadapter angelegt wird und es dafür bislang keine Treiber gibt um ihn auch unter Linux zu benutzen. Bleibt also noch Bluetooth.


Update 1 (ungetestet):

Ich bekam gerade folgenden link zugeschickt: iPhoneEthernetDriver Damit soll auch das USB-Tethering möglich sein, durch ein neues Kernel Modul.

Update 2 (getestet):

Der obige Link funktioniert! Damit hat man dann auch USB-Tethering :) Dennoch finde ich Bluetooth (vorausgesetzt, es geht nicht um jede Minute Akkuleistung) irgenwie charmanter, so ganz ohne Kabel… (Danke Michi!)

Über Bluetooth wird ein Personal Area Network aufgebaut (PAN). Dies ist ein standardisiertes Verfahren und sollte daher ohne Probleme funktionieren.

Es gibt zwei Wege, die Bluetooth-PAN Verbindung zu nutzen: mit dem NetworkManager oder ohne NetworkManager. Bei beiden Methoden muss das iPhone mit dem PC gepaired sein, wovon ich im Folgenden einfach ausgehe (Bei Problemen: Bluetooth im ubuntuusers.de Wiki). Wer den NetworkManager nutzt, kann gleich zu Methode 2 gehen.

Methode 1: Ohne NetworkManager

Dafür muss die Bluetoothverbindung und das PAN manuell erstellt werden. Zuerst muss die Hardwareadresse des iPhone rausgefunden werden:

hcitool scan

Oder man schaut unter Einstellungen -> Allgemein -> Info am iPhone.

Nun baut man zuerst das PAN auf (statt 00:00… seine eigene Adresse einsetzen):

pand -c 00:00:00:00:00:00 -n

Danach das neue erstellte Interface hochfahren:

ifconfig bnep0 up

Und sich per DHCP eine IP-Adresse vom iPhone holen:

dhclient bnep0

Dies kann man sich auch zukünftig ersparen, in dem man folgende Zeile in die /etc/network/interfaces einträgt:

iface bnep0 inet dhcp

Nun sollte man über das iPhone online sein! Um die Verbindung wieder abzubauen, einfach folgendes eingeben:

ifconfig bnep0 down
pand -K

Das ganze geht auch etwas komfortabler mit einem Script (bei mir unter /usr/local/bin/tether):

#!/bin/sh
 
pand='/usr/bin/pand'
ifup='/sbin/ifup'
ifdown='/sbin/ifdown'
phone_address='00:1C:B3:56:34:C6'
 
case "$1" in
 
  start)
 
        echo "Connecting to iPhone : "
        $pand --connect $phone_address -n
        sleep 2
        $ifup bnep0
        echo "done."
   ;;
 
  stop)
 
        echo "Disconnecting from iPhone : "
        $ifdown bnep0
        sleep 2
        $pand -K
        echo "done."
   ;;
 
  *)
 
        echo "Usage: tether { start | stop  }"
 
        exit 1
 
   ;;
 
esac
 
exit 0

Methode 2: Mit NetworkManager

Wenn man den NetworkManager benutzt, was man per default macht wenn man ein aktuelles Ubuntu einsetzt, dann kommt man mit der obigen Methode nicht weit, da viele Programme, darunter auch der Firefox, darauf warten, dass der NetworkManager das “online” Signal gibt. Da er allerdings vom Konsolengetippe nichts mitbekommt, ist man noch “offline”.

Leider klappt es nicht von Haus aus mit dem Gnome Bluetooth Manager. Es gibt allerdings einen, in meinen Augen wesentlich besseren Ersatz für diesen: Blueman

In Karmic ist er erfreulicherweise in den offiziellen Paketquellen enthalten, leider aber sehr veraltet. Um das Tethering benutzen zu können benötigt man eine aktuelle Version aus ppa:blueman/ppa

Nach einem beherzten apt-get update und apt-get install blueman wird der alte Gnome Bluetoothmanager gelöscht und durch Blueman ersetzt.

Nun kann man das iPhone als neues Gerät einrichten. Nachdem man dies getan und dem iPhone in Blueman vertraut hat, kann man mittels Rechtsklick auf das Gerät in der Geräteliste das Tethering mit Aktivierung des Network Acces Points starten. Der Rest sollte automatisch geschen: Es wird eine neue Verbindung im NetworkManager angelegt und aktiviert, es wird sich per DHCP eine Adresse geholt und die Routen werden gesetzt; man ist online, technisch und, was viel wichtiger ist, auch aus Sicht des networkManagers.

Das einzige was nun zukünftig getan werden muss, um eine Verbindung aufzubauen ist in meinem Falle ein Rechtsklick auf das Blueman Trayicon -> Letzte Verbindungen -> Netzwerkzugriff auf Jan’s iPhone

Natürlich sind nicht alle Sachen von mir herausgefunden worden. Leider ist mir der Firefox abgestürzt und die Tabs sind weg. Daher kann ich keine Quellenangaben der (meist englischen) Seiten geben. Daher geht mein Dank an das große, weite, allwissende Internet im Allgemeinen! Ich hoffe auf euer Verständniss.


Ähnliche Artikel:

16 Kommentare zum Artikel

Marc
8.1.2010 um 15:25

Wäre nicht vielleicht ein beherztes
apt-get update ausreichend? Also ohne das “install” mittendrin?!

01

Jan
8.1.2010 um 15:26

besser is’ das! :) korrigiert, danke!

02

DarwinOS
8.1.2010 um 15:45

Ich glaub du hast dich entweder nicht genug informiert, oder einfach falsch informiert! der USB-Tether hat nichts mit proprietärer Verfahren zu tun.



“aber ist natürlich einfach alles auf Bösen Unternehmen zu werfen ;-) ” :Sarkasmus

03

Jan
8.1.2010 um 15:58

Ok, ich gebe dir in Teilen recht. Man kann die USB-Verbindung nutzen, aber nicht in dem Sinne, wie es für das Tethering benötigt wird. Ich habe lange Zeit die Internetverbindung über das USB-Kabel genutzt. (siehe die iPhone-Übersichtsseite).

Ich lasse mich allerdings gerne eines besseren belehren, und mich davon überzeugen, dass das im iPhone OS eingebaute Tethering über USB unter Linux funktioniert.

Und nein, ich finde nicht das Apple böse ist ;)

04

Jan
8.1.2010 um 16:04

ok, just in dem Moment, als ich deinen Kommentar beantwortet habe, bekam ich über Twitter einen Link zum USB-Kernelmodul. Siehe oben. Muss ich mal testen :)

05

Harper04
8.1.2010 um 16:30

Schau dir doch mal PdaNet aus dem Cydia Store an,
damit kannst du ein quasi Wlan AP einrichten der als Router für UMTS dient, ganz ohne irgendwelche Beschränkungen :) (Vorrausgesetzt du kaufst die Pro Version)

06

DarwinOS
8.1.2010 um 17:11

Sorry, ich habe vergessen es zu verlinken! bei mir funktioniert es sehr gut unter BSD
http://www.cs.toronto.edu
Forum: Tether uber USB – Linux

07


Jan
8.1.2010 um 17:55

USB-Tethering funktioniert, siehe Update oben!

09

mreczio
8.1.2010 um 17:57

Habe echt bei der Überschrift überlegen müssen was Tethering bedeutet. Schreibt man heute nicht mehr: Native iPhone Anbindung an Linux? ist das uncool?

10

Jan
8.1.2010 um 18:02

Nein ist es nicht ;) , aber “Tethering” oder evtl besser “Internet-Tethering” ist ein fester Begriff beim iPhone und auch bei T-Mobile, wo man zum Beispiel die “Tethering-Option” zubuchen kann. Auf dem iPhone Display steht auch “Internet-Tethering”

Aber ansonsten gebe ich dir in großen Teilen Recht, was unsere verdenglischung angeht…

11

Jan
8.1.2010 um 18:50

@DarwinOS jo, die Seite kenne ich, schau mal hier: http://www.virtualpixel.de/?p=924 ist ja aber nun überflüssig :)

12

McDope
8.1.2010 um 21:25

@Jan: Ich muss dich korrigieren, arbeite im Kundendienst bei T-Mobile und die Option heißt anders, das Tethering hat sich halt nur im Gebrauch durchgesetzt.

Offizieller/Vermarkteter Name der Option ist “Modem Nutzung” und “Modem Nutzung S”. In der Software heißt es aber auch wieder anders, der übliche Magenta-Wahnsinn :D

13

Jan
8.1.2010 um 21:29

@McDope Hmm.. ich gebe mich geschlagen! Aber in der Regel weiß jeder was gemeint ist, wenn es um “Tethering” geht. Aber danke für die Klarstellung.

Btw.: gut jemanden bei T-Mobile zu kennen ;)

14

Eshat
29.5.2010 um 17:08

Eben eher zufällig beim Kompilieren eines 2.6.34er Kernels folgendes gesehen:

Apple iPhone USB Ethernet driver

zu finden unter: Device Drivers -> Network device support -> USB Network Adapters

Schnell als Modul kompiliert, das Programm ipheth-utils installiert, kernel installiert, neustart, iphone angeschlossen, dhclient eth1 und schon läuft das Tethering über USB.

Ein Speedstest (iPhone über W-LAN an 6000er Leitung) ergab 400/40 kByte Down- und Upload, was sicher besser als bei einer Bluetooth Verbindung ist.

15

Eshat
29.5.2010 um 17:14

Ach wie ich gerade sehe brauch man nicht mal einen Kernel selber zu kompilieren.

The ipheth-dkms package provides the source code for the ipheth Linux kernel
driver. The module is automatically built and installed by DKMS for the
running kernel.

Kann das jemand testen?

16

Kommentar schreiben:

Folgende HTML-Tags können genutzt werden:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">


© 2010 Jan Hofmann - Einige Rechte vorbehalten - Impressum