× NETGEAR will be terminating ReadyCLOUD service by July 1st, 2023. For more details click here.
Orbi WiFi 7 RBE973
Reply

Re: ReadyNas rn204 won't start up

old1mike
Aspirant

ReadyNas rn204 won't start up

I have a used RN204 with 4 2TB WD drives. When I power on it will start up and stop with this. (view attached jpg)

I connected up usb-serial, using putty, recorded this:

.

.

Initializing random number generator... done.
Starting system message bus: done
Starting SMB services: done
Starting NMB services: done


Welcome to NAS

NAS login: br0: port 2(eth1) entered disabled state
eth [al_eth_0]: set auto negotiation to enable
libphy: 8:04 - Link is Up - 1000/Full
br0: port 1(eth0) entered forwarding state
br0: port 1(eth0) entered forwarding state
br0: port 1(eth0) entered forwarding state

 

There was more at the beginning, if needed I can post. Rebooted and stopped the boot process. I think something is corrupted in the environement variables. Here is the copy:

Manufacturer=NETGEAR
Product=ReadyNAS 204
SKUNum=RN204
SerialNum=4602535200479
Startup=Normal
UUID=33186880-1dd2-11b2-9d4a-22ad13f82a45
Version=V1.2
arch=arm
autoload=n
baudrate=115200
board=alpine_db
board_name=alpine_db
boot_instance_active=0
boot_instance_non_active=1
bootargsextra=bdtype=rn204
bootargshd=run rootargshd; setenv bootargs $rootargs pci=pcie_bus_perf console=ttyS0,115200 $bootargsextra; printenv bootargs
bootargsnand=run rootargsnand; setenv bootargs $rootargs pci=pcie_bus_perf console=ttyS0,115200 $bootargsextra; printenv bootargs
bootargsnfs=run rootargsnfs; setenv bootargs $rootargs pci=pcie_bus_perf console=ttyS0,115200 $bootargsextra; printenv bootargs
bootcmd=run odmbootseq;
bootdelay=3
bootext4=lcd_print "Booting...";scsi init; ext4load scsi ${ext4dev}:${ext4part} $loadaddr ${ext4dir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr_dt $loadaddr;if test $? -ne 0; then run fail; exit; fi;fi;ext4load scsi ${ext4dev}:${ext4part} $loadaddr ${ext4dir}uImage;if test $? -ne 0; then run fail; exit; fi;fdt addr $loadaddr_dt;bootm $loadaddr - $fdtaddr;run fail; exit
bootnand=lcd_print "Booting...";nand set_partition_offset $nand_pt_addr_kernel;nand read $loadaddr $nand_pt_addr_kernel 4;setenvmem filesize $loadaddr;incenv filesize 4;nand read $loadaddr $nand_pt_addr_kernel $filesize;nand set_partition_offset $nand_pt_addr_al_boot;bootm $loadaddr_payload - $fdtaddr;lcd_print Failed!;failue;
bootnandmulti=run kernel_select;if test $kernel_selected -ne 0; then run bootnand; fi
boottftp=lcd_print "Booting...";tftpboot $loadaddr ${tftpdir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr_dt $loadaddr;if test $? -ne 0; then run fail; exit; fi;fi;tftpboot $loadaddr ${tftpdir}uImage;if test $? -ne 0; then run fail; exit; fi;fdt addr $loadaddr_dt;bootm $loadaddr - $fdtaddr;run fail; exit
bootupd=is_nand_boot; if test $? -eq 0; then run bootupdspi; else; run bootupdnand; fi
bootupdnand=lcd_print "Updating al-boot" "to NAND"; tftpboot $loadaddr_dt ${tftpdir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;tftpboot $loadaddr ${tftpdir}boot.img; if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread $nand_pt_addr_al_boot $filesize; nand write $loadaddr $nand_pt_addr_al_boot $filesize; nand erase.spread ${dt_location} 10000; nand write ${loadaddr_dt} ${dt_location} 10000; lcd_print "Done"
bootupdnandy=lcd_print "Updating al-boot" "to NAND"; echo >> Use YModem to upload the device tree binary...;loady $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;echo >> Use YModem to upload the boot image binary...;loady $loadaddr;if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread $nand_pt_addr_al_boot $filesize; nand write $loadaddr $nand_pt_addr_al_boot $filesize; nand erase.spread ${dt_location} 10000; nand write ${loadaddr_dt} ${dt_location} 10000;lcd_print "Done"
bootupdspi=lcd_print "Updating al-boot" "to SPI"; tftpboot $loadaddr_dt ${tftpdir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;setenv filesize_dt $filesize;tftpboot ${loadaddr} ${tftpdir}boot.img; if test $? -ne 0; then run fail; exit; fi;sf probe; sf erase 0 +${filesize}; sf write ${loadaddr} 0 ${filesize}; sf erase ${dt_location} +${filesize_dt}; sf write ${loadaddr_dt} ${dt_location} ${filesize_dt}; echo bootupd done;echo Notice: Changes in default environment variables will only take effect once the;echo environment variables are deleted from flash using the 'delenv' script;lcd_print "Done"
bootupdspiy=lcd_print "Updating al-boot" "to SPI"; echo >> Use YModem to upload the device tree binary...;loady $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;setenv filesize_dt $filesize;echo >> Use YModem to upload the boot image binary...;loady ${loadaddr};if test $? -ne 0; then run fail; exit; fi;sf probe; sf erase 0 +${filesize}; sf write ${loadaddr} 0 ${filesize}; sf erase ${dt_location} +${filesize_dt}; sf write ${loadaddr_dt} ${dt_location} ${filesize_dt};echo bootupd done;echo Notice: Changes in default environment variables will only take effect once the;echo environment variables are deleted from flash using the 'delenv' script;lcd_print "Done"
bootupdy=is_nand_boot; if test $? -eq 0; then run bootupdspiy;else; run bootupdnandy; fi
build_date=12/21/2017
cpu=armv7
cvos_tags=0x01000000
cvos_tags_seed_a=0x01000004
cvos_tags_seed_b=0x01000008
cvos_tags_validate=mw.l ${cvos_tags} 0xcf05cf05
delenv=is_nand_boot; if test $? -eq 0; then run delenvspi; else; run delenvnand; fi
delenvnand=lcd_print "Deleting env..."; nand erase ${env_offset} 2000; if test -n ${env_offset_redund}; then nand erase ${env_offset_redund} 2000; fi;lcd_print "Done"
delenvspi=lcd_print "Deleting env..."; sf probe; sf erase ${env_offset} +2000;if test -n ${env_offset_redund}; then sf erase ${env_offset_redund} +2000;fi;lcd_print "Done"
dt_filename=dt.img
dt_is_from_toc=1
dt_location=80000
dtupd=is_nand_boot; if test $? -eq 0; then run dtupdspi; else; run dtupdnand; fi
dtupdnand=lcd_print "Updating DT" "to NAND"; tftpboot $loadaddr_dt ${tftpdir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread ${dt_location} 10000; nand write ${loadaddr_dt} ${dt_location} 10000; lcd_print "Done"
dtupdnandy=lcd_print "Updating DT" "to NAND"; echo >> Use YModem to upload the device tree binary...;loady $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;nand set_partition_offset $nand_pt_addr_al_boot;nand erase.spread ${dt_location} 10000; nand write ${loadaddr_dt} ${dt_location} 10000; lcd_print "Done"
dtupdspi=lcd_print "Updating DT" "to SPI"; tftpboot $loadaddr_dt ${tftpdir}${dt_filename};if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;sf probe; sf erase ${dt_location} +${filesize}; sf write ${loadaddr_dt} ${dt_location} ${filesize};echo dtupd done;lcd_print "Done"
dtupdspiy=lcd_print "Updating DT" "to SPI"; echo >> Use YModem to upload the device tree binary...;loady $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;if test ${dt_is_from_toc} != 1; then; else flash_contents_obj_read_mem $loadaddr $loadaddr_dt;if test $? -ne 0; then run fail; exit; fi;fi;sf probe; sf erase ${dt_location} +${filesize}; sf write ${loadaddr_dt} ${dt_location} ${filesize}; echo dtupd done;lcd_print "Done"
dtupdy=is_nand_boot; if test $? -eq 0; then run dtupdspiy; else; run dtupdnandy; fi
eepromupd=confirm_msg "Perform EEPROM update? [y/n] ";if test $? -ne 0; then exit; fi;tftpboot ${tftpdir}eeprom.bin;if test $? -ne 0; then exit; fi;i2c probe ${pld_i2c_addr};if test $? -ne 0; then exit; fi;i2c write $fileaddr ${pld_i2c_addr} 0.2 $filesize;if test $? -ne 0; then exit;fi;echo eepromupd done
eepromupdy=confirm_msg "Perform EEPROM update? [y/n] ";if test $? -ne 0; then exit; fi;echo >> Use YModem to upload the EEPROM binary...;loady $loadaddr;if test $? -ne 0; then exit; fi;i2c probe ${pld_i2c_addr};if test $? -ne 0; then exit; fi;i2c write $loadaddr ${pld_i2c_addr} 0.2 $filesize;if test $? -ne 0; then exit;fi;echo eepromupdy done
env_offset=1c0000
env_offset_redund=1e0000
eth1addr=A0:63:91:65:58:14
eth3addr=A0:63:91:65:58:15
ethact=al_eth1
ethprime=al_eth1
ext4dev=0
ext4dir=boot/
ext4part=1
factory_diag=1
fail=echo Failed!; lcd_print "Failed!"
fdt_high=0xffffffff
fdtaddr=1b25008
fwupd=tftpboot ${tftpdir}uboot_script_fw_update.bin;source ${loadaddr}
hdroot=/dev/sda1
hwsetting_rn202=serdes rx_params_set 2 0 00 07 00 00 08 00 08 07 10;serdes rx_params_set 2 1 00 07 00 00 08 00 08 07 10;serdes rx_params_set 2 2 00 07 00 00 08 00 08 07 10;serdes rx_params_set 2 3 00 07 00 00 08 00 08 07 10;serdes tx_params_set 2 0 1 27 6 0 0;serdes tx_params_set 2 1 1 27 6 0 0;mw.l 0xfc8f821c 0x04000000;mw.l 0xfc9f821c 0x04000000;
hwsetting_rn204=serdes rx_params_set 2 0 00 07 00 00 08 00 08 07 4;serdes rx_params_set 2 1 00 07 00 00 08 00 08 07 4;serdes rx_params_set 2 2 00 07 00 00 08 00 08 07 4;serdes rx_params_set 2 3 00 07 00 00 08 00 08 07 4;serdes wr 2 p4 pma 13 4 4 0;serdes wr 2 p4 pma 15 2 0 2;serdes tx_params_set 2 0 1 23 4 0 0;serdes tx_params_set 2 1 1 23 4 0 0;serdes tx_params_set 2 2 1 23 4 0 0;serdes tx_params_set 2 3 1 23 4 0 0;mw.l 0xfc9f821c 0x4000000;
kernel_rename_1=editenv nand_pt_desc_kernel_1;saveenv
kernel_rename_2=editenv nand_pt_desc_kernel_2;saveenv
kernel_select=setenv kernel_selected 0;setenv bootmenu_0 ${nand_pt_desc_kernel_1}=run kernel_select_1;setenv bootmenu_1 ${nand_pt_desc_kernel_2}=run kernel_select_2;bootmenu
kernel_select_1=setenv nand_pt_addr_kernel ${nand_pt_addr_kernel_1};setenv kernel_selected 1
kernel_select_2=setenv nand_pt_desc_kernel ${nand_pt_desc_kernel_2};setenv nand_pt_addr_kernel ${nand_pt_addr_kernel_2};setenv nand_pt_desc_kernel_2 ${nand_pt_desc_kernel_1};setenv nand_pt_addr_kernel_2 ${nand_pt_addr_kernel_1};setenv nand_pt_desc_kernel_1 ${nand_pt_desc_kernel};setenv nand_pt_addr_kernel_1 ${nand_pt_addr_kernel};saveenv;setenv kernel_selected 2
kernelupd=lcd_print "Updating kernel...";tftpboot $loadaddr_payload ${tftpdir}uImage;if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_kernel;mw.l $loadaddr $filesize;incenv filesize 4;nand erase.spread $nand_pt_addr_kernel $filesize;nand write $loadaddr $nand_pt_addr_kernel $filesize;nand set_partition_offset $nand_pt_addr_al_boot;echo kernelupd done;lcd_print "Done"
loadaddr=0x08000000
loadaddr_dt=0x07000000
loadaddr_fs=0x8800000
loadaddr_payload=0x08000004
loadaddr_rootfs_chk=0x07000000
nand_pt_addr_al_boot=0x0
nand_pt_addr_fs=0x01000000
nand_pt_addr_kernel=0x00400000
nand_pt_addr_kernel_1=0x00400000
nand_pt_addr_kernel_2=0x00a00000
nand_pt_desc_kernel_1=Test kernel A
nand_pt_desc_kernel_2=Test kernel B
nand_pt_size_al_boot=0x00100000
nand_pt_size_fs=0x3f000000
nand_pt_size_kernel=0x00c00000
nfsrootdir=/srv/root/
odmboot=lcd_print "Booting..."; gpio set 33;bootm $loadaddr $loadaddr_fs $loadaddr_dt;
odmbootargs=setenv bootargs pci=pcie_bus_perf console=ttyS0,115200 $reasonargs $bootargsextra ; printenv bootargs
odmbootbackusb=usb start;lcd_print "Loading..."; fatload usb 0 $loadaddr uImage-recovery;if test $? -eq 0; then fatload usb 0 $loadaddr_fs initrd-recovery.gz;if test $? -eq 0; then flash_contents_obj_read DT 0 $loadaddr_dt;run odmboot;else;lcd_print "Failed!";failure;fi;else;lcd_print "Failed!";failure;fi;
odmbootfirmware=lcd_print "Loading..."; nand read $loadaddr 0x200000 0x600000 ;flash_contents_obj_read DT 0 $loadaddr_dt;nand read $loadaddr_fs 0x800000 0x400000;run odmboot;
odmbootseq=run odmbootargs; run odmbootusb; run odmbootfirmware; failure;
odmbootubi=mtdparts default;ubi part ubifs;ubifsmount ubi0;ubifsload $loadaddr kernel;flash_contents_obj_read DT 0 $loadaddr_dt;ubifsload $loadaddr_fs initrd.gz;run odmboot;
odmbootusb=usb start;fatload usb 0 $loadaddr NTGR_USBBOOT_INFO.txt;if test $? -eq 0; then run odmbootbackusb;fi;
pld_i2c_addr=50
reasonargs=reason=normal
rootargshd=setenv rootargs root=${hdroot} rw
rootargsnand=setenv rootargs root=ubi0:root rootfstype=ubifs ubi.mtd=3
rootargsnfs=setenv rootargs root=/dev/nfs rw nfsroot=${serverip}:${nfsrootdir},tcp,nolock rw ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${board_name}:eth1:none
rootfsupd=lcd_print "Updating rootfs...";tftpboot $loadaddr_rootfs_chk ${tftpdir}rootfs.ubi.md5;if test $? -ne 0; then run fail; exit; fi;tftpboot $loadaddr ${tftpdir}rootfs.ubi;if test $? -ne 0; then run fail; exit; fi;md5sum -v $loadaddr $filesize *$loadaddr_rootfs_chk;if test $? -ne 0; then run fail; exit; fi;nand set_partition_offset $nand_pt_addr_fs;nand erase.spread $nand_pt_addr_fs $nand_pt_size_fs;nand write $loadaddr $nand_pt_addr_fs $filesize;nand set_partition_offset $nand_pt_addr_al_boot;echo rootfsupd done;lcd_print "Done"
skip_eth_halt=0
soc=alpine
test=echo this is a test!
vendor=annapurna-labs

Environment size: 13152/16379 bytes

 

The reason I thing the environment varaible has issue, with usb/serial attached, through putty, stop bootup and get to "ALPINE_DB> " input stage. If I just type in 'boot' it will boot up and pull an ip. I can log in and work with it at normal. It is at latest level of ReadyNas6. I can access it over my network just fine. If I restart or power down/up, I am back to square one, and am unable to access, never pulls IP from router.

 

Can anyone help with where/what is wrong with boot?

 

Thanks in advance.

Mike

 

 

Model: RN204|ReadyNAS204 4-Bay
Message 1 of 6

Accepted Solutions
old1mike
Aspirant

Re: ReadyNas rn204 won't start up

Issue was in U-Boot global variables environment. Corrected error. Now working fine.

Thanks for all the help.

Mike

View solution in original post

Model: RN204|ReadyNAS204 4-Bay
Message 6 of 6

All Replies
Retired_Member
Not applicable

Re: ReadyNas rn204 won't start up

hello

You may want to try USB recovery to fix you RN204 device boot issue,below is the download link

https://www.readynas.com/download/support/os6-recovery-tool-v2.0.r17.zip

Message 2 of 6
old1mike
Aspirant

Re: ReadyNas rn204 won't start up

Ok, maybe I should have stated this to start.

Already went through USB Recovery. No help.

When connect to serial port have even tried USBboot. No help.

So now I am checking NAND environment settings as those are not rewritten with recovery.

Recovery as I see only rewrites intird and ulmage on the nand, intird being ramdisk and ulmage being linux/nasready os.

 

Thanks.

Model: RN204|ReadyNAS204 4-Bay
Message 3 of 6
old1mike
Aspirant

Re: ReadyNas rn204 won't start up

On futher checking. Via serial port connection. If I do not interupt boot it does this:

#1

Hit any key to stop autoboot: 0
bootargs=pci=pcie_bus_perf console=ttyS0,115200 reason=normal bdtype=rn204
## Error: "odmbootusb" not defined

NAND read: device 0 offset 0x7000000, size 0x400000
4194304 bytes read: OK

NAND read: device 0 offset 0x7400000, size 0xb00000
11534336 bytes read: OK
## Booting kernel from Legacy Image at 08000000 ...
Image Name: Linux-3.10.20-al-2.5.2
Created: 2014-11-17 23:30:27 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2978744 Bytes = 2.8 MiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 08800000 ...
Image Name:
Created: 2015-01-12 8:29:10 UTC
Image Type: ARM Linux RAMDisk Image (lzma compressed)
Data Size: 10039368 Bytes = 9.6 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
** Using primary FDT on legacy kernel
## Flattened Device Tree blob at 01b25008
Booting using the fdt blob at 0x1b25008
Loading Kernel Image ... OK
Loading Ramdisk to 01190000, end 01b23048 ... OK
Using Device Tree in place at 01b25008, end 01b2c1b4
ft_board_setup_clock: unable to set /soc/arch-timer.clock-frequency!

 

If I interupt the boot process I get this:

 

#2

Hit any key to stop autoboot: 0  0
ALPINE_DB> printenv odmbootseq
odmbootseq=run odmbootargs; run odmbootusb; run odmbootfirmware; failure;
ALPINE_DB> run odmbootseq
bootargs=pci=pcie_bus_perf console=ttyS0,115200 reason=normal bdtype=rn204
(Re)start USB...
USB0: Register 8000450 NbrPorts 8
Starting the controller
USB XHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
** Bad device usb 0 **

NAND read: device 0 offset 0x200000, size 0x600000
6291456 bytes read: OK

NAND read: device 0 offset 0x800000, size 0x400000
4194304 bytes read: OK
gpio: pin 33 (gpio 33) value is 1
## Booting kernel from Legacy Image at 08000000 ...
Image Name: Linux-4.4.184.alpine.1
Created: 2019-09-05 2:32:26 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3437376 Bytes = 3.3 MiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 08800000 ...
Image Name: initramfs
Created: 2019-09-18 3:20:11 UTC
Image Type: ARM Linux RAMDisk Image (lzma compressed)
Data Size: 3423536 Bytes = 3.3 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 07000000
Booting using the fdt blob at 0x7000000
Loading Kernel Image ... OK
reserving fdt memory region: addr=0 size=100000
Loading Ramdisk to 017df000, end 01b22d30 ... OK
Using Device Tree in place at 07000000, end 07008bd3

Starting kernel ...

 

So, if I do 'run odmbootseq' the RN204 comes up and seems normal. I can access it over the local network.

I have tried setting environment variable 'odmbootseq' removing 'run odmbootusb', saving environment and rebooting.

 

ALPINE_DB> printenv odmbootseq
odmbootseq=run odmbootargs; run odmbootusb; run odmbootfirmware; failure;

ALPINE_DB> printenv odmbootseq
odmbootseq=run odmbootargs; run odmbootfirmware; failure;

 

Still getting the first (#1) report. It would seem the 'odmbootfirmware' is booting from factory load(?) when boot is not interupted.

Confused, why if interrupting boot and issuing 'run odmbootseq' it works fine. Seem it is running that normally, just getting '## Error: "odmbootusb" not defined' when boot not interrupted, and dont get that when u-boot interrupted and manually 'run odmbootseq'. Doesn't seem to make sense.

 

Thanks in advance, any help would be appreciated.

Mike

Message 4 of 6
old1mike
Aspirant

Re: ReadyNas rn204 won't start up

If anyone can post their copy of the 'printenv' environment variables, I could compare with what I have.

Thanks in advance.

Mike

Model: RN204|ReadyNAS204 4-Bay
Message 5 of 6
old1mike
Aspirant

Re: ReadyNas rn204 won't start up

Issue was in U-Boot global variables environment. Corrected error. Now working fine.

Thanks for all the help.

Mike

Model: RN204|ReadyNAS204 4-Bay
Message 6 of 6
Top Contributors
Discussion stats
  • 5 replies
  • 1480 views
  • 0 kudos
  • 2 in conversation
Announcements