Here’s how to allow your GuruPlug to boot from a USB drive.
You’ll need an access to the serial console to achieve this, the JTAG module is OK.
- To connect to the bootloader, proceed exactly like for the Sheevaplug
- Reset the GuruPlug.
- At the terminal, press enter a couple of seconds after boot to prevent it from booting using the onboard flash (Ubuntu). You should end up with a prompt.
- Some version of the GuruPlug have been shipped with a uboot that does not support Booting from USB, ESATA or SD-Card. If this is your case, then you have to upgrade uboot. To do this, the best howto I found is thisĀ : http://oinkzwurgl.org/guruplug_uboot
- There are some commands you need to run to make it permanently boot from the USB port (NOTE: this step is only necessary once):
You can manual boot your environment or browse your media with the following
usb start usb storage usb part 1 ext2ls usb 1:1 / ext2load usb 1:1 0x01100000 /uInitrd ext2load usb 1:1 0x00800000 /uImage bootm 0x00800000 0x01100000
Change your U-Boot after you have downloaded the latest one from the link above or by downloading this one. Then proceed doing the following
setenv ipaddr 10.21.128.29 setenv serverip 10.21.128.65 tftp 0x6400000 u-boot.kwb nand erase 0x00000000 0x0100000 nand write 0x6400000 0x0000000 0x80000 reset
Now to Boot your Guruplug using environment variables crate a similar config. Usually /dev/sdb is the miniSD slot sdc is a USB stick so on and so forth.
setenv mainlineLinux yes
setenv x_bootargs_root 'root=/dev/sdb2 rootdelay=10'
setenv x_bootcmd_kernel 'ext2load usb 1:1 0x00800000 /uImage'
setenv x_bootcmd_initrd 'ext2load usb 1:1 0x01100000 /uInitrd'
setenv x_bootcmd_usb 'usb start'
setenv ethact 'egiga0'
setenv arcNumber 2653
setenv bootcmd '${x_bootcmd_usb}; ${x_bootcmd_initrd}; ${x_bootcmd_kernel}; setenv bootargs ${x_bootargs} ${x_bootargs_root}; bootm 0x00800000 0x01100000;'
setenv x_bootargs_root 'root=/dev/sdb2 rootwait'
setenv x_bootargs 'console=ttyS0,115200'
saveenv
While still under the bootloader , check your environment with printenv. It must look like this:
GuruPlug>> printenv
bootcmd=${x_bootcmd_usb}; ${x_bootcmd_kernel}; setenv bootargs ${x_bootargs} ${x_bootargs_root}; bootm 0x6400000;
bootdelay=3
baudrate=115200
x_bootcmd_usb=usb start
ethact=egiga0
x_bootcmd_kernel=ext2load usb 1:1 0x6400000 /boot/uImage
arcNumber=2653
mainlineLinux=yes
x_bootargs_root=root=/dev/sdc1 rootwait
x_bootargs=console=ttyS0,115200
stdin=serial
stdout=serial
stderr=serial