Nvidia Jetson Orin Nano Dev Board: UEFI Binary Size Issue with Custom Logo
Issue Overview
Users of the Nvidia Jetson Orin Nano Developer board are experiencing an issue when attempting to customize the boot logo. Specifically, when replacing the default 640×480 NVIDIA logo (nvidiagray480.bmp) with a custom BMP file of similar dimensions and file size, the resulting UEFI binary (uefi_jetson_RELEASE.bin) becomes significantly larger. This increase in size, from approximately 3.3MB to 3.9MB or even 4MB, causes the flashing process to fail as the UEFI partition cannot accommodate the larger file.
The problem occurs during the bootloader flashing process and affects the ability to boot from the updated slot. Users have reported that after attempting to flash the custom logo, the affected boot slot becomes unbootable.
Possible Causes
-
Image Compression Differences: The default NVIDIA logo files appear to have better compression compared to user-provided BMP files, even when dimensions and file sizes are similar.
-
BMP File Properties: Differences in BMP file properties such as Image Length, Pixels Per Meter X, and Pixels Per Meter Y may contribute to the issue.
-
UEFI Build Process: The UEFI build process may handle custom BMP files differently, resulting in less efficient compression or inclusion of additional data.
-
Software Version Compatibility: The issue was initially observed with JetPack 6.0 Developer Preview (rel-36.2), which may have had limitations or bugs related to custom logo handling.
Troubleshooting Steps, Solutions & Fixes
-
Verify JetPack Version:
Ensure you are using the latest JetPack version (6.0 GA or later, rel-36.3). Older versions like rel-36.2 were developer previews and should not be used.To check your current version:
sudo ./flash.sh -k A_cpu-bootloader -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit nvme0n1p1
Look for the L4T BSP Information in the output.
-
Update to Latest JetPack:
If using an older version, update to the latest JetPack:- Update SDK Manager to the latest version (e.g., 2.1.0.11682 or newer).
- Use SDK Manager to install the latest JetPack version.
- Alternatively, download the latest BSP from the NVIDIA Developer website.
-
Optimize Custom Logo File:
- Ensure your custom BMP file matches the properties of the original NVIDIA logo as closely as possible.
- Use image editing software to adjust the BMP file properties, particularly the Image Length, Pixels Per Meter X, and Pixels Per Meter Y values.
- Experiment with different BMP compression settings to achieve a file size closer to the original.
-
Verify BMP File Properties:
Use ExifTool to compare your custom BMP file with the original NVIDIA logo:exiftool your_custom_logo.bmp exiftool nvidiagray480.bmp
Pay attention to Image Length, Pixels Per Meter X, and Pixels Per Meter Y values.
-
Test with Multiple BMP Files:
Try different 640×480 BMP images to see if any produce a correctly sized UEFI binary. -
Revert to Default Logos:
If unable to resolve the issue, temporarily revert to the original NVIDIA logo files for critical updates or deployments. -
Monitor for Updates:
Keep an eye on NVIDIA forums and documentation for potential fixes or workarounds in future software releases. -
Seek NVIDIA Support:
If the issue persists after trying these steps, consider reaching out to NVIDIA support with detailed logs and examples of the BMP files causing issues.
While a definitive solution is not yet available, NVIDIA has acknowledged the issue and confirmed that it’s related to compression differences between the default and custom logo files. Users should stay updated with the latest JetPack releases and NVIDIA communications for potential resolutions to this UEFI binary size issue.