Jump to content

Issues when attempting to network boot Armbian 23.8.1


edolnx

Recommended Posts

Greetings -

 

I took the contents of the Armbian_23.8.1_Jetson-nano_bookworm_current_6.1.50 image and put it on my NFS server in an attempt to network boot my Jetson Nano device. After making some adjustments to the pxelinux.cfg so that it points to the correct files on my tftp server, the device fails to boot with the following u-boot output:

 

Tegra210 (P3450-0000) # pxe boot
1:	Armbian
Retrieving file: /boot/jetson-nano-1/uInitrd
Using eth_rtl8169 device
TFTP from server 192.168.123.4; our IP address is 192.168.123.38
Filename '/boot/jetson-nano-1/uInitrd'.
Load address: 0x83200000
Loading: #################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#########################
	840.8 KiB/s
done
Bytes transferred = 32807968 (1f49c20 hex)
Retrieving file: /boot/jetson-nano-1/Image
Using eth_rtl8169 device
TFTP from server 192.168.123.4; our IP address is 192.168.123.38
Filename '/boot/jetson-nano-1/Image'.
Load address: 0x84000000
Loading: #################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	#################################################################
	##############################################
	847.7 KiB/s
done
Bytes transferred = 27390464 (1a1f200 hex)
append: root=/dev/nfs nfsroot=192.168.123.4:/rz2pool0/jetson-nano-nfs-1,vers=4.1,proto=tcp ip=dhcp console=ttyS0,115200n8 console=tty0 rw rootwait no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 splash plymouth.ignore-serial-consoles
Retrieving file: /boot/jetson-nano-1/dtb/nvidia/tegra210-p3450-0000.dtb
Using eth_rtl8169 device
TFTP from server 192.168.123.4; our IP address is 192.168.123.38
Filename '/boot/jetson-nano-1/dtb/nvidia/tegra210-p3450-0000.dtb'.
Load address: 0x83000000
Loading: ######
	847.7 KiB/s
done
Bytes transferred = 84279 (14937 hex)
## Loading init Ramdisk from Legacy Image at 83200000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    32807904 Bytes = 31.3 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... Bad Data CRC
Ramdisk image is corrupt or invalid

 

I have verified that the uInitrd file and the vmlinuz files sha256 checksums match the ones from the Armbian image:

62ce5b826c319c4032e1bd973ba3675580990f228c7589be7e0991edc2079cab  Image
1d8923fdaff529c62d6794b186b4b92d66ca6f2cacf8d0616da975e0d432ac68  initrd.img-6.1.50-current-media
bdf62ae60589860cff80fc95b46998ad79d207649b92617c2b211d7f5793d585  System.map-6.1.50-current-media
f22abfce4344c22bdb59087e8fa778c668c06839d010665933cd5499aa2ed104  uInitrd
f22abfce4344c22bdb59087e8fa778c668c06839d010665933cd5499aa2ed104  uInitrd-6.1.50-current-media
62ce5b826c319c4032e1bd973ba3675580990f228c7589be7e0991edc2079cab  vmlinuz-6.1.50-current-media

 

It does take quite a bit of time for the Bad Data CRC error to appear, and the Data Size does not match the Bytes transferred listed earlier in the messages but that looks like it may be normal from my investigation thus far. I also noted that when trying to boot via SD card the GRUB2 bootloader is used and not the pxelinux loader, but I am unsure how to make an EFI bootloader work over the network. I also tried booting off a USB device, which works but a USB reset issue and/or switch from usb-storage to uas causes the system to become unusable because the boot device moves when systemd is not expecting it. I do have a good quality barrel jack 12V 4A power supply connected and no other devices in my network boot environment (when testing with the USB booting, there was only a USB SATA adapter attached). If anyone has any ideas, I would love to hear them.

Link to comment
Share on other sites

Assuming initrd file is intact and you are able to extract it yourself without any errors. This looks like that maybe initrd or kernel is getting overwritten in ram while loading. you can try playing around with their load addresses in u-boot and see if that makes a difference

Link to comment
Share on other sites

Thank you for the tip! I dug through the current U-Boot configs for this board and found the new addresses which have solved this problem. I'm listing them below. Abort the U-Boot autoboot sequence and run the following commands:

Tegra210 (P3450-0000) # setenv kernel_addr_r 0x80080000
Tegra210 (P3450-0000) # setenv pxefile_addr_r 0x90100000
Tegra210 (P3450-0000) # setenv scriptaddr 0x90000000
Tegra210 (P3450-0000) # setenv fdt_addr_r 0x83000000
Tegra210 (P3450-0000) # setenv ramdisk_addr_r 0x83420000

 

Once those are set you can `run distro_bootcmd` to verify. If that works, once you restart and skip autoboot again you can run `saveenv` to store all the new values and it should be permanent.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines