1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

HowTo Image booten vom USB-Stick

Dieses Thema im Forum "Coolstream FAQ/HowTo" wurde erstellt von Nico1987, 1. Oktober 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Nico1987
    Offline

    Nico1987 Freak

    Registriert:
    17. November 2009
    Beiträge:
    231
    Zustimmungen:
    337
    Punkte für Erfolge:
    63
    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.
    [​IMG]

    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 [​IMG] )
    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:

    [TD="class: codeLineNumbers container-3"]1.[/TD]
    [TD="class: codeLines container-4"]printenv[/TD]

    [TD="class: codeLines container-4"][/TD]


    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>



    [TD="class: codeLineNumbers container-3"][/TD]
    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:


    [TD="class: codeLineNumbers container-3"]1[/TD]
    [TD="class: codeLines container-4"]. setenv bootargs console=ttyRI0 mtdparts=cx2450xflash:512k(U-Boot)ro,4096k(kernel),28160k(systemFS) root=mtd2 rootfstype=jffs2 rw mem=384M init=/linuxrc[/TD]

    [TD="class: codeLines container-4"][/TD]



    und dann:

    9:


    [TD="class: codeLineNumbers container-3"]1.[/TD]
    [TD="class: codeLines container-4"]boot[/TD]

    [TD="class: codeLines container-4"][/TD]



    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: 3. Oktober 2012
    #1
    Coolmaster, lord-akin und katze28100 gefällt das.
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen