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

Issue booting after uboot update (3 replies)

$
0
0
Using Bodhi's excellent instructions I've booted the Debian rootfs from USB and updated to the latest kernel - Linux stora 4.15.2-kirkwood-tld-1

My original uboot system was: U-Boot 1.1.4 (Sep 4 2009 - 09:36:11) Marvell version: 3.4.14
and I'm updating to uboot.2017.07-tld-1.netgear_ms2110.mtd0.kwb

I've got a serial console and I tested with UART and booted successfully so I went ahead with the flashing process.

Following the guide I got to the stage where I check for bad blocks...
root@stora:~# dmesg | grep -i 'bad'
[    8.151723] Scanning device for bad blocks
[    8.204418] Bad eraseblock 448 at 0x000003800000
[    8.215826] Bad eraseblock 511 at 0x000003fe0000
[    8.269987] Bad eraseblock 969 at 0x000007920000
[    8.283464] Bad eraseblock 1051 at 0x000008360000
[    8.295284] Bad eraseblock 1117 at 0x000008ba0000
[    8.342523] Bad eraseblock 1510 at 0x00000bcc0000
[    8.398180] Bad eraseblock 1979 at 0x00000f760000
You say blocks 0 - 7 are the ones to watch out for. I'm not sure if you're referring to the first number (in decimal) or the hex number (which I don't know how to read), but I assumed you meant the decimal number and went ahead to the next step. Maybe you could make the instructions slightly clearer for people who are newbies to this area like me?

At step 7 I got unexpected output:
root@stora:~# flash_erase /dev/mtd0 0 4
Erasing 128 Kibyte @ 465f5c00000064 --  4 % complete 
root@stora:~#

At step 8 it's similar:
root@stora:/tmp# /usr/sbin/flash_erase /dev/mtd0 0xc0000 1
Erasing 128 Kibyte @ 47af5c00000064 --  7 % complete
...but I completed all of the steps and rebooted and uboot has been upgraded successfully!

It loads the kernel and initrd and Debian starts booting, but then it gets stuck -
[   10.342612] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[   10.350137] Please append a correct "root=" boot option; here are the available partitions:
[   10.358656] 1f00            1024 mtdblock0
[   10.358662]  (driver?)
[   10.365300] 1f01            6144 mtdblock1
[   10.365305]  (driver?)
[   10.371921] 1f02          254976 mtdblock2
[   10.371926]  (driver?)
[   10.378498] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

It seems that uboot knows where to find and load the kernel, but the kernel isn't accepting the 'root' part from this environment var:
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params

When I replace 'root=LABEL=rootfs' with 'root=/dev/sda1' it boots Debian correctly, but when I plug the hard disks back in the block devices are numbered randomly and then a similar issue occurs. I updated /etc/fstab to use a UUID instead of /dev/sdX but is there a way to do this in the uboot args as well seeing as the label isn't working?

When the USB stick is plugged into my computer -
$ blkid
/dev/sdb1: LABEL="rootfs" UUID="4be089b4-752a-4ea9-b021-b1d88fff3857" SEC_TYPE="ext2" TYPE="ext3" PARTUUID="96dd54ae-01"

Any help would be greatly appreciated.

Viewing all articles
Browse latest Browse all 902

Trending Articles