Hinweis: Mittlerweile existiert eine einfachere Möglichkeit der Synchronisation, nämlich über GVFS.
Endlich endlich endlich. Wie lang haben wir, die Linux-Nutzer und iPhone/iPod touch Besitzer zugleich sind, darauf gewartet, unser Gerät mit dem nun gar nicht mehr so neuen iPhone OS 3.0/3.1 zu synchronisieren. Bisher musste man sich mit Lösungen wie PwnPlayer oder VirtualBox behelfen, doch dies hat nun ein Ende, denn jetzt lässt sich Musik mithilfe von gtkpod direkt in die iTunesCDB synchronisieren, was heißt, dass die Dateien mit den nativen Programmen “Musik” und “Videos” (“iPod” beim iPhone) abgespielt werden können, inklusive CoverFlow, Schüttelfunktionen usw, so, als würde man ganz normal mit iTunes syncen.
Der Hacker Marcan beschreibt in einem Blogeintrag, wie man mit den aktuellen iPhone-Linux-Bibliotheken das iPhone/den iPod touch mounten und Zugriff auf die iTunesCDB erlangen kann. Das ganze ist noch etwas frickelig, man muss einiges selbst kompilieren, und da hier die allerneuesten Alphaversionen eingesetzt werden, sind sicher noch etliche Bugs vorhanden.
Ich hab das ganze unter Ubuntu 9.10 “Karmic Koala” und einem iPod touch der 1.Generation mit OS 3.1.2 getestet und es funktioniert soweit super. Allerdings sollte man den Kram nur ausprobieren, wenn man bereits ein wenig Erfahrung mit Linux hat, da man hier leicht etwas kaputt machen kann. Es ist nicht unwahrscheinlich, das die hier aufgeführten Tools in der nächsten Ubuntu-Version (also Lucid Lynx) als Paket zur Verfügung stehen oder die Synchronisation out-of-box in Banshee, AmaroK oder Rhythmbox funktionieren wird. Einige Anmerkungen:
- Installiert man die iPhone-Pakete über die Paketverwaltung, so sollte man nicht vergessen, auch die Development-Headers fürs kompilieren mitzuinstallieren, also die Dinge, die auf -dev enden.
- Man sollte sein iPhone bereits einmal mit iTunes synchronisiert haben, damit eine iTunesCDB vorhanden ist.
Legen wir los. Als erstes braucht man natürlich die Standard-Tools, wie make, gcc und git, die man sich via apt-get besorgt:
$ sudo apt-get install build-essential cmake git-core checkinstall
Dann benötigen wir spezielle iPhone-Pakete. Für Ubuntu existiert eine Paketquelle. Unter System->Systemverwaltung->Software-Paketquellen fügt man folgenden Eintrag hinzu:
ppa:jonabeck/ppa
Nach einem
$ sudo apt-get update
kann man die iPhone-Tools installieren:
$ sudo apt-get install ifuse libiphone0 libiphone-dev libplist0 libplist-dev libusb-1.0-0 libusb-1.0-0-dev libusbmux0 libusbmux-dev
Und sicherstellen, dass der aktuelle User der Gruppe fuse zugehörig ist:
$ sudo adduser $USER fuse
Nun benötigen wir eine weitere Komponente: Die Bibliothek libgpod. Diese ist zwar in den Ubuntu-Quellen enthalten, allerdings nur in der Version 0.7.2. Deshalb müssen wir die Version 0.7.3 ohne unsere Kuschel-Paketverwaltung selbst kompilieren. Nach Entferunung der alten libgpod-Version…
$ sudo apt-get remove --purge libgpod4 libgpod-common
…kann die neue Version installiert werden:
$ git clone git://gitorious.org/~teuf/libgpod/teuf-sandbox.git
$ cd teuf-sandbox
$ CFLAGS="-g -O0" sh autogen.sh --prefix=/usr
$ make
$ sudo checkinstall
Hier gilt es, die Bildschirmausgaben genau zu lesen und fehlende Pakete über die Paketverwaltung nachzuinstallieren (nicht die Development-Headers vergessen!). Beim checkinstall-Assistent muss als Name “libgpod4″ und als Version “0.7.3GIT” angegeben werden.
Hat alles geklappt, sollte man jetzt sein Gerät anschließen und es mounten:
$ sudo mkdir /media/iPod
$ sudo ifuse /media/iPod
$ sudo mkdir /media/iPod/iTunes_Control/Device
Damit das iPhone bzw. der iPod mit gtkpod verwendet werden kann, muss noch die UUID herausgefunden werden:
$ lsusb -v | grep -i iSerial
Im Konsolen-Output sollte jetzt eine 40-stellige Nummer zufinden sein. Diese brauchen wir für den nächsten Befehl:
$ tools/ipod-read-sysinfo-extended <UUID> <mountpoint>
Wenn im Verzeichnis /media/iPod/iTunes_Control/Device die XML-Datei
SysInfoExtended auffindbar ist, kann man gtkpod öffnen. Ist gtkpod noch nicht installiert, reicht ein
$ sudo apt-get install gtkpod
um sich das Programm auf die Platte zu holen. Nach dem Start euer Modell auswählen, Songs hinzufügen und auf “Änderungen sichern” klicken. Auf dem Bildschirm des iPhones bzw. des iPods sollte jetzt eine “Synchronisieren” Meldung erscheinen, wie man sie von iTunes her kennt. Nach dem Start des Musik-Players ließt er die Datenbank neu ein, hier muss man ein wenig Geduld haben. Dies liegt daran, dass die iTunesCDB eigentlich nur von iTunes zur Synchronisation verwendet wird. Intern verwendet der iPod eine SQLite-Datenbank.
Und jetzt heißt es abtanzen!