GuruPlug USB Boot

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Ā :
  • 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
setenv serverip
tftp 0x6400000 u-boot.kwb
nand erase 0x00000000 0x0100000
nand write 0x6400000 0x0000000 0x80000

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'

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;
x_bootcmd_usb=usb start
x_bootcmd_kernel=ext2load usb 1:1 0x6400000 /boot/uImage
x_bootargs_root=root=/dev/sdc1 rootwait

Comments are closed.