Development:NeutrinoHD von USB-Stick booten (veraltet)

Aus TuxBoxWIKI
Version vom 4. Mai 2018, 20:18 Uhr von Dbt (Diskussion | Beiträge) (archiviert)
(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 nutzen, 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 ext2- oder 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 und der Stick müsste 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 auf die vorbereitete Partition und legt die Ordner für Mounts und die virtuellen Dateisysteme an:

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 ******"

#hier USB-Device /dev/sda1...4 angeben, wo das Dateisystem aus dem Flash drauf kopiert wurde
USBDEV=/dev/sda2

/bin/mkdir -p /tmp/mnt
/bin/echo mounting $USBDEV...
if /bin/mount -n $USBDEV /tmp/mnt; then
       /bin/test -x /tmp/mnt/sbin/init && exec /sbin/chroot /tmp/mnt /sbin/init
       /bin/echo "no /sbin/init on $USBDEV"
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 (baud) 115200
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:384k(U-Boot)ro,128k(Splash),4096k(kernel),28160k(systemFS) root=mtd3 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.

Weblinks