Linux on iPod Project

Home

Screen Shots

Documentation

Download

Forums

Support & Help

Project Sponsors

FAQ's

Legal

Linux on iPod at SourceForge.

SourceForge.net Logo

Linux iPod Installation Guide

English

Einführung

Das "Linux on iPod" Projekt bietet eine Entwicklungsplattform zur Erstellung von Programmen, die auf dem iPod laufen. Zur Zeit haben wir auch ein einfaches Programm, das die Funktionalität der vorhandenen Apple Firmware nachahmt. Auf längere Zeit hin hoffen wir zu diesem Programm ähnliche Funktionen wie bei der Apple Firmware hinzufügen zu können, auch soll es um Fähigkeiten erweitert werden die die original Apple-Firmware nicht bietet.

Die Installation von Linux auf dem iPod beeinflusst weder die vorhandene Musik noch die aktuelle Konfiguration. Durch den mitinstallierten Bootloader kann während eines Neustarts frei gewählt werden ob die Apple oder die Linux Firmware starten soll.

Dieses Dokument beschreibt die Installation auf einem Unix ähnlichem Betriebssystem (als Beispiel Linux oder Mac OS X). Hierzu werden die Kernel Version 2.4.24-ipod0 und das 040403 Rootdateisystem verwandt.

Jedes Feedback zu diesem Dokument wird sehr gerne entgegengenommen.

Übersicht

Folgende Abschnitte werden in diesem Dokument abgedeckt.

  • FireWire/Einrichten der Verbindung
  • Linux Installation
    1. Lokalisieren Ihres iPods
    2. Sicherung (Backup)
    3. Partitionierung
    4. Kernel Installation
    5. Installation des Rootdateisystems
    6. Weitere Hinweise
    7. Upgrade (aktualisieren der Firmware)
    8. Deinstallieren von Linux (auf dem iPod)
  • Mac OS X Installation
    1. Lokalisieren Ihres iPods
    2. Sicherung (Backup)
    3. Kernel Installation
    4. Installation des Rootdateisystems
    5. Weitere Hinweise
    6. Upgrade (aktualisieren der Firmware)
    7. Deinstallieren von Linux (auf dem iPod)
  • Windows Installation

FireWire/Einrichten der Verbindung

Um Linux auf den iPod zu installieren, müssen Sie zuerst das Betriebssystem konfiguriert haben. Läuft Mac OS X auf dem Rechner, ist eigentlich nichts zu tun, läuft aber Linux auf dem Rechner (besonders wenn dies das erste mal ist) muss man wissen, ob USB/FireWire korrekt für die Benutzung mit dem iPod eingestellt ist.

Zum konfigurieren von USB/FireWire sehen Sie bitte die Dokumentation zu ihrem Betriebssystems ein.

Wenn das Betriebssystem vollständig konfiguriert ist, muss festgestellt werden, wie das Betriebssystem den iPod identifiziert.

Dafür müssen Sie den iPod an den Rechner anschließen und den "Disk-Mode" beim iPod aktivieren. Normalerweise sollte dies automatisch funktionieren, wenn die Verbindung zum Betriebssystem aufgebaut wird. Dennoch kann man den "Disk-Mode" während des Neustartens eines iPod's auch manuell aufrufen: Nach einem iPod Reset (durch 5 sekündiges festhalten der Menü und Play/Pause Taste) müssen Sie, während das Apple Logo zu sehen ist, die Tasten "Schneller Vorlauf" und "Rückspluen" gleichzeitig gedrückt halten.

Sobald der "Disk-Mode" aktiviert ist, sollte die Nachricht "Bitte nicht trennen." erscheinen. Nun sollten Sie die Betriebssystemkonfiguration prüfen um zu sehen, wie der iPod konfiguriert ist.

Um mit der Installation fortzufahren, lesen Sie den zu ihrem Betriebssystem passenden Abschnitt.

Linux Installation

Hier wird beschrieben, wie die Installation von Linux on iPod auf einem Linux basierenden Computer stattfindet. Es wird angenommen, dass eine Windows Version des iPods(also formatiert mit FAT32) verwendet wird.

Anmerkung: Bei Linux ist es wichtig Rechte des Root-Users (Systemadministrator) zu besitzen, um Linux on iPod zu installieren.

Lokalisieren Ihres iPods

Unter Linux sollte man die Datei "/proc/scsi/scsi" nach einem Eintrag, in dem der Vendor "Apple" und das Modell "iPod" ist, durchsuchen. Als Beispiel:

# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: Apple Model: iPod Rev: 1.50
Type: Direct-Access ANSI SCSI revision: 02

Der scsi0 Teil gibt an, ob der iPod das erste SCSI Gerät ist, also wird es /dev/sda sein. Sollte es aber scsi1 sein, dann würde /dev/sdb benutzt werden. Die folgenden Beispiel-Befehle werden sda als Gerät für den iPod benutzen. Eventuell müssen sie dies mit der korrekten Bezeichnung für Ihre Konfiguration ersetzen.

Sicherung (Backup)

Bevor Sie die Partitions-Informationen aktualisieren und die Firmware ersetzen werden, wird eine Sicherung dieser Daten erstellt. Die erste Sicherung ist eine einfache Kopie des MBR ("master boot record" in etwa Hauptstartdatensatz), welcher die Partitionstabelle der Festplatte enthält. Die zweite Sicherung ist eine komplette Sicherung der Betriebssystems Partition auf dem iPod und schließt das Apple iPod Betriebssystem (die Datei ist ca. 40MB groß und kann nach der Installation komprimiert werden) ein.

# dd if=/dev/sda of=ipod_bootsec_backup.bin count=1
# dd if=/dev/sda1 of=ipod_fw_backup.bin

Sollte eine Wiederherstellung aus irgendwelchen Gründen notwendig sein, so werden folgende Befehle benutzt:

# dd if=ipod_mbr_backup.bin of=/dev/sda
# dd if=ipod_fw_backup.bin of=/dev/sda1

Anmerkung: Wenn Sie die Apple Firmware aktualisieren möchten, sollten Sie erst die iPod Betriebssystem Partition wiederherstellen.

Durch die Benutzung des Apple Wiederherstellungsprogramms ist es auch möglich, den iPod auf den Fabrikzustand zurückzusetzen. Dies wird den iPod komplett zurücksetzen(unwiderruflich), nicht nur das Betriebssystem, sondern auch alle persönlichen Einstellungen und die Musik werden gelöscht.

Partitionierung

Jetzt, da die Sicherungen erstellt wurden, wird eine neue Partition auf dem iPod für das Rootdateisystem angelegt. Dies wird auf der Windows Version des iPods benötigt, weil Linux die FAT formatierte Partition nicht als Rootdateisystem verwenden kann.

Die folgenden Befehle beschreiben wie man mit "fdisk" die vorhandene Firmware Partition löscht und eine neue, kleinere für die Firmware erstellt. Der übrigbleibende Platz wird dann zum erstellen einer für Linux formatierten Partition benutzt.

