Mittwoch, 17. Februar 2010

iPhone OS 3.x USB Tethering mit Linux (Fedora 12)

Ich habe vor ein paar Monaten einen Beitrag geschrieben wie man mit Linux Tethering über Bluetooth hin bekommt (Link). Inzwischen ist es auch möglich über USB zu tethern. Diego Giagio hat dafür ein Kernel Module erstellt. Auf seiner Homepage hat er auch eine Beschreibung wie dieses zu installieren ist.
Ich habe das Kernel Module probiert und alles funktioniert bis jetzt wunderbar. Anbei eine angepasste Version des HowTos für Fedora 12 User:

Da Fedora 12 seit ein paar Tagen libimobiledevice im testing Repo hat verkürzt sich das Howto um einiges. Man braucht nämlich dieses Packages um ipheth (so heißt das Kernel Module) zu kompilieren.

1. libimobiledevice inkl. devel Package installieren

In der Commandline also root das libimobiledevice Package mit dem folgenden Command installieren:

# yum --enablerepo=updates-testing install libimobiledevice libimobiledevice-devel

Damit sollten auch alle benötigten Dependencies installiert werden. Falls nicht installiert benötigt ihr auch die Packages kernel-devel, gcc und git.

2. ipheth Tool erstellen und installieren
Da sich derzeit am Treiber recht oft etwas ändert kompiliere ich mir das ipheth Tool und das Kernel Module derzeit immer händisch. Wenn die erste stabile Version veröffentlicht wird, erstelle ich ein RPM-Packet.

Zuerst sollte man sich ein Verzeichnis erstellen in dem der Sourcecode kompiliert wird. Ich verwende dazu ~/src/ipheth.

Also in dieses Verzeichnis wechseln und den Sourcecode von github downloaden:
$ cd ~/src
$ git clone git://github.com/dgiagio/ipheth.git


Das iPhone muss mit dem PC "gepaired" werden dazu muss das Tool ipheth kompiliert und installiert werden:

$ cd ipheth/ipheth-pair/
$ make


Falls das ohne Problem durch gelaufen ist, muss das Tool nun als root installiert werden.

# make install

3. ipheth Kernel Module erstellen und installieren

Jetzt muß nur noch das Kernel Module erstellt und installiert werden.

$ cd ipheth/ipheth-driver/

Da ich unter Fedora mit dem aktuellen (Stand: 22.02.2010) Makefile Probleme habe. Habe ich mir ein eigenes Makefile erstellt. Dieses kann man hier downloaden und danach mit dem Makefile im aktuellen Verzeichnis austauschen. Danach sollte man das Kernel Module ohne Probleme erstellen können.

$ make

Falls auch dieser Schritt ohne Probleme durch gelaufen ist, muss das Kernel Module nun als root installiert werden.

# make install

Danach kann man das iPhone anstecken und es sollte ein neues Netzwerk Device erstellt werden. Fall das nicht der Fall ist, einfach einmal den Rechner rebooten damit die neuen udev Regeln geladen werden.

Ich verwendet NetworkManager und sehe dann folgendes:



Über die Commandline gibt der Befehl ifconfig Infos über die Netzwerk Devices. Hier ist eth1 das iPhone.

Keine Kommentare: