Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte diesen Artikel testen und das getestet-Tag entsprechend anpassen.
Anwendungen mit denen sich der iPod unter Ubuntu synchronisieren lässt, wie z.B. Amarok, Banshee, gtkpod oder Songbird nutzen hierfür der Bibliothek libgpod.
Mit den neuen iPods Classic (6. Generation) und Nano Video (3. Generation) hat Apple jedoch die iTunes Datenbank mit einer Prüfsumme gesichert. Wenn ein anderes Programm als Apples iTunes die iTunesDB verändert, stimmt diese Prüfsumme nicht mehr und der iPod zeigt keine der übertragenen Musik-Titel, Videos oder Fotos an.
Inzwischen liegt aber mit der aktuellen libgpod eine Version der Bibliothek vor, die die iPods der neuesten Generation mit Prüfsummenschutz unterstützt. Allerdings ist diese Version (0.6.0 oder höher) erst mit Hardy Heron in den offiziellen Ubuntu-Quellen enthalten und muss bis Gutsy Gibbon von Hand installiert werden. Wie dies funktioniert soll hier beschrieben werden.
Damit der Schreibzugriff auf den iPod problemlos funktioniert, wird in dieser Anleitung davon ausgegangen, dass dieser für Windows konfiguriert ist. D.h. sein Dateisystem ist mit Fat32 konvertiert, welches unter Linux problemlos beschrieben werden kann. Ist der iPod für Mac konfiguriert, liegt ihm das Dateisystem HFS+ zugrunde, welches u.U. nicht beschreibbar ist. Probleme, die mit dem Schreibzugriff auf das Dateisystem zusammenhängen, werden in diesem Artikel nicht behandelt. Weiteres hierzu im Artikel iPod.
Hier werden zwei Methoden beschrieben die aktuelle libgpod zu installieren. Mit der ersten Methode wird der Quelltext in ein simples DEB-Paket verwandelt und so die neue libgpod in das System integriert. Mit der einfachen zweiten Methode werden libgpod3 und davon abhängige Anwendungen mit Hilfe der Paketverwaltung aus einem "Personal Package Archive" (PPA) installiert.
Die zweite Methode ist der einzige Weg, um Listen, gpodder, Exaile und Elisa zu installieren, da nur hier passende Python Bindings angeboten werden, von welchen die genannten Anwendungen abhängen.
Während bei der Installation aus dem PPA mit der libgpod alle von ihr abhängigen Anwendungen aktualisiert werden, geht es bei der ersten Methode darum libgpod so zu aktualisieren, dass die Abhängigkeiten der Anwendungen aus den offiziellen Paketquellen erfüllt bleiben.
Diese Pakete müssen installiert [1] werden:
build-essential
libglib2.0-dev
libgtk2.0-dev
libsgutils1-dev (universe, [2])
checkinstall (universe)
gettext
Paketliste zum Kopieren:
sudo apt-get install build-essential libglib2.0-dev libgtk2.0-dev libsgutils1-dev checkinstall gettext
sudo aptitude install build-essential libglib2.0-dev libgtk2.0-dev libsgutils1-dev checkinstall gettext
Ohne die Installation von libsgutils1-dev wird libgpod ohne das Skript ipod-read-sysinfo-extended erstellt. Dieses Skript erleichtert das Auslesen der Firewire-ID, welche zur Generierung der korrekten Prüfsumme benötigt wird.
Zunächst muss man die aktuelle Version der Bibliothek als tar.gz-Archiv von der Projektseite herunterladen. Anschließend muss das Archiv entpackt [4] werden.
Nun muss der Quellcode nur noch auf gewohntem Wege kompiliert [5] werden. Dabei muss allerdings im Dialog der Paketname von libgpod zu libgpod2 umbenannt werden, damit das manuell erstellte Paket das Ubuntu-Paket ersetzt:
Das Paket wird entsprechend dieser Vorgaben erstellt: 0 - Maintainer: [ root@computer ] 1 - Summary: [ libgpod is a shared library to access the contents of an iPod. ] 2 - Name: [ libgpod ] 3 - Version: [ 0.6.0 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ i386 ] 8 - Source location: [ libgpod-0.6.0 ] 9 - Alternate source location: [ ] 10 - Requires: [ ] Geben Sie die betreffende Nummer ein, um die Vorgaben zu ändern:
Hier muss man die Ziffer für das Ändern des Namen eingeben und anschließend den gewünschten Paketnamen:
2: libgpod2
Anschließend die Installation mit Eingabe ⏎ fortsetzen.
Nach erfolgreicher Installation muss die neue Bibliothek noch so verlinkt werden, dass die Anwendungen, welche die alte Version von libgpod erwarten, die eben installierte neue Version benutzen.
sudo ln -fs /usr/local/lib/libgpod.so.3 /usr/lib/libgpod.so.2
Ein zweiter Link ist für das Ausführen des Skripts ipod-read-sysinfo-extended erforderlich.
sudo ln -s /usr/local/lib/libgpod.so.3 /usr/lib/libgpod.so.3
Sollten Fehler auftreten, kann man mit folgenden Befehlen sehen, ob die Links richtig sitzen, dazu muss man überprüfen, ob die Befehle die richtige Ausgabe erzeugen:
ls -l /usr/local/lib/ | grep libgpod
zu erwartende Ausgabe:
-rw-r--r-- 1 user user 803770 2007-11-23 19:30 libgpod.a -rwxr-xr-x 1 user user 932 2007-11-23 19:30 libgpod.la lrwxrwxrwx 1 user user 16 2007-11-23 19:30 libgpod.so -> libgpod.so.3.0.0 lrwxrwxrwx 1 user user 16 2007-11-23 19:30 libgpod.so.3 -> libgpod.so.3.0.0` # Wichtig! -rwxr-xr-x 1 user user 311708 2007-11-23 19:30 libgpod.so.3.0.0 # Wichtig!
ls -l /usr/lib/ | grep libgpod
zu erwartende Ausgabe:
lrwxrwxrwx 1 user user 16 2007-10-26 21:05 libgpod.so.2 -> /usr/local/lib/libgpod.so.3 # Wichtig! -rw-r--r-- 1 user user 295932 2007-07-16 10:04 libgpod.so.2.0.0 lrwxrwxrwx 1 user user 27 2007-11-23 19:32 libgpod.so.3 -> /usr/local/lib/libgpod.so.3
Weiter geht es mit der Vorbereitung des iPods.
Auf manchen Systemen verabschiedet sich checkinstall mit:
ranlib: could not create temporary file whilst writing archive: No more archived files make[5]: *** [install-gpodLTLIBRARIES] Fehler 1 ... **** Installation fehlgeschlagen. Breche Paket-Erzeugung ab. Räume auf...OK Auf Wiedersehen!
Hier hilft es das Verzeichnis mit dem Befehl
make clean
aufzuräumen. Nun kann die Installation wie beschrieben wiederholt werden.
Adresszeile zum Hinzufügen des PPAs:
ppa:ipod-touch/ppa
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams ipod-touch zu entnehmen.
Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.
Dieses Archiv ist eigentlich für den iPod Touch eingerichtet worden. Weitere Information zu diesem Archiv gibt es hier .
Anschließend stehen diese Pakete in aktueller Version zur Verfügung:
amarok
amarok-engines
amarok-xine
banshee
exaile
gtkpod
gtkpod-aac
ical2sqlite
ipod-convenience
libgpod-common
libgpod-dev
libgpod-nogtk-dev
libgpod3
libgpod3-nogtk
libical-dev
libical
nuvexport
python-gpod
rhythmbox
Die genutzten Anwendungen können nun mit Hilfe der Paketverwaltung aktualisiert werden. Die libgpod3 wird als notwendige Abhängigkeit mit installiert.
Die Prüfsumme, mit der die iTunesDB gesichert ist, wird anhand der sogenannten Firewire-ID berechnet. Daher muss diese erst für libgpod zugänglich gemacht werden, bevor der iPod synchronisiert werden kann. Dies muss für jeden iPod genau einmal gemacht und nur dann wiederholt werden, wenn der iPod neu formatiert wird (z.B. über "Wiederherstellen" in iTunes).
Zunächst müssen der Pfad der Gerätedatei und der Einhängepunkt des iPod ermittelt werden. Dazu wird der iPod nun angeschlossen und eingehängt. Die Pfade können nun im Dateibrowser abgelesen werden.
Alternativ können die Pfade auch im Terminal ermittelt werden. Mit dem Befehl blkid [3] bekommt man den Pfad der Gerätedatei heraus
blkid .. /dev/sdb1: LABEL="MEIN IPOD" UUID="C002-A00B" TYPE="vfat"
Hier also /dev/sdb
Die "1" bezeichnet die erste Partition auf dem Gerät, das Gerät selbst ist also nur sdb.
Dieser Befehl (Pfad an den eigenen tatsächlich ermittelten Pfad anpassen!) hingegen verrät den Einhängepunkt:
mount | grep /dev/sdb1 /dev/sdb1 on /media/MEIN IPOD type vfat (rw,nosuid,nodev,noatime,flush,uid=1000,utf8,shortname=lower)
Hier also /media/MEIN\ IPOD.
Der "\" vor dem Leerzeichen markiert dieses als Teil des Pfades. Ansonsten würde das Skript das Leerzeichen als Ende des Dateipfades interpretieren und nur /media/MEIN als Einhängepunkt betrachten.
Die ermittelten Pfade können bei jedem iPod und PC anders sein! Sie hängen ab von der Anzahl der angeschlossenen Geräte am PC und vom "Namen" (Label) des iPods. Dass heißt, die Pfade in den nun folgenden Befehlen müssen an die eigenen tatsächlich ermittelten Pfade angepasst werden!
Die Firewire-ID befindet sich in einer XML-Datei auf dem iPod. Sie muss ausgelesen und in die für libgpod zugängliche Datei /media/MEIN\ IPOD/iPod_Control/Device/SysInfoExtended geschrieben werden. Es gibt zwei Methoden dies zu tun. Einmal automatisiert mit Hilfe des zusammen mit libgpod installierten Skripts ipod-read-sysinfo-extended oder von Hand.
Folgender Befehl [8] bereitet den iPod schließlich für den Schreibzugriff durch libgpod vor (Pfad an den eigenen tatsächlich ermittelten Pfad anpassen!):
ipod-read-sysinfo-extended /dev/sdb /media/MEIN\ IPOD
Es empfiehlt sich die Arbeit des Skripts zu kontrollieren, da es diese oft nicht korrekt verrichtet ohne dabei eine Fehlermeldung auszugeben. Mit cat kann der Inhalt der Datei SysInfo betrachtet werden. Dazu wird dem Programm der Pfad zur Datei SysInfo übergeben [3]. (Pfad an den eigenen tatsächlich ermittelten Pfad anpassen!)
cat /media/MEIN\ IPOD/iPod_Control/Device/SysInfo
Die Datei sollte folgenden Inhalt haben, wobei "ffffffffffffffff" hier für die Firewire ID, also eine 16stellige Zeichenfolge steht, die für jeden iPod individuell ist.
FirewireGuid: 0xffffffffffffffff
Wenn stattdessen eine leere Ausgabe oder
cat: /media/MEIN IPOD/iPod_Control/Device/SysInfo: No such file or directory
folgt, dann ist irgend etwas schiefgelaufen und das Ganze muss wie im nächsten Kapitel beschrieben von Hand gemacht werden. Ansonsten ist der iPod nun bereit zum Befüllen.
Bei der zweiten Methode bedarf es etwas an Handarbeit. Wenn der iPod angeschlossen ist kann die Firewire ID, eine 16-stellige Zeichenfolge (z.B. 00A1234567891231), mit folgendem Befehl ausgegeben werden:
sudo lsusb -v | grep -i Serial
Bei einem iPod-Touch ist diese Nummer viel länger, die Firewire-ID umfasst hier nur die ersten 16 Zeichen.
Nun wird die Datei /media/MEIN\ IPOD/iPod_Control/Device/SysInfo (Pfad an den eigenen tatsächlich ermittelten Pfad anpassen!) falls nicht vorhanden erstellt und in einem Editor geöffnet [7] und folgende Zeile hinzugefügt:
FirewireGuid: 0xffffffffffffffff
Wobei ffffffffffffffff durch die eben ermittelte Firewire ID zu ersetzen ist. (Nicht das anführende 0x vergessen!) Nun wird die Datei gespeichert.
Wenn bis hierher alles ohne Fehler funktioniert hat, sollte es nun möglich sein den iPod zu synchronisieren. Auf der Projektseite gibt es eine Liste aller Anwendungen, die mittels libgpod auf den iPod zugreifen. Diese können nun genutzt werden, ohne dass weitere Anpassungen vonnöten wären. Außerdem gibt es im Wiki eine Einführung mit weiteren Links. In den weiteren Kapiteln werden beobachtete Probleme beschrieben und Tipps gegeben, diese zu vermeiden. Zum Schluss wird noch erklärt, was bei Upgrades, Updates und Deinstallation zu beachten ist.
Viele Probleme lassen sich dadurch vermeiden, dass der iPod vor dem Abziehen des Steckers richtig ausgehängt wird.
Anwendungen, die es erlauben das iPod-Modell von Hand auszuwählen, könnten die auf dem iPod angelegte Datei SysInfo überschreiben. Wenn dies geschieht, schreibt libgpod weiterhin ungültige Daten auf den iPod. Deshalb ist es bei Fehlern wichtig den Inhalt der Datei SysInfo wie oben beschrieben zu überprüfen.
Wenn nach einiger Zeit wieder nur ungültige Dateien auf den IPod geschrieben werden, kann das an dem Programm liegen. Laut einem Forenbericht funktionierten weder Amarok, exaile, Banshee noch gtkpod, sondern nur Rhythmbox.
Albumcover aus Tags werden nicht auf den iPod übertragen. Hingegen werden Albumcover aus dem Amarok Verzeichnis (~/.kde/share/apps/amarok/albumcovers) und solche, die sich im selben Ordner wie die mp3-Dateien befinden, bei einigen übertragen. Amarok-Nutzer, die Probleme mit den Albumcover haben, können mit dem Amarok-Skript CopyCover die (von Amazon) heruntergeladenen Cover in die entspechenden Ordner speichern.
Einige Nutzer berichten davon, dass Cover nicht den richtigen Alben zugeordnet wurden.
Mit Gtkpod oder Amarok können Albencover übertragen werden. Gtkpod fragt automatisch die iPod-Version ab, in Amarok geht man in die Mediaplayer-Kategorie und klickt bei verbundenem iPod auf das kleine iPod-Icon oben neben "Verbinden", "Trennen", "Übertragen" sowie dem Einstellungsicon. Man kann im aufklappendem Menu die iPod-Version einstellen. Mit dem silbernen iPod classic 120GB wurde einfach der silberne 160GB classic gewählt.
Videos kann man sehr gut mit Thin Liquid Film konvertieren, allerdings sollte man damit die Videos nicht direkt auf den iPod laden, weil diese dann als Musik-Dateien abgelegt werden. Videos, die mit dem Amarok übertragen werden, erscheinen auch auf dem iPod als Video.
Ein Bug in gtkpod-aac bereitet Probleme mit mp4-Podcasts.
Amarok-Nutzer, die die Hörbuch-Funktion nutzen möchten, können sich das Script transKode und das Paket faac (multiverse [2]) installieren, um dann direkt in Amarok mp3-Dateien in das aac-Format zu konvertieren. Mit der Erweiterung ".m4b" landet die Datei dann als Hörbuch auf dem iPod.
Bilder können mit TriPod übertragen werden. Thumbnails werden dann angezeigt, leider aber keine vergrößerten Bilder in der Diaschau.
Möchte man das Paket deinstallieren, z.B. weil man zur Version aus den Ubuntu-Quellen zurückkehren möchte oder das System auf Hardy Heron umsteigt, geschieht dies ganz normal über die Paketverwaltung [1].
Außerdem müssen die Links entfernt werden, wenn diese auf eine nicht mehr vorhandene Datei verweisen:
sudo rm /usr/lib/libgpod.so.2
bzw.
sudo rm /usr/lib/libgpod.so.3
Anschließend muss man ggf. das Paket aus den Ubuntu-Quellen erneut installieren [1].
Diese Revision wurde am 8. Juni 2011 20:20 von kaputtnik erstellt.