Greetings. I'll be quite blunt...I got myself into a bit of a fustercluck with my Netgear Stora.
First off, I tried updating uBoot from stock to the latest 2017.07 release, with the intention of attempting to install OMV (or at least something newer than the ancient stock kernel so I can get stable SMB2 support). Unfortunately, since my initial plan was to install OMV, I didn't follow the instructions provided on this forum. Instead, I followed the instructions located at http://chrislamothe.blogspot.com/2014/08/openmediavault-06-kralizec-on-netgear.html (but replaced the tftp filename with the latest version). However, after flashing the new uBoot, I decided instead of going right into installing OMV, I'd first try to get (what was at the time I downloaded it) the latest Bodhi kernel (Debian-5.2.9-kirkwood-tld-1-rootfs).
This is when things went off the rails.
uBoot itself seems to have flashed fine, and I have serial access to it. However, it will not boot from the 5.2.9 kernel USB. It'll make it as far as "Uncompressing Linux... done, booting the kernel.", and then just hang there forever.
I also tried booting it from an older "stora-debian-rootfs_20140114" ext2 flash drive that I've successfully used in the past for recovery purposes (after accidentally nuking the stock /lib directory, oops...), but same thing, it hangs at "booting the kernel". Same when I change the environment variables to boot from the stock kernel in NAND, it hangs. Basically...I'm currently stuck in uBoot, with no way to go any further.
I imagine what's happened is that one or more environment variables got screwed up...and then I made things even worse in my attempts to fix them piecemeal by reading multiple different forum posts. So, I imagine flashing the default environment variables might fix it. However...how do I do this from within uBoot? Is that even possible? The forum post that tells how to flash them only tells how to do it from within a booted Linux, and not from within uBoot itself.
If it helps, here is the uBoot startup log, along with the output of printenv:
Note: Along with the various assorted "desperate attempt to fix this" changes, many of which I can not recall off the top of my head, I also manually changed bootdelay to 3 simply because I didn't like waiting 10 seconds for it to try booting from USB. :p
And here is the boot log of it attempting to boot from the 5.2.9 kernel USB:
And then it hangs, forever and all eternity.
How can I fix this?
Thank you...
First off, I tried updating uBoot from stock to the latest 2017.07 release, with the intention of attempting to install OMV (or at least something newer than the ancient stock kernel so I can get stable SMB2 support). Unfortunately, since my initial plan was to install OMV, I didn't follow the instructions provided on this forum. Instead, I followed the instructions located at http://chrislamothe.blogspot.com/2014/08/openmediavault-06-kralizec-on-netgear.html (but replaced the tftp filename with the latest version). However, after flashing the new uBoot, I decided instead of going right into installing OMV, I'd first try to get (what was at the time I downloaded it) the latest Bodhi kernel (Debian-5.2.9-kirkwood-tld-1-rootfs).
This is when things went off the rails.
uBoot itself seems to have flashed fine, and I have serial access to it. However, it will not boot from the 5.2.9 kernel USB. It'll make it as far as "Uncompressing Linux... done, booting the kernel.", and then just hang there forever.
I also tried booting it from an older "stora-debian-rootfs_20140114" ext2 flash drive that I've successfully used in the past for recovery purposes (after accidentally nuking the stock /lib directory, oops...), but same thing, it hangs at "booting the kernel". Same when I change the environment variables to boot from the stock kernel in NAND, it hangs. Basically...I'm currently stuck in uBoot, with no way to go any further.
I imagine what's happened is that one or more environment variables got screwed up...and then I made things even worse in my attempts to fix them piecemeal by reading multiple different forum posts. So, I imagine flashing the default environment variables might fix it. However...how do I do this from within uBoot? Is that even possible? The forum post that tells how to flash them only tells how to do it from within a booted Linux, and not from within uBoot itself.
If it helps, here is the uBoot startup log, along with the output of printenv:
U-Boot 2017.07-tld-1 (Sep 05 2017 - 00:38:05 -0700) Netgear Stora MS2110 SoC: Kirkwood 88F6281_A0 DRAM: 128 MiB WARNING: Caches not enabled NAND: 256 MiB In: serial Out: serial Err: serial Net: egiga0 PHY reset timed out 88E1116 Initialized on egiga0 Hit any key to stop autoboot: 3 2 0 Netgear Stora> printenv arcNumber=2743 baudrate=115200 boot_sata1=mw 0x800000 0 1; setenv bootargs console=ttyS0,115200 root=/dev/sda1 rootdelay=10 $mtdparts; ide reset; ext2load ide 0:1 0x800000 /uImage; ext2load ide 0:1 0x01100000 /uInitrd; bootm 0x00800000 0x01100000 bootargs=console=ttyS0,115200 root=/dev/sda1 bootcmd=setenv bootargs $(console) root=LABEL=rootfs rootdelay=8; run bootcmd_usb; bootm 0x200000 0x800000 bootcmd_exec=run load_uimage; if run load_initrd; then if run load_dtb; then bootm $load_uimage_addr $load_initrd_addr $load_dtb_addr; else bootm $load_uimage_addr $load_initrd_addr; fi; else if run load_dtb; then bootm $load_uimage_addr - $load_dtb_addr; else bootm$load_uimage_addr; fi; fi bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi bootcmd_usb=usb reset; ext2load usb 0 0x200000 /boot/uImage; ext2load usb 0 0x800000 /boot/uInitrd bootdelay=3 bootdev=usb console=console=ttyS0,115200 device=0:1 devices=usb ide disks=0 1 2 3 dtb_file=/boot/dts/kirkwood-netgear_stora_ms2000 ethact=egiga0 ethaddr=52:3b:20:9c:11:51 fileaddr=800000 filesize=4bbd60 if_netconsole=ping $serverip ipaddr=192.168.1.169 led_error=orange blinking led_exit=green off led_init=green blinking load_dtb=echo loading DTB $dtb_file ...; load $bootdev $device $load_dtb_addr $dtb_file load_dtb_addr=0x1c00000 load_initrd=echo loading uInitrd ...; load $bootdev $device $load_initrd_addr /boot/uInitrd load_initrd_addr=0x1100000 load_uimage=echo loading uImage ...; load $bootdev $device $load_uimage_addr /boot/uImage load_uimage_addr=0x800000 machid=ffffffff mainlineLinux=yes mtdids=nand0=orion_nand mtdparts=mtdparts=orion_nand:1m(uboot),4m@1m(kernel),251m@5m(rootfs) rw partition=nand0,2 preboot_nc=run if_netconsole start_netconsole scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start"; setenv scan_ide "ide reset"; setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_uimage_addr /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv bootdev $dev; fi; fi; done; fi; done serverip=192.168.1.69 set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version; stderr=serial stdin=serial stdout=serial uenv_addr=0x810000 uenv_import=echo importing envs ...; env import -t $uenv_addr $filesize uenv_init_devices=setenv init_usb "usb start"; setenv init_ide "ide reset"; setenv init_mmc "mmc rescan"; for devtype in $devices; do run init_$devtype; done; uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices; do for disknum in 0; do run uenv_read_disk; done; done; uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 $uenv_addr /boot/uEnv.txt; then setenv uenv_loaded 1; fi uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read; fi; else if $devtype part $disknum; then run uenv_read; fi; fi usb_boot=run usb_load_uimage; run usb_load_uinitrd; bootm 0x800000 0x1100000 usb_bootcmd=usb start; run usb_init; run usb_set_bootargs; run usb_boot usb_load_uimage=ext2load usb 0:1 0x800000 /boot/uImage usb_load_unitrd=ext2load usb 0:1 0x1100000 /boot/uInitrd usb_ready_retry=15 usb_root=LABEL=rootfs usb_rootdelay=10 usb_rootfstype=ext2 usb_set_bootargs=setenv bootargs $console root=$(usb_root) rootfstype=$(usb_rootfstype) rootdelay=$(usb_rootdelay) Environment size: 3798/131068 bytes
Note: Along with the various assorted "desperate attempt to fix this" changes, many of which I can not recall off the top of my head, I also manually changed bootdelay to 3 simply because I didn't like waiting 10 seconds for it to try booting from USB. :p
And here is the boot log of it attempting to boot from the 5.2.9 kernel USB:
Netgear Stora> boot
resetting USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
scanning usb for storage devices...
Use USB retry period from the environment: 15 second(s)
1 Storage Device(s) found
4963680 bytes read in 852 ms (5.6 MiB/s)
9713936 bytes read in 820 ms (11.3 MiB/s)
## Booting kernel from Legacy Image at 00200000 ...
Image Name: Linux-5.2.9-kirkwood-tld-1
Created: 2019-08-25 2:22:31 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4963616 Bytes = 4.7 MiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 00800000 ...
Image Name: initramfs-5.2.9-kirkwood-tld-1
Created: 2019-08-25 2:22:50 UTC
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 9713872 Bytes = 9.3 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
Loading Ramdisk to 036bc000, end 03fff8d0 ... OK
Using machid 0xffffffff from environment
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
And then it hangs, forever and all eternity.
How can I fix this?
Thank you...