Amarok rockt das iPhone: Musik synchronisieren ohne iTunes

ACHTUNG:

bitte vorher auf die Übersichtsseite zum Thema iPhone & Linux schauen, ob es evtl einen neueren Artikel zu diesem Thema gibt!

ACHTUNG:

Diese methode ist NICHT mehr möglich mit iphone OS 3.0 aufgrund einer neuen Datenbankstruktur.

Es ist geschafft, ein weiterer Sieg über das iPhone ist errungen! Nachdem ich nun schon meine PIM Sync-Problematik in den Griff bekommen habe, war das nächste Ziel die Musik ohne Windows und ohne iTunes auf das iPhone zu bekommen.

Also ein bisschen gegoogelt und nach knapp einem Tag lief es dann auch. Somit muss ich die Windows VM nur noch ab und an mal starten um ein Backup zu machen, um für Wiederherstellungen durch die viele Spielerei gewappnet zu sein.

Es gibt im Internet eine Reihe, meist englischsprachiger, Anleitungen zum Thema. Diese dienen als Grundlage für diese Anleitung und werden an den jeweiligen Stellen verlinkt. So, und nun gehts los:

Grundlagen sind ein iPhone Classic mit 2.2.1 Firmware, Ubuntu Intrepid Ibex, Amarok 1.4.10 und ein funktionierendes WLAN.

1. Jailbreaken

Voraussetzung ist ein gejailbreaktes iPhone auf dem OpenSSH installiert ist. (Mal nach QuickPWN und Cydia googeln ;) ) Dies ist dann auch der einzige und letzte Schritt bei dem Windows gebraucht wird. Anzumerken ist, dass der Jailbreak, zumindest bei mir, nicht in der Virtualbox VM funktioniert hat.


2. IP Adressen und /etc/hosts

Das iPhone braucht eine feste IP um gemountet zu werden. Dies geht relativ einfach: Man bekommt von seinem Router eine Adresse über DHCP und drückt dann im iPhone in der WLAN Verwaltung auf den “Statisch” Button. Dadurch werden die aktuellen Einstellungen vom DHCP Server fest übernommen.

Der einfachheitshalber erstellt man sich dann noch einen Eintrag in der /etc/hosts Datei, zum Beispiel folgendermaßen:

192.168.178.21 iphone

Wobei natürlich die IP Adresse durch eure IP Adresse geändert werden muss.

3. Automatische Displaysperre deaktivieren

Da das iPhone offiziell nichts vom Sync-Vorgang mitbekommt, geht es bei Nichtbenutzung in den Standbymodus. Da im Standby das WLAN ausgeschaltet wird, ist es eher suboptimal für unser Vorhaben. Daher die Automatische Displaysperre auf “nie” stellen.

4. iPhone unter Ubuntu

(Quellen:

http://lifehacker.com/388785/sync-your-iphone-wirelessly-in-linux

https://help.ubuntu.com/community/PortableDevices/iPhone)

Hat man nun ein offenes iPhone und die IP Adressen richtig vergeben, installiert man sich das Paket ipod-convenience, welches in den Intrepid Quellen verfügbar ist.

Man wird während der Installation aufgefordert den Mountpunkt des iPhones anzugeben. Dort nimmt man zum Beispiel /media/iphone

Als nächstes wird man aufgefordert die IP Adresse des iPhones anzugeben. Aufgrund des Eintrages in der hosts Datei reicht: iphone

Für den nächsten Schritt MUSS das iPhone zwingend über das USB Kabel angeschlossen werden! Es werden USB-Hashwerte für die iTunes DB auf dem iPhone generiert.

Das Paket ipod-convenience stellt die Pakete iphone-mount und iphone-umount bereit.

Es wird nun auf der Konsole iphone-mount ausgeführt. Es wird beim ersten Mal sehr lange dauern. Bei mir war es gefühlt über eine Minute. In dieser Zeit werden die SSH Schlüssel erzeugt.

Sind die Schlüssel erzeugt, muss man das Passwort für den Root-Account zweimal auf dem iPhone eingeben. (Bei den meisten dürfte dies “Alpine” sein.)

Nun ist das iPhone als iPod unter /media/iphone eingebunden. Besonders komfortabel ist es aber noch nicht, da mein beim mounten und beim unmounten (was übrigens mit dem Befehl iphone-umount funktioniert) immer das Passwort eingeben muss.

5. Passwortloser Zugriff

Unter Linux gibt es die Möglichkeit sich anstelle eines Passwortes mit RSA-Keys zu authentifizieren. Da das iPhone Darwin als Grundlage hat, also auch ein Unix-Derivat, funktioniert diese Möglichkeit dort.

Dafür einfach folgende Sachen per Copy und Paste abtippen:

(Die Vorsichtigen unter Euch sollten sich dieses HowTo durchlesen: short and sweet guide to changing your iPhone/iPod touch password Dort wird erklärt, wie man das Passwort für den Root-Benutzer auf dem iPhone ändert. WICHTIG: NIEMALS das Passwort mit passwd ändern! Dies führt zu einem iPhone, welches sich immer wieder neustartet!)

UPDATE: Laut Michi war der Fehler in passwd wohl nur bei der 1.x Firmware. Bei der 2.x sollte es mit passwd gehen. Ich übernehme allerdings keine Haftung dafür. Zerstörte iPhones sind euer Problem ;)

ssh-keygen -t rsa
ssh root@iphone (Alpine oder das oben von euch geänderte)
mkdir ~/.ssh
chmod go-w / ~
cp /etc/ssh/ssh_config /etc/ssh/ssh_config.bak
echo AuthorizedKeysFile .ssh/authorized_keys >> /etc/ssh/sshd_config
exit
(Zurück auf der lokalen Konsole):
scp ~/.ssh/id_rsa.pub root@iphone:.ssh/authorized_keys

Bindet man das iPhone mit dem iphone-mount Befehl nun wieder ein, sollte es ohne eine Eingabe eines Passwortes funktionieren! Ebenso beim Unmounten des Gerätes.

6. kleine Änderungen an der iPhone Datenbank

(Quelle:http://marcansoft.com/blog/2009/01/using-amarok-and-other-itunesdb-compatible-software-with-the-iphone-2x/)

Würde man jetzt Musik auf das iPhone aufspielen, würde einem das iPhone anschließend mitteilen, das keine Musik auf dem Gerät vorhanden ist. Grund dafür ist die iTunes Datenbank auf dem Gerät. Sie muss auf eine ältere Version umgestellt werden. Dafür öffnet man auf dem iPhone die XML Datei /System/Library/Lockdown/Checkpoint.xml und sucht nach dem Key DBVersion und setzt den Wert von 4 auf 2. Datei speichern und das iPhone neustarten.

Nun ist das iPhone bereit um mit Musik gefüttert zu werden!


7. Amarok, das iPhone und Musik

Ich nutze zwar Gnome, aber Amarok ist meiner Meinung nach das beste Musikverwaltungsprogramm im Linuxbereich und hat außerdem eine hervorragende iPod Unterstützung. Abgesehen davon, bekam ich das iPhone unter Rhythmbox, Exaile und Banshee nicht zum Laufen. Als GTK Programm arbeitet momentan nur gtkpod zusammen mit dem iPhone.

Warum nicht Amarok2? Nun, die iPod Unterstützung ist noch nicht das Gelbe vom Ei und ich finde die neue Oberfläche mehr als nur gewöhnungsbedürftig, aber das wäre ein anderes Posting Wert…

Da das iPhone nicht automatisch von Amarok erkannt wird, muss man es manuell anlegen.

Dafür öffnet man Einstellungen > Amarok einrichten > Media-Player > Gerät hinzufügen

Mountpunkt, Name und Treiber (iPod) müssen angegeben werden:

Nun sollte das iPhone in der Liste der Media-Player auftauchen. Damit das iPhone nicht jedes mal manuell gemountet werden muss, lässt man dies Amarok für sich erledigen. Neben dem Player ist ein Symbol mit Zahnrädern drauf. Dahinter verbirgt sich ein kleiner Dialog in dem man einen Mount- und einen Unmountbefehl eingeben kann. Dort trägt man bei “Befehl vor dem Verbinden” iphone-mount und bei “Befehl nach dem Trennen” iphone-umount ein.

Es ist soweit: Es kann Musik gesynct werden! :D

Im Media-Player-Reiter im Amarok Hauptbildschirm kann man sich nun mit dem iPhone verbinden, Musik drauf kopieren und sich dann wieder Trennen. Hat man seine Musik mit Covern versehen, so werden auch die mitkopiert!

8. Reboot tut gut

Damit das iPhone die Musik erkennt, bedarf es zum Schluss eines Neustarts des iPhones. Falls jemand ein Workaround dafür hat, bitte her damit! ;)

