Quantcast
Channel: Linux Device Hacking - uBoot
Viewing all articles
Browse latest Browse all 902

Problems with Understanding Drive Order (6 replies)

$
0
0
Okay, so I was setting up a new Pink E02 and had everything working great... and then I plugged in a hard disk and the USB drive order changed. Boom, my boot disk became sdb1 and wouldn't boot. I thought I had taken care of problems with changing drive order by using the "LABEL=" syntax with the usb_root variable, but then I realized that the usb_load was directly referencing device 0:1... so I still had a dependency on sda1.

I see that Jeff's old uboot script sets up a scan of all of the USB drives to locate the correct device with the uImage on it and I could incorporate this scan in my variables. Is this the right way to fix this problem under newer versions of uboot by Bodhi? Or is there something I am not understanding? I can generally puzzle out scripting questions, but I'm not at all good with the internals of Linux booting.

root@pinky:~# fw_printenv
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
ethaddr=xx:xx:xx:xx:xx:xx
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
baudrate=115200
bootcmd=run bootcmd_usb; run bootcmd_rescue; reset
bootcmd_rescue=run set_bootargs_rescue; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000
bootcmd_usb=run usb_init; run set_bootargs_usb; run usb_boot;
bootdelay=10
console=ttyS0,115200
device=0:1
ethact=egiga0
led_error=orange blinking
led_exit=green off
led_init=green blinking
mainlineLinux=yes
mtdids=nand0=orion_nand
partition=nand0,2
preboot_nc=run if_netconsole start_netconsole
rescue_installed=1
rootdelay=10
rootfstype=ext3
set_bootargs_rescue=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts
set_bootargs_usb=setenv bootargs console=$console root=$usb_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
stderr=serial
stdin=serial
stdout=serial
usb_boot=mw 0x800000 0 1; run usb_load_uimage; if run usb_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
usb_init=usb start
usb_load_uimage=ext2load usb $device 0x800000 /boot/uImage
usb_load_uinitrd=ext2load usb $device 0x1100000 /boot/uInitrd
usb_root=LABEL=rootfs
arcNumber=3542
machid=dd6
ipaddr=192.168.1.70
serverip=192.168.1.50
if_netconsole=ping $serverip
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
preboot=run if_netconsole start_netconsole


Thanks,

Nat

Viewing all articles
Browse latest Browse all 902

Trending Articles