Wir benötigen: * 2 USB-Sticks >= 1GB * Einen aktuellen U-Boot auf der Dockstar * Zugang zur seriellen Konsole [[projekte:diverses:dockstar_rs-232| Ein USB-RS232-Datenkabel mit brauchbaren Ausgängen versehen]] * [[http://plugapps.com/index.php5/Portal:PlugApps_Linux|PlugApps-Linux-20xx.xx-rootfs.tar.gz]] * ein modifiziertes install-script [[http://docs.juliankessel.de/cccffm/dockstar.emdebian-squeeze-readonly-twousb.sh|dockstar.emdebian-squeeze-readonly-twousb.sh]] {{:projekte:dockstar.emdebian-squeeze-readonly-twousb.sh.txt|mirror}} =====Formatieren===== Zuerst formatieren wir unseren ersten Datenträger mit ext2: mke2fs /dev/sdx[0-9] =====Entpacken===== Danach entpacken wir das rootfs auf diese Partition, im Beispiel ist es sdb1: mount /dev/sdb1 /mnt/sdb1 tar xvzf PlugApps-Linux-2011.02-rootfs.tar.gz -C /mnt/sdb1 =====Arch-Linux booten===== Danach rebooten wir und unterbrechen den Timer mit dem "Any"-Key. am //Marvell>>// Prompt geben wir folgendes ein: usb start run usb_bootcmd Ein Arch-Linux kommt hoch: user:root passw:root cd /tmp $EDITOR dockstar.emdebian-squeeze-readonly-twousb.sh # hier pastet ihr entweder das script rein oder kopiert die Datei chmod +x dockstar.emdebian-squeeze-readonly-twousb.sh Bevor ihr fortfahrt, solltet ihr euch vergewissern, dass **$ROOT** die zu beschreibende Partition und dass von **$BOOT_ROOT** mit sda1 die erste erkannte Partition auf dem ersten Gerät korrekt ist (was nahezu immer der Fall sein sollte, im Zweifelsfall Finger davon lassen und später im bootloader fixen). ./dockstar.emdebian-squeeze-readonly-twousb.sh =====Reboot in USB-Stick-Debian===== **reboot**\\ Falls jetzt das Debian von USB nicht hochkommen sollte orientiert euch an diesen Bootloader env-vars ===ein printenv=== ethact=egiga0 bootdelay=3 baudrate=115200 led_init=green blinking led_exit=green off led_error=orange blinking mtdids=nand0=orion_nand rescue_installed=0 rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts $rescue_custom_params rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000; else run pogo_bootcmd; fi pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi force_rescue=0 force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 /rescueme 1 || fatload usb 0:1 0x1700000 /rescueme.txt 1; then run rescue_bootcmd; fi ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data && ubifsmount rootfs && ubifsload 0x800000 /boot/uImage && ubifsload 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; fi usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done usb_scan_list=1 2 3 4 usb_scan_1=usb=0:1 dev=sda1 usb_scan_2=usb=1:1 dev=sdb1 usb_scan_3=usb=2:1 dev=sdc1 usb_scan_4=usb=3:1 dev=sdd1 usb_init=run usb_scan usb_device=0:1 usb_rootfstype=ext2 usb_rootdelay=10 usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi ethaddr=02:50:43:90:25:66 arcNumber=2097 mainlineLinux=yes ipaddr=192.168.1.79 serverip=192.168.1.77 tftpboot=tftp 0x800000 uImage ; setenv bootargs $(console) root=/dev/sda1 rw rootdelay=5 $(mtdparts) ; bootm 0x800000 bootargs_root=root=/dev/mtdblock2 ro ubifs_set_bootargs=setenv bootargs console=console=ttyS0,115200 ubi.mtd=3 root=ubi0:data rootfstype=ubifs mtdparts=orion_nand:0x100000@0x0(u-boot),0x400000@0x100000(uImage),0x2000000@0x500000(rootfs),0xDB00000@0x2500000(data) set_bootargs_ubi=setenv bootargs console=$console ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs $mtdparts init=/sbin/init ro bootcmd_ubi=run set_bootargs_ubi; ubi part data; ubifsmount rootfs; ubifsload 0x800000 /boot/uImage; bootm 0x800000 bootargs=console=console=ttyS0,115200 ubi.mtd=3 root=ubi0:data rootfstype=ubifs mtdparts=orion_nand:0x100000@0x0(u-boot),0x400000@0x100000(uImage),0x2000000@0x500000(rootfs),0xDB00000@0x2500000(data) partition=nand0,0 mtddevnum=0 mtddevname=u-boot ubifs_mtd=3 usb_root=/dev/sda1 ro mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data) usb_set_bootargs=setenv bootargs console=$consol root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts init=/sbin/init-ro debug earlyprintk=serial,ttyS0,115200,keep bootcmd=usb start; run usb_bootcmd; reset usb_set_bootarg=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts init=/sbin/init-ro debug earlyprintk=serial,ttyS0,115200,keep loglevel=7 console=ttyS0,115200 stdin=serial stdout=serial stderr=serial Environment size: 3214/131068 bytes Eine kurze Anleitung zum ändern von "Variablen" (sind ja eig. konstant ;)): * printenv => Letzteres ausgeben * setenv VARNAME 'VALUE' => eine Variable setzen, **wichtig!** keine doppelten quotes! * saveenv => schreibt die Änderungen in den NAND Wenn ihr nun das Debian oben habt, loggt euch unter wieder den selben creds ein und folgt Herrn Doozans Tutorial in den Links ab Punkt "Reboot into Debian".\\ =====kleine Anpassungen===== Ich habe noch "debug" als kernel Parameter mitgegeben (beim Setzen der Variablen mit **fw_setenv**), ist Geschmackssache.\\ Ihr werdet außerdem die Zeitzone ändern müssen [http://www.debian-administration.org/articles/213], da die Dockstar keine RTC bietet. =====Links===== [[http://plugapps.com/index.php5/Portal:PlugApps_Linux]] (dead)\\ [[http://forum.doozan.com/read.php?2,72]]\\ [[http://oreilly.com/linux/excerpts/9780596100797/kernel-boot-command-line-parameter-reference.html]]\\ [[http://www.debian-administration.org/articles/213]]\\