Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenloses um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereiche, welche für Gäste verwehrt bleiben

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.
wink.png


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
wink.png
)
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.
Zurück
Oben