Anmerkung: Die folgende Ausgabe (output) ist für einen 20GB iPod ausgelegt. Also wird die Ausgabe bei anderen iPodgrößen variieren. Dennoch bleiben die Werte, die eingegeben werden müssen, die gleichen.

  1. Zuerst fdisk starten:
    # fdisk /dev/sda
    The number of cylinders for this disk is set to 2431.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:
    1) software that runs at boot time (e.g., old versions of LILO)
    2) booting and partitioning software from other OSs
    (e.g., DOS FDISK, OS/2 FDISK)

    Command (m for help):
  2. Löschen der Firmware Partition:
    Command (m for help): d
    Partition number (1-4): 1
  3. Erstellen einer neuen ersten Partition mit der Länge von einem Zylinder:
    Command (m for help): n
    Command action
    e extended
    p primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-2431, default 1): 1
    Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): 1
  4. Aktivieren der ersten Partition:
    Command (m for help): a
    Partition number (1-4): 1
  5. Setzen der Partition auf den Typ "Leer":
    Command (m for help): t
    Partition number (1-4): 1
    Hex code (type L to list codes): 0
  6. Erstellen der 3. Primärpartition vom 2. zum 5. Zylinder:
    Command (m for help): n
    Command action
    e extended
    p primary partition (1-4)
    p
    Partition number (1-4): 3
    First cylinder (1-2431, default 1): 2
    Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): 5
  7. Sie sollten die Änderungen überprüfen. Anmerkung: Dies ist für einen 20GB iPod, die sda2 Partitionsgröße wird variieren.
    Command (m for help): p
    Disk /dev/sda: 20.0 GB, 20000268288 bytes
    255 heads, 63 sectors/track, 2431 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot    Start       End    Blocks   Id  System
    /dev/sda1   *         1         1      8001    0  Empty
    /dev/sda2   *         6      2431  19486845    b  Win95 FAT32
    /dev/sda3             2         5     32130   83  Linux
    
    Partition table entries are not in disk order
    
  8. Wenn alles gut aussieht, schreiben Sie die Partitionstabelle.
    Command (m for help): w
  9. "fdisk" wird nun beendet und Sie können das neue Dateisystem erstellen.
    # mke2fs -j /dev/sda3
  10. Setzen des maximalen "mount count" auf "never":
    # tune2fs -c 0 /dev/sda3
    tune2fs 1.34 (25-Jul-2003)
    Setting maximal mount count to -1

Kernel Installation

Zum Installieren des Kernels wird der iPod Boot Loader, des iPod Linux Kernels und die Sicherung des iPod Betriebssystems (weiter oben erstellt in dem Sicherungsprozess) benötigt.

Zuerst müssen Sie das "ipodloader" und "iPod Linux Kernel" Archiv in ein Arbeitsverzeichnis extrahieren und es auf etwaige "last minute" release notes prüfen. Im unterem Beispiel sind das make_fw Tool und das loader.bin Image von der ipodloader Distribution und die Version des iPod Linux Kernel ist uclinux-2.4.24-ipod0.bin.

  1. Extrahieren Sie die Apple Firmware von dem Sicherungsimage.
    # make_fw -o apple_fw.bin -e 0 ipod_fw_backup.bin
  2. Erstellen eines neuen Images einschließlich des Linux und der Apple Firmware:
    # make_fw -o my_sw.bin -l uclinux-2.4.24-ipod1.bin -i apple_fw.bin loader.bin
  3. Kopieren Sie das Image(ca. 4-5MB groß) zurück auf den iPod.
    # dd if=my_sw.bin of=/dev/sda1
  4. Kopieren der Kernel Module auf den iPod (Anmerkung: das Verzeichnis /mnt/ipod muss vorhanden sein, darf aber nicht benutzt sein). Das lib Verzeichnis unten gehört zum Verzeichnis des Kernelreleases (Version) und enthält die Module.
    # mount -t ext2 /dev/sda3 /mnt/tmp
    # cp -r lib /mnt/tmp # umount /mnt/tmp

Userland Installation

Das iPod Linux Userland enthält die Betriebssystem Tools und Bibliotheken (Library) (einschließlich der podzilla und den MP3 programme). Dieses Archiv muss auf das Rootdateisystem des iPods installiert werden. Das Rootdateisystem ist oben während des Partitionierungsschrittes erstellt worden.

  1. Die iPod root-Partition mounten:
    # mount -t ext2 /dev/sda3 /mnt/tmp
  2. Extrahieren des root-Dateisystems auf "root":
    # cd /mnt/tmp
    # tar zxf /tmp/ipod_fs_040403.tar.gz
  3. Aktualisieren des root-Dateisystem mit den letzten Kernel-Modulen.
    # tar zxf /tmp/uclinux-2.4.24-ipod0.tar.gz lib
  4. Unmounten der iPod root-Partition
    # umount /mnt/tmp

