edolnx Posted October 6, 2023 Posted October 6, 2023 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. 0 Quote
Gunjan Gupta Posted October 7, 2023 Posted October 7, 2023 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 0 Quote
edolnx Posted October 8, 2023 Author Posted October 8, 2023 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. 0 Quote
Recommended Posts
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.