Custom boot experience

Hi Team,

I want to replace the default NVIDIA boot logo with a custom splash screen on my Jetson Orin Nano.

Could you please guide me on how to implement this? Here are my system details:

  • JetPack Version: 6.2.1 (L4T R36.4.7)
  • OS: Ubuntu 22.04
  • Carrier Board: Jetson-Orin-IO-BASE (Waveshare)**
    **

Hello @saicharan.g!

Based on the title and content of your topic, it looks like it may receive better visibility and feedback in a different category. We took the liberty of moving it for you.

If this was an incorrect assessment, please send me a direct message.

Disclaimer: this moderation suggestion and message were generated with AI assistance.

Disclaimer: This response was generated as a potential AI-assisted troubleshooting guide. Steps should be tested and validated carefully in your development environment.

Customizing the UEFI Boot Splash Screen on JetPack 6.2.1 (L4T R36.4.7)

On JetPack 6, NVIDIA utilizes EDK2 UEFI for early boot graphics instead of the legacy CBoot pipeline. Replacing the early boot logo requires updating the asset bitmaps inside the UEFI source tree, compiling the binary, and flashing the updated A_cpu-bootloader partition.

1. Set Up the UEFI Source Environment (Host Machine)

On your Linux host machine where your Linux_for_Tegra BSP directory is located, initialize edkrepo and clone the NVIDIA EDK2 tree:

Install edkrepo tool

sudo apt-get update && sudo apt-get install -y python3-pip git
pip3 install edkrepo

Add NVIDIA manifest repository and clone r36.4 source

edkrepo manifest-repos add nvidia 
edkrepo clone nvidia-uefi NVIDIA-Jetson r36.4.0

2. Replace Boot Logo Bitmaps

Navigate to the Asset directory inside the cloned repository and replace the default NVIDIA splash screen bitmaps with your custom logo images (maintaining the BMP format and original dimensions/filenames):

cd nvidia-uefi/edk2-nvidia/Silicon/NVIDIA/Assets/

# Replace the bitmap assets with your custom images:
# - nvidiagray480.bmp
# - nvidiagray720.bmp
# - nvidiagray1080.bmp

Note: If you change file names or add new resolution assets, remember to register them inside nvidia-uefi/edk2-nvidia/Platform/NVIDIA/NVIDIA.fvmain.fdf.

3. Build the Updated UEFI Binary

Build the new uefi_jetson.bin target binary:

cd ~/nvidia-uefi
edkrepo sync
python3 edk2-nvidia/Platform/NVIDIA/Jetson/build.py

4. Flash Partition to Jetson Orin Nano

Copy the freshly compiled binary to your L4T bootloader directory and flash the CPU bootloader partition without reflashing the entire OS:

# Copy binary to your L4T BSP directory
cp images/uefi_jetson.bin <path-to-your>/Linux_for_Tegra/bootloader/uefi_jetson.bin

# Put Jetson Orin Nano into Recovery Mode, then run:
cd <path-to-your>/Linux_for_Tegra/
sudo ./flash.sh -k A_cpu-bootloader jetson-orin-nano-devkit internal

Optional: Replacing Ubuntu / GNOME Desktop Splash Logo

If you also want to replace the desktop login wallpaper or avatar displayed after UEFI hands control over to the OS kernel:

On the Jetson Orin Nano target board:

sudo cp /path/to/your_custom_logo.png /usr/share/backgrounds/NVIDIA_Login_Logo.png
sudo cp /path/to/your_custom_logo.png /usr/share/backgrounds/jetson_logo.png