www.pandora-power.net

Das Open Pandora Root-File-System

Hier wird beschrieben, wie man unter Linux eine bootfähige SD-Karte für die Pandora erstellt.

Voraussetzungen:

Eine Fat32-formatierte SD-Karte, ein Linux-System, einen Kartenleser und das Root-File-System vom Open Pandora Team.

Ein grober Überblick:

Die SD-Karte sollte Klasse 4 oder größer sein, damit ein schnelles Booten und Schreiben während des Betriebs möglich ist. Wie groß sie sein soll hängt eigentlich nur vom verfügbaren Budget ab. Die Mindestgröße beträgt 2GB.

Der SD-Kartenleser sollte eine schnelle Verbindung (USB 2.0) zur Verfügung stellen.

Das Linux-Sytem kann ein eigens installierter PC sein, ein von der CD gebootetes Live-System (zb Knoppix) oder ein virtueller PC unter Windows.

Das Root-File-System bekommt man von openpandora.org.

Zuerst muss die SD-Karte mit dem Linux-Datei-System ext2 formatiert werden, dann die tar-Datei darauf entpackt und schließlich eine Text-Datei mit den Boot-Informationen kopiert werden.

Klingt doch simpel, wo ist der Haken ?

Was mich am längsten beschäftigt hat, waren die Schreibfehler, die während des Entpackens der tar-Datei entstanden sind.

Die boot.txt-Datei mit den richtigen Parametern zu finden, war auch nicht leicht - aber in der Community wurde ich schließlich fündig. Weiter unten ist der Link zum Download.

Die Rettung war für mich der SD-Karten-Leser-Modus der Pandora. Nein, kein Fanboy-Märchen ;-).

Was ich mit vielen Tests und diversen Karten bzw. Karten-Lesern nicht geschafft habe, gelang mir mit der Pandora als SD-Karten-Leser/Schreiber auf Anhieb: eine fehlerlos erstellte bootfähige SD-Karte für die Pandora.

Deswegen gehe ich in meiner Anleitung so und nicht anders vor. Es gibt sicher noch andere Methoden - diese aber ist für mich fehlerfrei reproduzierbar.

Root-Filesystem in Linux entpacken:

Eine gewisse Erfahrung mit Linux setze ich voraus. So zum Beispiel den Umgang mit dem Midnight-Commander "mc". Ein Norten-Commander-Klon, dessen simple und intuitive Oberfläche mich seit DOS-Zeiten begleitet.

Hat man das root-fs heruntergeladen, so startet man eine shell im Terminal und ruft mit "sudo mc" (root-Rechte benötigt man, da root Eigentümer der meisten Verzeichnisse auf der boot-disk ist) den Midnight-Commander auf.

Man klickt (oder navigiert die Markierung und drückt [Enter]) auf die bz2-Datei, um sie wie ein Verzeichnis zu öffnen.

Dann nochmal die tar-Datei öffnen und man sieht das root-Verzeichnis der künftigen Boot-SD-Karte.

Sollte das Öffnen der bz2-Datei mit "mc" nicht funktionieren, dann müsste dieser Schritt mit einem anderen Programm erfolgen. Ich habe dies bereits unter Windows durchgeführt, da ich einen virtuellen Linux-PC damit betreibe.

Alle Dateien bzw. Verzeichnisse mit "mc" aus dem tar-File in ein Verzeichnis kopieren (die Attribute und Rechte müssen erhalten bleiben) - fertig ist das Entpacken des Root-FS.

SD-Karte partinionieren und formatieren:

Vorausgesetzt wird, dass die Pandora in den SD-Karten-Leser-Modus versetzt und mit dem PC verbunden wurde, die formatierte SD-Karte wurde ausgewählt und vom PC-Linux-System automatisch erkannt und gemounted worden ist.

So öffnet man eine shell im Terminal und führt alle folgenden Befehle als root aus: "sudo -s".

! Die folgenden kursiven Texte sind Ausgaben der Console, fett sind die Befehle und Eingaben, die zu tätigen sind. Kommentar gibts darunter !

---------------------------------------------------------------------

mount

[...]
/dev/sdb1 on /media/disk type vfat (rw, nosuid, nodev, uhelper=hal, uid=500, shortname=winnt)

[...]

--------------------------------------------------------------------

Dies dient zur Ermittlung der erkannten SD-Karte, in diesem Falle /dev/sdb1 . [...] meint eine lange Liste, die ich hier nicht wiedergeben möchte.

--------------------------------------------------------------------

umount /dev/sdb1

fdisk /dev/sdb1

---------------------------------------------------------------------

Die SD-Karte wird freigegeben, damit sie mit fdisk partitioniert werden kann. Voraussetzung für das Formatieren mit ext2 ist eine Linux-Partition auf der SD-Karte.

---------------------------------------------------------------------
Command (m for help): n
Command action
e extended
p primary partition (1-4)


p
Partition number (1-4): 1
First cylinder (1-951, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-951, default 951): 951

---------------------------------------------------------------------

Mit "n" wird eine neue Linux-Partition angelegt. Sie soll primär sein und die gesamte Kapazität der SD-Karte (in meinem Falle eine 2GB-Karte) ausnützen.

---------------------------------------------------------------------

Command (m for help): a
Partition number (1-4):
1

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

--------------------------------------------------------------------

Die partition wird mit "a" aktiviert und "1" gibt die Partitionsnummer an. Mit "w" werden die Änderungen auf die SD-Karte geschrieben.

--------------------------------------------------------------------

mke2fs /dev/sdb1

mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
120000 inodes, 479790 blocks
23989 blocks (5.00%) reserved for the super user

[...]

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override

---------------------------------------------------------------------

Die Formatierung wird mit "mke2fs" erledigt. Nun sollte die SD-Karte ein Linux-FS enthalten. Also mounten wir sie in ein Verzeichnis (in meinem Falle "/media").

---------------------------------------------------------------------

mount /dev/sdb1 /media

mc

---------------------------------------------------------------------

Wenn man "mc" startet und die SD-Karte ansieht, sollte dort das Verzeichnis "lost+found" sichtbar sein. Ein Anhaltspunkt, dass alles geklappt hat.

Das Root-Dateisystem auf die SD-Karte kopieren:

Also auf der einen Seite die SD-Karte und auf der anderen das Verzeichnis mit dem Root-FS, kann man die Verzeichnisse mit [INS] oder Maus markieren und auf die SD-Karte kopieren (Taste [F5]).

Zuerst alles bis zum Verzeichnis /usr (darin sind die meisten Dateien) markieren und kopieren.

Wenn der Kopiervorgang beendet ist, sieht man an der grünen LED, dass immer noch auf die Karte geschrieben wird. Wenn die Aktivität aufhört, mit dem Befehl "sync" (gleich aus der Kommandozeile des mc) sicherstellen, dass alle Daten auf das Filesystem geschrieben wurden.

Und da zeichnet sich die Pandora aus: keine Fehler. Bei anderen Kartenlesern musste ich am Schluss feststellen, dass das Filesystem korrupt war und ganze Verzeichnisse fehlten.

Hier mal der mc in seiner Schlichtheit. Die restlichen Verzeichnisse und die "linuxrc"-Datei kopieren. Wieder mit "sync" abschließen.

Schließlich die "boot.txt"-Datei ebenfalls ins root-Verzeichnis kopieren. Wer automatisch von der SD-Karte booten möchte, muss die Datei in "autoboot.txt" umbenennen.

Zum Abschluss Datei-System überprüfen:

---------------------------------------------------------------------

umount /dev/sdb1

e2fsck -f /dev/sdb1

e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb1: 42265/120000 files (0.1% non-contiguous), 181355/479790 blocks

---------------------------------------------------------------------

Alles Ok. Die SD-Karte gleich in der Pandora lassen, den Karten-Modus verlassen und die Pandora ausschalten.

Die Pandora mit der SD-Karte booten:

Wer die Datei "autoboot.txt" auf die Karte gespielt hat, kann die Pandora einfach einschalten. Wer nur hin und wieder booten möchte und daher die "boot.txt"-Datei verwendet, muss beim Starten den rechten Shoulder-Button (R-Taste auf der Rückseite der Pandora) drücken und gleichzeitig den Ein-Schalter betätigen, bis das Bootmenü erscheint. Danach kann man die hintere R-Taste loslassen.

Mit dem linken D-Pad kann man den Menü-Punkt auswählen:

> boot from SD1:1

Zum Starten rechts den "B"-Button der Spiele-Buttons betätigen.

Naja und nach längerer Zeit wird, wenn alles gut gegangen ist, der Installationsassistent sichtbar.

Hotfix-Updates und Codecs installieren sich ebenfalls auf die SD-Karte, wenn man davon gebootet hat.

Legt man zusätzlich ein Verzeichnis /pandora/apps an und speichert darin PND-Packete, werden auch die erkannt und am Desktop angezeigt. Einziger Nachteil: Die SD-Karte im anderen Schacht wird als root gemounted und kann daher nur mit "sudo" beschrieben werden.

Keine Speichersorgen mehr - und je nach Geschmack kann man mehrere Systeme für verschiedene Zwecke verwenden.

Hinweis: Selbst mit der "autoboot.txt"-Datei gelingt bei mir nicht immer das Booten von der SD-Karte - es wird das Pandora-Logo am Bildschirm angezeigt und dann tut sich nichts mehr.

Abhilfe: Reset/Neustart mit Pandora-Button und Ein-Schalter und der Bootvorgang beginnt.

zurück zur Open Pandora Praxis

zurück zu OpenPandora Anleitungen

© headcrash 2010