Uboot for GuruPlug

From Amahi Wiki
Jump to: navigation, search

GuruPlug, GuruPlug Server Plus

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):
setenv mainlineLinux yes
setenv x_bootargs_root 'root=/dev/sdc1 rootdelay=10'
setenv x_bootcmd_kernel 'ext2load usb 1:1 0x6400000 /boot/uImage'

To determine 1:1 in the command above

usb start
usb part
## Unknown partition table                                                                           
## Unknown partition  table                                                                           
Partition Map for USB device 2  --   Partition Type: DOS                                                                             
Partition     Start Sector     Num Sectors     Type                                                                            
    1                   63        14586957       b                                                                               
    2             14587020         1060290      82             

here you have device 2 and you want to boot Partition 1 so use 2:1 (as opposed to 1:1 in the command above).

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