Mit Linux auf die iRiver Player der IFP Serie zugreifen.
Die portablen Musikplayer der Firma iRiver sind gerade unter Linux sehr beliebt weil sie neben dem mp3-Format auch das bessere ogg-Format unterstützen. Dieser Artikel beschreibt wie man mit Linux auf den Player zugreifen kann. Ich habe die diversen Programme nur unter Debian/GNU Linux getestet, sie sollten sich aber unter allen Linuxversionen installieren lassen.
Inhalt
- Welche Möglichkeiten gibt es auf den iRiver Player zuzugreifen?
- Vorraussetzungen
- ifp-line: Ein Programm für die Kommandozeile
- iFP GUI: Ein Qt Programm für die iriver Player
- iFP-Gnome: Ein Gnome Programm für die iriver Player
- ifp-linux-filesystem: Den iRiver Player als Dateisystem mounten
- Der iRiver Player als USB Mass Storage Gerät
1. Welche Möglichkeiten gibt es auf den iRiver Player zuzugreifen?
Im Wesentlichen sind zwei Möglichkeiten zu unterscheiden mit denen man auf den iRiver Player zugreifen kann, mit der Standardfirmware oder mit der UMS-Firmware.
Nutzt man die Standardfirmware hat man den Vorteil, das kein Firmawareupdate gemacht werden muss. Ausserdem funktionieren alle Programme unter Linux zur Konfiguration und zum Dateimanagement des Players nur mit der Standardfirmware. Ein Nachteil der Standardfirmware ist allerdings das man auch immer ein Programm benötigt, will man eventuell den iRiver Player an einem anderen PC nutzen benötigt man dafür immer ein extra Programm.
Wird die UMS-Firmware eingesetzt ist es möglich den Player wie eine normale Festplatte zu mounten. Als Nachteil kann man sehen das man den Player, zumindest mit Linux, nicht mehr am PC konfigurieren kann. Weiterhin ist, wie bereits gesagt, zwingend ein upgrade der Firmware notwendig bei dem alle bereits auf dem Player vorhandenen Daten gelöscht werden.
2. Vorraussetzungen
Da der iRiver iFP Player über USB an den Rechner angeschlossen wird, ist ein funktionierendes USB System die Grundvorraussetzung zur Nutzung des Players am Rechner. Es muss also zumindest das Modul für den USB-Hostkontroller geladen sein (bspw. uhci_hcd).
Nach dem einstecken des Players an den USB-Port sollte der Befehl lsusb das Gerät anzeigen.
spielzeug@backdoor:~$ lsusb Bus 001 Device 002: ID 4102:1008 iRiver, Ltd. iFP-800 series mp3/ogg vorbis player Bus 001 Device 001: ID 0000:0000Kann man den iRiver Player in der Liste sehen, können auch die nötigen Programme installiert werden.
3. ifp-line: Ein Programm für die Kommandozeile
ifp-line ist ein Kommandozeilenprogramm mit dem man die wesentlichen Dinge des iriver Players verwalten kann. Es ist mit ifp-line möglich Dateien auf den Player zu laden, eine neue Firmware aufzuspielen, den Batteriestand zu prüfen etc. Eine komplette Liste aller Möglichkeiten zeigt der Aufruf ifp ohne weitere Optionen.
usage: ifp command params commands: ls [directory] df upload localfile ifptarget upload localdir ifpdir put localfile put localdir download ifpfile localtarget download ifpdir localdir get ifpfile get ifpdir rm [-r] file rmdir dir mkdir dir battery typestring firmversion format firmupdate /path/to/FIRMWARE.HEX
Ifp-line ist zumindest bei Debian/unstable dabei und kann mit apt-get install ifp-line installiert werden. Weiterhin sollte auch das Packet pmp-common installiert werden, welches usb-hotplug-scripts für die iRiver Player enthält.
Damit man das Programm auch als regulärer User nutzen kann, müssen die entsprechenden User zur Gruppe plugdev hinzugefügt werden. Das heisst sie werden einfach an die entsprechende Zeile in der /etc/group angefügt. Zu beachten ist der jeweilige Nutzer neu einloggen muss um zur Gruppe zu gehören.
4. iFP GUI: Ein Qt Programm für die iRiver Player
iFP Gui ist ein Qt Programm zur Verwaltung der iriver iFP Player. Neben den Standardaufgaben wie Dateimanagement oder Firmwareupgrade beherrscht dieses Programm auch das Einstellen und Konfigurieren der Radiosender. |
5. iFP-Gnome: Ein Gnome Programm für die iriver Player
Hierbei handelt es sich um ein python Skript welches eine grafische Oberfläche für das ip-line Programm zur Verfügung stellt. Dieses Programm konnte ich leider nicht testen da zur Ausführung des Programms knapp 30 weiter Gnome Packete installiert werden müssten, ich aber kein Gnome verwende. Das ca. 600 Zeilen lange Skript kann man sich unter der URL http://sourceforge.net/projects/ifp-gnome herunterladen.
6. ifp-linux-filesystem: Den iRiver Player als Dateisystem mounten
Bei dem ifp-linux-filesystem handelt es sich um einen Kernelpatch (der Kernel bzw. die Module muss/müssen also neu kompiliert werden), der es ermöglich den iRiver Player wie eine Festplatte zu mounten.Erforderlich sind natürlich Kernelsourcen für den genutzten Kernel und der Patch den man unter http://sourceforge.net/ herunterladen kann. Dann nach fügt man den Patch den Kernelsourcen hinzu und übersetzt die Module und ggf. den Kernel wie unten beschrieben.
backdoor:/usr/src/linux# patch -p1 < /tmp/iriverfs-r0.1.0.1.patch patching file COPYING.iriverfs patching file Documentation/filesystems/iriver.txt patching file fs/Kconfig Hunk #1 succeeded at 339 (offset -63 lines). patching file fs/Makefile Hunk #1 succeeded at 53 (offset 2 lines). patching file fs/iriver/Makefile patching file fs/iriver/ifp.h patching file fs/iriver/ifp_comp.c patching file fs/iriver/ifp_dentry.c patching file fs/iriver/ifp_dentry.h patching file fs/iriver/ifp_os.h patching file fs/iriver/ifp_os_linux.c patching file fs/iriver/ifp_prim.c patching file fs/iriver/ifp_prim.h patching file fs/iriver/ifp_readwrite.c patching file fs/iriver/inode.c patching file fs/iriver/iriverfs.h backdoor:/usr/src/linux# make modules modules_installIm nächsten Schritt kann das Modul mit dem Befehl modprobe iriver geladen und der Player mit mount -t iriver none /mountpoint eingebunden werden. Es ist noch anzumerken das beim ifp-linux-filesystem einige Features zum Zeitpunkt dieses Artikels noch nicht implementiert sind, es ist insbesondere nicht möglich Verzeichnisse oder Dateien umzubennen.
7. Der iRiver Player als USB Mass Storage Gerät
Wie weiter oben bereits gesagt ist es auch möglich den Player so zu betreiben das er sich wie eine normale Festplatte am System anmeldet. Dies hat den Vorteil das man überall, ohne jegliche weitere Software, Dateien auf oder vom Player herunter laden kann. Hierfür ist zwingend ein Firmwareupgrade nötig, nach dem Firmwareupgrade wird keines der hier vorgestellten Programme mehr funktionieren. Es ist also auch nicht mehr möglich unter Linux zur "normalen" Firmeware zurückzukehren!Weiterhin sollte man von den Daten auf dem Player ein Backup machen, da nach dem Firmwareupgrade der Speicher des Players neu formatiert wird!
Vorraussetzung um den Player als USM Gerät zu nutzen ist eins der oben beschriebenen Programme um die Firmware auf den Player zu laden und das Modul usb-storage. Alternativ kann statt des Moduls usb-storage natürlich auch fest in den Linuxkernel einkompiliert werden.
Zunächst ist die Firmware von der iriver Webseite herunterzuladen. Es ist darauf zu achten das es sich um die USM Version handelt.
Die Firmware muss nun mit dem unzip Kommando entpackt werden:
backdoor:/tmp$ unzip ifp890eu-ums129.zip Archive: ifp890eu-ums129.zip inflating: IFP-8XXT.HEXBei der .Hex Datei handelt es sich um die neue Firmeware, diese Datei kann nun auf den Player hochgeladen. Ich habe dafür das ifp-line Programm benutzt. Das Fehler nach dem hochladen ist so richtig, da sich der Player erstens nach dem hochladen ausschaltet und zweitens die Software mit der UMS Firmware nicht mehr funktioniert.
backdoor: /tmp$ ifp firmupdate IFP-8XXT.HEX WARNING: Do you want to firmware update? [y/N]: y 1376256 sent Please wait few minutes... ifp battery: Could not get battery status. ctl8 = control: 03 00 00 00 0f 55 04 ffffff80 . Unable to connect to iFP.Der iriver Player kann nun wieder eingeschaltet werden. Nach dem Einschalten wird der Speicher des Players neu formatiert es erscheint im Display die Anzeige formating xx%.
Schaltet man den Player wieder ein sollte im dmesg von Linux in etwa folge Meldung erscheinen:
usb 1-1: new full speed USB device using uhci_hcd and address 3 scsi0 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 3 usb-storage: waiting for device to settle before scanning Vendor: iriver Model: MassStorage Disc Rev: Type: Direct-Access ANSI SCSI revision: 00 usb-storage: device scan complete SCSI device sda: 2048001 512-byte hdwr sectors (1049 MB) sda: assuming Write Enabled sda: assuming drive cache: write through SCSI device sda: 2048001 512-byte hdwr sectors (1049 MB) sda: assuming Write Enabled sda: assuming drive cache: write through sda: Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0Nun kann man mit dem mount Kommando den Player in das System einfügen. Als root sollte folgeneder Befehl reichen:
mount /dev/sda /mnt/iriver/um den Player als Festplatte zu mounten. Nun können alle Daten mit beliebigen Dateikommandos auf den Player zurückgespielt werden.