Weitere Hinweise

Die aktuelle Version enthält ein paar Fehler(Bugs), die durch das Ausführen folgender Befehle gelöst werden können.

  1. Mounten Sie Ihre iPod root-Partition.
    # mount -t ext2 /dev/sda3 /mnt/tmp
  2. Verbesserungen für /etc/rc. Ersetzen von /mnt/tmp/etc/rc mit den folgenden Befehlen:
    hostname ipod
    mount -t proc proc /proc
    ln -s /dev/pty/m0 /dev/ptyp0
    ln -s /dev/pty/m1 /dev/ptyp1
    ln -s /dev/ide/host0/bus0/target0/lun0/disc /dev/hda
    ln -s /dev/ide/host0/bus0/target0/lun0/part2 /dev/hda2
    ln -s /dev/ide/host0/bus0/target0/lun0/part3 /dev/hda3
    ln -s /dev/tts/1 /dev/ttyS1
    mknod /dev/ttyp0 c 3 0
    mknod /dev/ttyp1 c 3 0
    modprobe tsb43aa82
    modprobe eth1394
    ifconfig eth0 192.168.222.2 mtu 170
    mount -t vfat -o ro /dev/hda2 /mnt
    mount -o remount,rw /dev/hda3 /
    hdparm -S 3 /dev/hda
  3. Verbesserungen für /etc/inittab. Ersetzen von /mnt/tmp/etc/inittab mit den folgenden Befehlen:
    inet:unknown:/bin/inetd
    pz:unknown:/bin/podzilla
  4. Unmounten Sie die iPod root-Partition.
    # umount /mnt/tmp
  5. Sie müssen den iPod auswerfen, um den FireWire Treiber zu entladen(unloaden). Sobald der iPod im Ungeladenen(unloaded) Zustand ist ("iPod kann getrennt werden." steht dann im Display), muss er neu gestartet werden, falls er dies nicht von allein tut.
    # modprobe -r sbp2
  6. Nun müssen Sie den iPod neu starten. Sollte der iPod nicht automatisch neu starten, halten Sie die Tasten "Menu" und "Play/Pause" für ca. 5 Sekunden gedrückt.

Nach der Konfiguration wird automatisch Linux gestartet. Sie sollten das Tux-Logo und dann die normale Linux-Bootkonsole sehen. Wenn das Betriebssystem gestartet ist, wird das Programm "podzilla" starten. Diese "work-in-progress" Oberfläche ahmt das Interface der Apple Firmware nach.

Wenn Sie vom Linux Betriebssystem wieder auf die normale Apple Firmware Oberfläche wechseln möchten, starten Sie Ihren iPod neu (führen sie einen Reset durch, wie oben beschrieben), und halten sie, sobald das Apple Logo erscheint, die "Rückspluen" Taste durchgehend gedrückt. Ein Tux-Logo wird erscheinen, dann wird die normale Apple Firmware wie gewohnt starten.

Upgrade (aktualisieren der Linux Firmware)

Zum upgrade auf eine neue Kernel-Version müssen Sie nur die Schritte im Abschnitt Kernel Installation wiederholen.

Zum upgrade auf eine neue Version der Benutzertools müssen Sie nur den Abschnitt Userland Installation wiederholen.

Zum Installieren einer neuen "podzilla" Version müssen Sie einfach die neue Binary (also, das neue Podzilla-Programm) auf den iPod kopieren:

# mount -t ext2 /dev/sda3 /mnt/tmp
# cp podzilla /mnt/tmp/sbin
# umount /mnt/tmp

Deinstallieren von Linux (auf dem iPod)

Um Linux komplett von Ihrem iPod zu entfernen sollten Sie die originale Firmware Partition und den MBR mithilfe Ihrer Sicherungskopien wieder herstellen.

# dd if=ipod_mbr_backup.bin of=/dev/sda
# dd if=ipod_fw_backup.bin of=/dev/sda1

Mac OS X Installation

