Hi everyone,
I’m developing an application for production (for a fleet) on a Jetson Orin Nano devKit and I need to completely skip the UEFI boot screen (NVIDIA logo, “Press ESC” prompt, and all boot log messages). I have tried multiple methods but none provided the expected result, if someone could tell me if I’m in the good direction or if BalenaOS/BalenaCloud provides a built in solution.
Hardware: Nvidia Jetson Orin Nano 8GB (SD) Devkit NVME, running BalenaOS 6.10.26, L4T 36.4.7.
What I’ve try/done so far:
-
I have tried to activate the Fast Boot from the BIOS but issues with “Submit Fail for Form: Grace Configuration. Press D(d) to discard the changes form this form, Press G(g) to go to this form”
-
Set EFI timeout to 0 via
efibootmgr -t 0andL4TDefaultBootModeEFI variable, reduced the display visibility time but didn’t eliminate the screen. I have also tried to set different
RESIN_HOST_CONFIG variables but it didn’t solve the issue. -
Built a custom UEFI firmware from NVIDIA’s edk2-nvidia source on an x86 Ubuntu machine using Docker:
-
Cloned source:
edk2_docker edkrepo clone nvidia-uefi NVIDIA-Platforms r36.4.0-updatesinto/build/nvidia-uefi -
Modified
/build/nvidia-uefi/edk2-nvidia/Platform/NVIDIA/Jetson/Jetson.defconfig:-
Added
CONFIG_SINGLE_BOOT_L4T_LAUNCHER=y(disables ESC menu/boot UI) -
Added
# CONFIG_LOGO is not set(removes NVIDIA logo) -
Removed
CONFIG_NVIDIA_DISPLAY=yand added# CONFIG_NVIDIA_DISPLAY is not set(disables graphics console entirely no display output from UEFI at all)
-
-
Commented out Error Print lines to try to prevent the warning/errors not relevant to display during the boot in order to not display the logs.
-
Build command:
edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh -
Flashed the custom UEFI to QSPI using NVIDIA’s flash tools:
-
Downloaded L4T BSP R36.4.3 to
~/Linux_for_Tegra -
Copied custom binary:
cp /build/nvidia-uefi/images/uefi_Jetson_RELEASE.bin ~/Linux_for_Tegra/bootloader/uefi_jetson.bin -
Extracted sample rootfs + ran
apply_binaries.sh -
Put Jetson in recovery mode (jumper on devkit, USB-C to host)
-
Flashed QSPI only:
sudo ./flash.sh --qspi-only jetson-orin-nano-devkit-nvme nvme0n1p1
-
-
-
Flash result: NVIDIA logo and boot menu eliminated. Still had some log messages in a text window (FindPartitionInfo errors, legacy interface warning, CheckDtbExists). I think they aren’t from the UEFI source, they come from other boot stages.
Is the custom boot is a coherant way or BalenaCloud ecosystem provides a solution for this?