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Ā : 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

Comments are closed.