Changing Boot Order on Jetson Orin Nano Developer Kit Without Display
Issue Overview
Users of the Jetson Orin Nano Developer Kit are encountering difficulties when trying to change the boot order without access to a display. This issue is particularly problematic for large-scale production environments where configuring the first factory boot for numerous boards is necessary. The default boot sequence relies on NVME as the primary boot device, but users need the flexibility to boot from alternative media such as uSD card, USB drive, or network as failsafe options.
Possible Causes
-
Limited access to UEFI settings: Without a display, users cannot easily access the UEFI interface to modify boot settings.
-
Default configuration: The system’s default boot priority may not align with the desired failsafe boot options.
-
Production scale requirements: The need to configure multiple boards efficiently without individual manual intervention.
-
Lack of automated boot order configuration: Absence of a streamlined method to set boot preferences for mass production scenarios.
Troubleshooting Steps, Solutions & Fixes
-
Use Serial Console:
- Implement a serial debug console to access the Jetson Orin Nano Developer Kit without a display.
- Follow the guide provided by JetsonHacks for setting up a serial debug console.
- Connect the serial console and press the Esc key during boot to access the boot sequence selection menu.
-
Modify Boot Priority Configuration:
- Locate and edit the BootOrderNvme.dtbo file.
- Modify the DefaultBootPriority data field to change the boot order. For example:
gNVIDIATokenSpaceGuid { DefaultBootPriority { data = "usb,nvme,emmc,sd,ufs"; locked; }; }
- This configuration sets the boot priority to USB, NVME, eMMC, SD card, and UFS in that order.
-
Automate Boot Order Configuration:
- For large-scale production, develop a script or tool that can modify the BootOrderNvme.dtbo file automatically.
- This script can be integrated into the production process to set the desired boot order for multiple boards efficiently.
-
Create Custom Boot Images:
- Prepare custom boot images with pre-configured boot priorities for different scenarios.
- These images can be flashed to the devices during production, eliminating the need for individual configuration.
-
Network Boot Configuration:
- If network booting is a priority, ensure that the network boot option is properly configured in the boot order.
- Set up a PXE server to facilitate network booting for multiple devices.
-
Failsafe Boot Options:
- Implement a failsafe mechanism that attempts to boot from alternative media if the primary boot device fails.
- This can be achieved by carefully ordering the boot priorities and ensuring that fallback options are always available.
-
Documentation and Training:
- Create comprehensive documentation for the production team on how to configure and verify boot orders without displays.
- Provide training on using serial consoles and automated tools for boot configuration.
-
Verification Process:
- Develop a testing procedure to verify that the boot order has been correctly set on each device.
- This could involve automated scripts that check the boot configuration or a simple boot test that ensures the device starts from the intended media.
By implementing these solutions, users should be able to effectively manage boot orders for Jetson Orin Nano Developer Kits in both individual and large-scale production scenarios, even without access to displays.