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...
At step 7 I got unexpected output:
At step 8 it's similar:
It loads the kernel and initrd and Debian starts booting, but then it gets stuck -
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:
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 -
Any help would be greatly appreciated.
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 0x00000f760000You 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.