Customized kernel r36 for JetPack 6.2 and /boot/ issues
Issue Overview
Users are experiencing issues when attempting to build and install a custom kernel (r36) for JetPack 6.2 on the Nvidia Jetson Orin Nano Dev board. After following the provided instructions for kernel customization, the bootloader hangs with the message "EFI stub: Exiting boot services…". The problem appears to be related to the /boot/Image file and potentially missing initrd files.
Possible Causes
- Incomplete or incorrect kernel build process
- Missing or improperly generated boot files
- Incompatibility between the custom kernel and the bootloader
- Incorrect configuration in the extlinux.conf file
- Issues with the SD card image creation process
Troubleshooting Steps, Solutions & Fixes
-
Verify kernel build process:
- Ensure all steps in the Nvidia documentation for kernel customization are followed correctly
- Double-check that all required dependencies are installed
- Rebuild the kernel if necessary
-
Generate missing boot files:
sudo make modules_install sudo cp arch/arm64/boot/Image /boot/Image sudo cp arch/arm64/boot/dts/*.dtb /boot/dtb/
-
Compare boot directory contents:
- Check the contents of the /boot directory in both the custom and Nvidia SDK images
- Ensure all necessary files are present in the custom image
-
Verify extlinux.conf configuration:
- Check /boot/extlinux/extlinux.conf
- Ensure LINUX and INITRD entries point to the correct files
- Verify that the specified DTB file exists
-
Regenerate initrd:
sudo update-initramfs -c -k $(uname -r) sudo cp /boot/initrd.img-$(uname -r) /boot/initrd
-
Flash the entire system:
- Use the following command to flash the entire system instead of using an SD card image:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device mmcblk0p1 -c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-orin-nano-devkit internal
- Use the following command to flash the entire system instead of using an SD card image:
-
Put the Jetson Orin board into recovery mode before flashing:
- Connect the USB cable between the host PC and the Jetson board
- Press and hold the RECOVERY button
- Press and release the RESET button
- Release the RECOVERY button after 2 seconds
-
Check for error messages during the flashing process:
- Pay attention to any error messages, particularly those related to unrecognized module SKUs
-
Verify QSPI flash:
- Ensure that QSPI is properly flashed when modifying the kernel
-
Collect and analyze boot logs:
- If possible, connect the Jetson board via UART and capture the full boot log
- Analyze the log for any error messages or unexpected behavior
-
Try copying boot files from Nvidia image:
- As a temporary workaround, copy the "/boot/Image" and "/boot/initrd" files from the SDK Nvidia image to the custom image
-
Check for kernel compatibility:
- Ensure that the custom kernel is compatible with the specific Jetson Orin Nano Dev board model and JetPack version
-
Verify partition layout:
- Check if the partition layout in the custom image matches the expected layout for the Jetson Orin Nano Dev board
-
Update bootloader if necessary:
- Consider updating the bootloader to ensure compatibility with the custom kernel
If the issue persists after trying these steps, consider reaching out to Nvidia developer support or community forums for further assistance, providing detailed information about the build process, error messages, and boot logs.