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]]\\