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