Dies ist eine mobil optimierte Seite, die schnell lädt. Wenn Sie die Seite ohne Optimierung laden möchten, dann klicken Sie auf diesen Text.

Image booten vom USB-Stick

Status
Für weitere Antworten geschlossen.

Nico1987

Freak
Registriert
17. November 2009
Beiträge
229
Reaktionspunkte
314
Punkte
123
Ort
Zuhause
ACHTUNG:
]Ihr solltet wissen was ihr tut, Nachahmung nur für die Empfohlen die verstehen, was hier steht!
Sollte eure Coolstream danach ein Briefbeschwerer sein übernehmen wir keine Haftung.


Um vom USB-Stick booten zu können muss man nicht wirklich viel tun.
Eigentlich wird nicht vom Stick gebootet, aber das Filesystem vom USB-Stick wird als root-Filesystem benutzt.

Zu tun ist das folgende:

1. USB-Stick partitionieren, auf Partition /dev/sda1 ein ext3 Filesystem anlegen
(ich würde übrigens nicht das mkfs.ext3 auf der Coolstream dafür benutzen, das busybox mkfs.ext3 ist bekanntermaßen buggy).

2. Den USB-Stick auf der Coolstream mounten und alles über telnet kopieren:



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


3. eine Datei "/linuxrc" mit folgendem Inhalt anlegen (nicht auf dem Stick sondern im root ( / ) der Coolstream!):


1. #!/bin/sh
2. /bin/echo "***** linuxrc ******"
3. /bin/mkdir -p /tmp/mnt
4. /bin/echo mounting sda1...
5. if /bin/mount -n /dev/sda1 /tmp/mnt; then
6. /bin/test -x /tmp/mnt/sbin/init && exec /sbin/chroot /tmp/mnt /sbin/init
7. /bin/echo "no /sbin/init on sda1"
8. else
9. /bin/echo "mount failed!"
10. fi 11. exec /sbin/init



Das war es schon.

Um nun vom USB-Stick zu booten:


1: Die Coolstream ausschalten
2: PC und Coolstream mit einem Nullmodem Kabel verbinden
3: Putty oder Hyperterminal öffnen
4: Coolstream booten (einschalten
)
5: Beliebige Taste drücken während die Box bootet
6: Jetzt sollte das booten gestoppt sein und ihr habt einen prompt und könnt Befehle eingeben.

Jetzt geben wir:

7:
1.printenv



ein und erhalten eine Ausgabe die wie folgt Aussehen kann:


1. HD1> printenv 2. bootargs=console=ttyRI0 mtdparts=cx2450xflash:512k(U-Boot)ro,4096k(kernel),28160k(systemFS) root=mtd2 rootfstype=jffs2 rw mem=384M 3. bootcmd=bootm 0xF0080000 4. bootdelay=1 5. baudrate=115200 6. ipaddr=192.168.1.101 7. serverip=192.168.1.24 8. netmask=255.255.255.0 9. bootfile="uImage" 10. stdin=serial 11. stdout=serial 12. stderr=serial 13. Environment size: 308/131068 bytes 14. HD1>

8: Von der Ausgabe kopieren wir uns die bootargs damit wir nicht so viel tippen müssen und um Fehler zu vermeiden. Also alles nach bootargs= und fügen am ende init=/linuxrc mit an.
Das ganze sieht dann so aus:
console=ttyRI0 mtdparts=cx2450xflash:512k(U-Boot)ro,4096k(kernel),28160k(systemFS) root=mtd2 rootfstype=jffs2 rw mem=384M init=/linuxrc

9: jetzt geben wir dem u-boot die neuen Argumente mit indem wir:
1. setenv bootargs console=ttyRI0 mtdparts=cx2450xflash:512k(U-Boot)ro,4096k(kernel),28160k(systemFS) root=mtd2 rootfstype=jffs2 rw mem=384M init=/linuxrc




und dann:

9:
1.boot




eingeben.
Jetzt bootet die Coolstream einmalig vom USB Stick.
Wenn ihr dann im / kein linuxrc und dafür lost+found seht, hat es geklappt

Weil die /linuxrc ein fallback hat, macht es auch nichts aus, wenn der stick nicht steckt. Und weil der Kernel ein fallback hat, macht es auch nichts aus, wenn kein /linuxrc da ist. Insofern könnte man das per "saveenv" zum default machen, die Kiste würde sogar nach dem nächsten Image-Update noch booten. Das soll aber jeder machen wie er will.

Quelle=Coolstream*to
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…