Firmware von SD-Karte booten
Aus PandoraWiki
| Diese Seite wurde von docno als Baustelle markiert. Begründung:
Bitte hilf mit diese Seite zu verbessern und entferne diesen Baustein, sobald die beschriebenen Mängel behoben sind. |
Die Pandora kann von einer SD Karte booten. Hier werden alle notwendigen Schritte beschrieben, um eine SD Karte vorzubereiten und Angström von dieser zu starten.
Inhaltsverzeichnis |
Kopie der Firmware besorgen
Die einfachste Möglichkeit ist, sich ein gepacktes Archiv der Firmware herunterzuladen.
- Hier kann man die neuste Version der Firmware von der offizielen OpenPandora Website herunterladen.
- Eine ältere Version der Firmware findet sich hier, für den Fall das mit der neusten Firmware Probleme auftreten oder man das Risiko nicht eingehen möchte.
- Eine noch ältere Version der Firmware lässt sich hier herunterladen.
- Sehr viele ältere Versionen der Firmware liegen im offiziellen Firmware-Archiv.
SD Karte formatieren
Die SD-Karte muss dafür im Format ext2 formatiert werden. Dazu kann man ein Konsolentool der Pandora oder eines Linux allgemein verwenden. Es werden alle Daten auf der SD-Karte GELÖSCHT und durch ein leeres ext2 Dateisystem ersetzt. Wir gehen wie immer in die Konsole und starten:
sudo mkfs.ext2 -L LABELNAME /dev/mmcblk0p1
. Dabei kann /dev/mmcblk0p1 ggf. durch das entsprechende Gerät ausgetauscht werden (hier: linker SD-Schacht der Pandora) und LABELNAME durch den Namen ersetzt werden, den die Karte nach der Formatierung tragen soll. (Der Parameter -L LABELNAME kann auch weggelassen werden.) Falls es zu Fehlern kommt, muss die Karte möglicherweise noch ausgehangen werden:
sudo umount /media/[LABELNAME of SD card]
. Des weiteren bestehen auch Möglichekeiten mittels GUI-Programmen die Formatierung vorzunehmen.
Firmware kopieren und booten
Kopieren
Man ruft nun das Verzeichnis auf (cd), in dem man das heruntergeladene Archiv mit der Firmware gespeichert hat und entpackt das Archiv direkt auf die SD-Karte mit:
sudo tar -xvjf <tarfile>.tar.bz2 -C <SD card>
, wobei <SD card> etwas ist wie /media/mmcblk0p1 (wieder linker SD Schacht der Pandora), /media/disk (etwa unter Ubuntu/Debian) oder /media/LABELNAMEN, wenn man einen solchen gesetzt hat.
boot.txt
Zu guter letzt muss eine Datei namens boot.txt im root-Verzeichnis der SD-Karte abgelegt werden. Diese benötigt U-Boot um das Systemverzeichnis und den Kernel zu finden und letzendlich zu booten. Der folgende Inhalt kann einfach kopiert werden:
setenv bootargs debug root=/dev/mmcblk0p1 rw rootdelay=2 console=ttyS0,115200n8 vram=6272K omapfb.vram=0:3000K
ext2load mmc 0 ${loadaddr} /boot/uImage-2.6.27.46-omap1
bootm ${loadaddr}
Ein andere Möglichkeit für eine boot.txt von der offizielen Homepage ist:
setenv bootargs debug root=/dev/mmcblk0p1 rw rootdelay=2 console=ttyS0,115200n8 vram=6272K omapfb.vram=0:3000K ext2load mmc 0 0x80300000 /boot/uImage-2.6.27.46-omap1 bootm 0x80300000
. Beachte, dass für diese boot.txt die Karte im ext2-Format vorliegen muss. Möchte man nicht von einer ext2 Partition booten gibt es noch die Möglichkeit Zeile 2 gegen
ubi part boot && ubifsmount boot && ubifsload ${loadaddr} uImage && bootm ${loadaddr} && boot
auszutauschen, und U-Boot im internen NAND nach einem Kernel suchen zu lassen.
Von einer SD Karte mit mehreren Partitionen booten
Es besteht auch die Möglichkeit mehrere Partitionen auf der SD Karte anzulegen und von einer dieser Partitionen zu booten. Bsp:
- Partition 1: FAT
- Partition 2: ext2 (hier liegt das rootfs)
- Partition 3: swap
. Das Vorgehen ist nun so, dass die (auto)boot.txt im Oberverzeichnis der ersten Partition abgelegt wird und U-Boot damit zu der Partition geführt wird, von der gebootet werden soll. Dazu dient der Paramter "root", von "setenv" in der boot.txt, um den Ort der root-Partition aufzuzeigen. Außerdem wird der Paramter "mmc x:y" von ext2load genutzt, um den Ort des Kernels (uImage) anzuzeigen. Für das obige Beispiel würde eine (auto)boot.txt im Oberverzeichnis der FAT Partition wie folgt aussehen:
setenv bootargs debug root=/dev/mmcblk0p2 rw rootdelay=2 console=ttyS0,115200n8 vram=6272K omapfb.vram=0:3000K ext2load mmc 0:2 0x80300000 /boot/uImage bootm 0x80300000
. Anmerkung: Der Nummerierung der SD-Karten Schächte beginnt bei 0 (0 ist der Linke Schacht, 1 ist der rechte Schacht) und die Nummerierung der Partitionen beginnt bei 1!
Höchstverscheinlich lässt sich der Kernel (uImage) auch im Oberverzeichnis der FAT Partition ablegen und mit dem Kommando "fatload" statt "ext2load" aufrufen, z.B. wie folgt (Dies wurde nicht getestet!):
fatload mmc 0:1 0x80300000 uimage
.
Booten
Nun startet man die Pandora neu und hält beim einschalten die rechte Schultertaste
gedrückt. Im Menü wählt man "Boot from SD 1" und durchläuft die "First-Boot" Prozedur.
Möchte man nicht jedesmal die Pandora mit Schultertaste starten kann man boot.txt in autoboot.txt umbennen und U-Boot bootet automatisch von der SD-Karte.
Auf den NAND zugreifen
Möchte man nun auf das rootfs auf dem NAND zugreifen, geht man wie folgt vor. Wie immer wird in die Konsole gegangen und folgendes eingegeben:
sudo mkdir /media/nand sudo ubiattach /dev/ubi_ctrl -m 4 sudo mount -t ubifs ubi0:rootfs /path/to/mount/point
. Möchte man dauerhaft, nach jedem Start, Zugriff auf dem NAND haben, lässt sich dies durch ein Shell-Script realisieren, dass bei jedem Start ausgeführt wird. Auf die Realisierung eines solchen Scriptes soll hier zunächst nicht eingegangen werden.