Dieser Abschnitt der Anleitung beschreibt wie Sie das Linux auf einem iPod unter der Benutzung von Mac OS X installieren. Um diesen Teil der Anleitung zu benutzen, muss Ihr iPod auf HFS+ formatiert sein (das ist der Standard für die Mac-iPods).

Lokalisieren Ihres iPods

Unter OS X sollte Ihr iPod automatisch mounten, wenn Sie den iPod an Ihren Mac anschließen. Zum Feststellen des Laufwerknamens:

Starten Sie das Terminal Programm und führen Sie "mount" aus.

# mount
/dev/disk1s3 on /Volumes/iPod (nodev, nosuid, mounted by leachbj)

Der /dev/disk1s3 Teil gibt an, dass der iPod das erste SCSI Gerät ist und auch als /dev/disk1 sichtbar wird, wenn Sie auf Ihrem System /dev/disk2s3 sehen, dann wird /dev/disk2 als Device benutzt. In dem Beispiel oben ist der iPod gemountet als /Volumes/iPod. Der iPod Teil bezeichnet hier den Namen ihres iPods.

Die folgenden Beispielbefehle werden disk1 als Device für den iPod und /Volumes/iPod für den "mount point"(in diesem Ordner werden alle Objekte angezeigt, die auf der iPod vorhanden sind) benutzen. Ersetzen Sie diese Werte mit den korrekten Werten ihrer Konfiguration, falls notwendig.

Sicherung (Backup)

Die Sicherung ist eine komplette Sicherung der Betriebssystems-Partition auf dem iPod und schließt das Apple iPod Betriebssystem (die Datei ist ca. 40MB groß und kann nach der Installation komprimiert werden) ein.

# dd if=/dev/disk1s2 of=ipod_fw_backup.bin

Sollte eine Wiederherstellung aus irgendwelchen Gründen notwendig sein, so werden folgende Befehle benutzt:

# dd if=ipod_fw_backup.bin of=/dev/disk1s2

Anmerkung: Wenn Sie die Apple Firmware aktualisieren möchten, sollten Sie erst die iPod Betriebssystem Partition wiederherstellen.

Durch die Benutzung des Apple Wiederherstellungsprogramms ist es auch möglich, den iPod auf den Fabrikzustand zurückzusetzen. Dies wird den iPod komplett zurücksetzen(unwiderruflich), nicht nur das Betriebssystem, sondern auch alle persönlichen Einstellungen und die Musik werden gelöscht.

Kernel Installation

Zum Installieren des Kernels wird der iPod Boot Loader, des iPod Linux Kernels und die Sicherung des iPod Betriebssystems (weiter oben erstellt in dem Sicherungsprozess) benötigt.

Zuerst müssen Sie das "ipodloader" und "iPod Linux Kernel" Archiv in ein Arbeitsverzeichnis extrahieren und es auf etwaige "last minute" release notes prüfen. Im unterem Beispiel sind das make_fw Tool und das loader.bin Image von der ipodloader Distribution und die Version des iPod Linux Kernel ist uclinux-2.4.24-ipod0.bin.

  1. Extrahieren Sie die Apple Firmware von dem Sicherungsimage.
    # make_fw -o apple_fw.bin -e 0 ipod_fw_backup.bin
  2. Erstellen eines neuen Images einschließlich des Linux und der Apple Firmware:
    # make_fw -o my_sw.bin -l uclinux-2.4.24-ipod1.bin -i apple_fw.bin loader.bin
  3. Kopieren des Images(ca. 4-5MB groß) zurück auf den iPod.
    # dd if=my_sw.bin of=/dev/disk1s2
  4. Kopieren der Kernel Module auf den iPod. Das lib Verzeichnis unten gehört zum Verzeichnis des Kernelreleases (Version) und enthält die Module.
    # cp -r lib /Volumes/iPod

Userland Installation

Das iPod Linux Userland enthält die Betriebssystem Tools und Bibliotheken (Library) (einschließlich der podzilla und den MP3 programme). Dieses Archiv muss auf das Rootdateisystem des iPods installiert werden.

