I have been struggling to get the Orin NX 8GB (Forecr carrier board) to boot from a usb device (SSD connected via USB) that I flashed following the jetson documentation. It seems that the USB device is partitioned properly when I inspect it when the jetson has booted (from NVMe) but on boot the UEFI bootloader only sees the two NVMe drives and not the USB device. I have verified that the default boot order looks for USB devices first before checking NVMe devices but my hypothesis is that the problem lies with the USB device not enumerating early enough in the boot sequence. I have also looked at the extlinux.conf and it looks like the primary partition is for USB? this is what I am seeing in extlinux.conf:
Is there anything I can do to test this hypothesis? Or is there anything I can do to fix this? What would be the reason a USB would fail to âact as a bootable deviceâ?
Hi wayne,
Thank you for getting back to me. I was able to boot from the USB drive, but only by adding the entry into the extlinux.conf of the nvme drives.
However, I need to get this behavior to work without the NVMe drives so that the USB can act as a fallback boot drive should the NVMe fail. I will reach out to Forecr and ask for their help as well. I posted here originally because I thought the boot sequence is handled by the jetson and since the USB ports are operating normally I didnât think it was a carrier board issue.
Any further assistance would be greatly appreciated. Thank you!
I was able to boot from the USB drive, but only by adding the entry into the extlinux.conf of the nvme drives.
This means USB drive is able to work in kernel. If you didnât flash any customized software to this board, it means default NVIDIA BSP can work or partially work on this board.
UEFI is not able to detect it. It means above configuration cannot work in UEFI stage.
Please be aware that even UEFI bootloader has software setting w.r.t the carrier board in use. It is not always same.
If you want us to help check, you could put same USB drive to NVIDIA devkit and see if UEFI can detect it or not. If it cannot, then it sounds a general software problem in UEFI that needs further check by us. If it can, then this would be an issue related to the custom board you are using.
But generally this should be reported by the vendor, but not you.
Please be aware that everything on a custom board requires a software update. You cannot just rely on default Jetpack for every kind of carrier board. Even changing a GPIO on board design would require device tree change.
For example, NV devkit is using a chip called fusb301 to control the type C usb port on it. What if a custom board that has no such chip on it? What if a custom board that even has no type C port on it? Do you think default jetpack would work on such case? Of course not.
Wayne, you are the man! Thank you for this detailed analysis, this was super helpful and informative!
I dont currently have a dev kit board but I am working on getting one so I can better understand the boot process and rely on the Nvidia docs a little more. I will be back when I have secured this!