Development:NeutrinoHD von USB-Stick booten (veraltet)

Aus TuxBoxWIKI
Version vom 18. September 2010, 23:37 Uhr von Dbt (Diskussion | Beiträge) (Die Seite wurde neu angelegt: Category:Register Category:Linux Category:Development Category:Howto Für Coolstream-Geräte besteht die Möglichkeit, ohne direkt den Flash zu bes...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche


Für Coolstream-Geräte besteht die Möglichkeit, ohne direkt den Flash zu beschreiben auch von einem USB-Stick zu booten. Das funktioniert mit Hilfe eines enstprechenden Sticks welcher das Dateisystem des Flashs beinhaltet und einem Terminalprogramm wie z.B. Putty. Hierfür sind folgende Schritte notwendig:

Stop hand.png HINWEIS: Diese Prozedur wurde an der Neo erfolgreich getestet, aber man sollte schon wissen was man tut und eine Garantie, dass es bei jedem funktioniert kann nicht gegeben werden.

USB-Stick vorbereiten

Dieser muss eine ext3-Partition enthalten. Am besten /dev/sda1 daür verwenden und vorzugsweise am PC erstellen. Den Stick an die CS stecken. Die Frontbuchse sollte funktionieren. Der Stick sollte dann auch automatisch erkannt und nach /tmp/sda1 eingehangen worden sein. Falls nicht, dann manuell mounten. Anschließend kann man sich per Telnet auf der Box anmelden und kopiert den benötigen Flashinhalt in diese Partition:

cd /tmp/sda1
cp -a /bin /dev /etc /lib /media /root /sbin /share /usr /var ./
mkdir mnt proc sys tmp

Init-Script für U-Boot erstellen

Jetzt ein Script namens linuxrc im Rootverzeichnis der Box (nicht im Stick!) mit diesem Inhalt erstellen.

#!/bin/sh
/bin/echo "***** linuxrc ******"
/bin/mkdir -p /tmp/mnt
/bin/echo mounting sda1...
if /bin/mount -n /dev/sda1 /tmp/mnt; then
       /bin/test -x /tmp/mnt/sbin/init && exec /sbin/chroot /tmp/mnt /sbin/init
       /bin/echo "no /sbin/init on sda1"
else
       /bin/echo "mount failed!"
fi
exec /sbin/init

Darauf achten, dass das Script Unix-konform und ausführbar ist!

Booten

Jetzt öffnet man das Terminalprogramm. Die Box muss natürlich am COM1 per Nullmodemkabel hängen. Die Einstellungen im Terminalprogramm sollten so aussehen:

Speed (boud) 115000
Data bits 8
Stop bits 1
Parity none
Flow control XON/XOFF

Das Terminalprogram starten und die Box rebooten. Dafür im Neutrino-Hauptmenü Neustart wählen. Im Terminalprogramm dann den Bootvorgang bei dieser Anfrage:

Hit any key to stop autoboot: 

mit beliebiger Taste anhalten. Das geht womöglich sehr schnell, also den Moment gut abpassen. Klappt das, sollte diese Eingabeaufforderung erscheinen:

Eingabeaufforderung U-Boot, Ansicht von Putty

Nun noch diese Befehle eingeben:

HDx> setenv bootargs console=ttyRI0 mtdparts=cx2450xflash:512k(U-Boot)ro,4096k(kernel),28160k(systemFS) root=mtd2 rootfstype=jffs2 rw mem=384M init=/linuxrc
HDx> boot

Die Box sollte nun vom Stick booten. Um das zu kontrollieren, kann man im Filesystem nachschauen ob /linuxrc fehlt und /lost+found vorhanden ist. Ist das der Fall, hats geklappt.