Extrahieren des Rootdateisystems auf "root":

# cd /Volumes/iPod
# tar zxf /tmp/ipod_fs_040403.tar.gz
# tar zxf /tmp/uclinux-2.4.24-ipod1.tar.gz
  • Aktualisieren des root-Dateisystem mit den letzten Kernel-Modulen.
    # tar zxf /tmp/ipod_fs_040403.tar.gz lib

    Weitere Hinweise

    Die aktuelle Version enthält ein paar Fehler (Bugs), die durch das Ausführen folgender Befehle gelöst werden können.

    1. Verbesserungen für /etc/rc. Ersetzen von /Volumes/iPod/etc/rc mit den folgenden Befehlen:
      hostname ipod
      mount -t proc proc /proc
      ln -s /dev/pty/m0 /dev/ptyp0
      ln -s /dev/pty/m1 /dev/ptyp1
      ln -s /dev/ide/host0/bus0/target0/lun0/disc /dev/hda
      ln -s /dev/ide/host0/bus0/target0/lun0/part3 /dev/hda3
      ln -s /dev/tts/1 /dev/ttyS1
      mknod /dev/ttyp0 c 3 0
      mknod /dev/ttyp1 c 3 0
      modprobe tsb43aa82
      modprobe eth1394
      ifconfig eth0 192.168.222.2 mtu 170
      mount -o remount,rw /dev/hda3 /
      hdparm -S 3 /dev/hda
    2. Verbesserungen für /etc/inittab. Ersetzen von /mnt/tmp/etc/inittab mit den folgenden Befehlen:
      inet:unknown:/bin/inetd
      pz:unknown:/bin/podzilla
    3. Sie müssen den iPod auswerfen, um den FireWire Treiber zu entladen(unloaden). Sobald der iPod im Ungeladenen(unloaded) Zustand ist ("iPod kann getrennt werden." steht dann im Display), muss er neu gestartet werden, falls er dies nicht von allein tut.
    4. Nun müssen Sie den iPod neu starten. Sollte der iPod nicht automatisch neu starten, halten Sie die Tasten "Menu" und "Play/Pause" für ca. 5 Sekunden gedrückt.

    Nach der Konfiguration wird automatisch Linux gestartet. Sie sollten das Tux-Logo und dann die normale Linux-Bootkonsole sehen. Wenn das Betriebssystem gestartet ist, wird das Programm "podzilla" starten. Diese "work-in-progress" Oberfläche ahmt das Interface der Apple Firmware nach.

    Wenn Sie vom Linux Betriebssystem wieder auf die normale Apple Firmware Oberfläche wechseln möchten, starten Sie Ihren iPod neu (führen sie einen Reset durch, wie oben beschrieben), und halten sie, sobald das Apple Logo erscheint, die "Rückspluen" Taste durchgehend gedrückt. Ein Tux-Logo wird erscheinen, dann wird die normale Apple Firmware wie gewohnt starten.

    Upgrade (aktualisieren der Linux Firmware)

    Zum upgrade auf eine neue Kernel-Version müssen Sie nur die Schritte im Abschnitt Kernel Installation wiederholen.

    Zum upgrade auf eine neue Version der Benutzertools müssen Sie nur den Abschnitt Userland Installation wiederholen.

    Zum Installieren einer neuen "podzilla" Version müssen Sie einfach die neue Binary (also, das neue Podzilla-Programm) auf den iPod kopieren:

    # cp podzilla /Volumes/iPod/sbin
    # chmod 777 /Volumes/iPod/sbin/podzilla

    Deinstallieren von Linux (auf dem iPod)

    Um Linux komplett von Ihrem iPod zu entfernen sollten Sie die originale Firmware Partition von Ihren Sicherungskopien wieder herstellen.

    # dd if=ipod_fw_backup.bin of=/dev/disk1s2

    Windows Installation

    Für die Installation unter Windows schauen Sie bitte beim ipodlinuxinst Projekt nach. [an error occurred while processing this directive]