PXE Installation Issues with Jetson Orin Nano Developer Kit
Issue Overview
Users are experiencing difficulties with the PXE (Preboot Execution Environment) installation process for the Jetson Orin Nano Developer Kit. The main challenges include:
- Uncertainty about which files to place where for PXE installation
- Confusion about whether a complete PXE installation is possible or if initial USB flashing is required
- Difficulty in locating specific files like "efi/grubnetaa64.efi.signed" and "initrd"
- Issues with the boot process getting stuck after GRUB initialization
- Challenges in automating user configuration for mass deployment
These issues are primarily encountered during the initial setup and installation phase, impacting users’ ability to efficiently deploy Jetson devices, especially in scenarios requiring simultaneous setup of multiple units.
Possible Causes
-
Incomplete documentation: The existing documentation, while detailed, may not provide a clear, step-by-step guide specifically for PXE installation.
-
Missing or misplaced files: Critical files for PXE boot might be missing or located in unexpected directories.
-
Incorrect configuration: DHCP, TFTP, or NFS servers may be improperly configured.
-
Bootloader issues: The QSPI memory on the module may not be correctly flashed with the necessary bootloader.
-
Hardware compatibility: There might be compatibility issues with specific hardware configurations.
-
Software version mismatches: Inconsistencies between JetPack, L4T, and other software versions could cause conflicts.
-
User configuration automation: Lack of a streamlined process for automating user setup in headless installations.
Troubleshooting Steps, Solutions & Fixes
-
Prepare the environment:
- Download JetPack 5.1.2 and unpack the Linux4Tegra folder
- Run
sudo ./apply_binaries.sh
in the Linux4Tegra directory to populate necessary files
-
Set up the PXE server:
- Follow the guide at https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/FlashingSupport.html?highlight=cpio#configuring-a-pxe-boot-server-for-uefi-bootloader-on-jetson
- Ensure DHCP, TFTP, and NFS servers are correctly configured
-
Prepare boot files:
- Copy
Image
andinitrd
files fromLinux4Tegra/rootfs/boot/
to the TFTP directory - Locate
efi/grubnetaa64.efi.signed
(should be available after runningapply_binaries.sh
)
- Copy
-
Flash the bootloader:
sudo ./flash.sh --no-systemimg -c bootloader/t186ref/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit mmcblk1p1
-
Configure GRUB:
- Set up
grub.cfg
to point to the correctImage
andinitrd
files - Refer to https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/Bootloader/UEFI.html#grub-support for GRUB support
- Set up
-
Troubleshoot boot issues:
- If the boot process seems stuck, connect a monitor to check for any GUI prompts
- Capture complete boot logs for analysis (avoid screenshots, use text files)
-
Automate user configuration:
- Run the following script to skip OEM config:
sudo L4T_INITRD_SKIP_OEM_CONFIG=1 ./flash.sh jetson-orin-nano-devkit mmcblk0p1
- If it doesn’t work the first time, try flashing again
- Run the following script to skip OEM config:
-
For mass deployment:
- Consider creating a custom script that combines all necessary steps
- Explore options for network-based configuration management tools
-
Additional resources:
- Refer to https://elinux.org/Jetson/L4T/peripheral/#PXE_boot for alternative PXE boot instructions
- Consult the official Jetson documentation for the most up-to-date information
-
Feedback for improvement:
- Users have suggested reorganizing the documentation to provide clearer, method-specific instructions for different installation types (e.g., a dedicated PXE installation section)
If issues persist after following these steps, consider reaching out to NVIDIA support or posting detailed logs and configuration files in the developer forums for further assistance.