So, was kommt als nächstes? Achja, die ToDos müssen irgendwie noch gesynct werden… Eins muss man dem iPhone (oder Linux?) lassen: Es wird nie langweilig!

Das wars dann erstmal für heute. Ich denke ich habe die letzten Wochen Blogabstinenz wieder gut gemacht und konnte dem ein oder anderen Linux-iPhone Nutzer weiterhelfen. Ich bin dann mal weg, Musik raussuchen :)

03. Februar 2009 von Jan
Kategorien: iPhone, Linux, Planet | 23 Kommentare

Änliche Artikel:

Kommentare (23)

  1. Ich weiß nicht, ob es angebracht ist von einem “Sieg” zu reden. Schließlich wird ja niemand dazu gezwungen ein iPhone zu benutzen.

  2. Ähm also ich habe mein Passwort mit passwd geändert und alles funktioniert! Keine Reboots.

    Meiner Meinung nach müsste das gehen!
    Das Ändern des Passworts ist nur zu empfehlen! Wahrscheinlich lässt man SSH an und dann kann das ungemütlich werden.

    Habe unter 2.2 Cydia per QuickPWN installiert.
    Die Implementation von Saurik’s passwd dürfte keine Fehler aufweisen.

    Bei der alten 1.1.4 Firmware und den pseudo Unix commands hat man mit passwd sein iPhone zerschossen.

    Vielleicht kann ja jemand anders auch noch zur Problemlösung beitragen!

  3. An sich ein netter Workaround, jedoch aufgrund des geringen Durchsatzes nicht praktikabel. Bei einzelnen Tracks noch kein Problem aber sobald man ein Album Syncen will nervt die lange Wartezeit doch enorm. Hinzu kommt das das iPhone in dieser Zeit besser an einer Stromquelle angeschlossen sein sollte. Bei größeren Syncvorgängen kann es sonst dazu kommen das das iPhone einfach aus geht. VMware oder Virtualbox + Windows + iTunes stellt leider immer noch das Maß aller Dinge unter Linux dar was das Syncen des iPhone/iPod Touch angeht.

  4. @kb es wird ja auch niemand gezwungen sich meine Artikel durchzulesen…

    @Michi Danke für den Hinweis! Da ich es selber noch nicht probiert habe, habe ich die Warnung mal einfach so übernommen. Gut zu wissen das es nun auch mit passwd geht.

    @ThreeM Du hast natürlich recht, aber damit kann ich durchaus leben. Vor allem mit der Tatsache, das der Wireless Sync uns Linuxern vorbehalten ist ;) Und für ein paar Lieder alle paar Tage reicht mir der Speed durchaus. Klar, wenn man die 8GB voll schaufeln will, dauerts ewig und der “Umweg” über eine VM wäre schneller. Aber hey, geht,s nicht auch ein bisschen ums Prinzip?

  5. Ich syncronisiere meinen iPod touch (noch die erste Generation) seit Anfang 2008 ohne Probleme mit Linux.

    Das Paket gtkpod musste ich zwar damals aus dem SVN installieren (die stable in den Ubuntu Repo konnte mit dem iPod touch/ mit dem iPhone noch nicht umgehen), aber mittlerweile ist das auch gar kein Thema mehr. Hier der Link:

    http://blog.simlau.net/2008/02/23/ipod-touch-unter-ubuntu-gutsy-710/

    Als GNOME User möchte ich halt persönlich keine KDE Libs und Programme auf meinem Rechner haben. Aber jedem das seine. ;)

    Das einzige Problem ist leider weiterhin, dass das syncen über WLAN bei mehreren Alben wirklich ewig dauert…

    Gruß, Simon

  6. Danke für Zusammenfassung der Tipps. Falls man schon ein Schlüsselpaar hat kann man es auch einfach mittels

    ssh-copy-id root@iphone

    auf das Telefon übertragen. Gibt es eigentlich auch eine Möglichkeit die anderen Sachen zu syncen (Kontakte, Kalender). Ich weiß, selbergooglen.. ;)

  7. Pingback: nob13.de » Say hello to the iphone

  8. Um den nervigen Restart zu umgehen muss nur das SpringBoard neugestartet werden. Geht z.B. so (den kill-Befehl hab ich von hier)

    ssh root@iphone “killall -HUP SpringBoard”

  9. @nob ja, selbergoogeln, oder einfach meinen Blog mehr lesen ;) iPhone, Linux, Evolution, Google und Nuevasync – Oder: Hurra! SVN-Evolution mag Google und mein iPhone ist mit Linux synchron!

    Zum Neustart: Danke für den Tipp, das kann man dann ja zusammen mit dem unmount Befehl in ein Script stecken, und das dann bei Amarok eintragen. Werd den Artikel mal Updaten.

    Alternativ reicht übrigens auch ein Neustart der iPod.app (öffnen und den Home Button gedrückt halten)

  10. Super Tutorial,… vielen Dank.
    Wieso funktioniert das mounten über USB Kabel denn nicht ?
    Sobald dies möglich ist, können wir endlich alle komplett auf iTunes verzichten.
    Hat jemand ne Idee warum amarok 4.0.1 bei KDE 4.2 noch keine Media Devices unterstüzt, vielleicht hab ich die Funktion einfach nicht gefunden.
    Und noch was: Funktioniert bei euch das übertragen von Fotos ?
    Bei mir werden keine gefunden, sind diese in irgend einem Ordner ?

    Fragen über Fragen…

    und @Jan: Ja, es geht ums Prinzip,… das stört mich total an Apple, dass sie einem ihre Software aufzwingen möchten, und arme kleine Linux’er verklagen, weil sie versuchen ihren Hash zu knacken.

  11. Hallo

    Danke für dieses Tutorial! Mein Amarok kann jetzt bestens das iPhone mounten und die Mucke da drauf anzeigen.

    Ich kann auch Musik vom iPhone auf meinem Rechner abspielen. Aber eigentlich brauche ich die umgekehrte Richtung: Musik von der lokalen Festplatte auf den iPhone synchronisieren.

    Wie synchronisiert man Amarok mit dem iPhone?
    Wie gesagt, die Anbindung läuft bestens.

    Grüße, cimodev

  12. Bitte, bitte. Freue mich geholfen zu haben!

    zum synchronisieren: Du wählst ein Lied aus, Rechtsklick -> Auf Media Player kopieren. Dann auf den MediaPlayer Tab gehen und oben beim iPhone auf “übertragen” klicken. Fertig :)

  13. Großartig!

    Jan, du hast heute jemanden sehr glücklich gemacht! :)

  14. passwd funktioniert ab 2.2 übrigens ohne probleme

  15. Das mounten über USB funktioniert mit ifuse von http://matt.colyer.name/projects/iphone-linux/index.php?title=Main_Page.
    Allerdings kann ich nur 5 bis6 Musikstücke kopieren, dann hängt sich das Dateisystem bei mir auf (nur umount hilft). Habt ihr ähnliche Erfahrungen?

  16. Danke für diesen großartigen Tipp!

    Allerdings bekomme ich diese Fehlermeldung beim mount:

    mount: unbekannter Dateisystemtyp „ifuse“

    ging das bei dir? Ne Idee parat?

  17. Ich habe mich an das im README beschriebene Vorgehen gehalten.

    mkdir ~/iphone
    ifuse ~/iphone -s
    ls -l ~/iphone

    umount ~/iphone

    fürs umount brauchte ich zumindest noch zusätzlich “sudo”.

  18. Ich habe das gleiche Problem wie Jan..

    # mount -t fuse /dev/bus/usb/002/005 /mnt/ipod/
    /bin/sh: /dev/bus/usb/002/005: Keine Berechtigung
    # mount -t ifuse /dev/bus/usb/002/005 /mnt/ipod/
    mount: unbekannter Dateisystemtyp »ifuse«
    # ifuse ~/iphone -s
    bash: ifuse: command not found

    keine Chance das irgendwie zum Laufen zu kriegen.. Man sollte vielleicht erwähnen, dass mein iPod NICHT gejailbreaked is. Aber laut der iFuse Website muss er das ja wohl auch nich..

  19. Pingback: iPhone und Linux - (fast) ohne Jailbreak! | virtualpixel.de

  20. so hab jetzt mal ne blöde frage: was muß man machen, wenn man beim ersten mountenvergessen hat das usb kabel einzustöpseln? os neu rauf? linux neu rauf?

    • Kann ich dir gerade nicht sagen. Bin das wochenende nicht zu Hause. Musst du dich bis Sonntag gedulden, oder selber probieren :)

  21. Zeile 4:
    chmod go-w / ~

    Viel Spaß jedem, der diese Zeile als root auf seinem iPhone ausführt…

    Aber wie schreibst du unmittelbar davor: “Zerstörte iPhones sind euer Problem”..

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert