Skip to content

Cart

Your cart is empty

Boot Logo Customization on JetPack 5.1.4 for NVIDIA® Jetson™ Modules

WHAT YOU WILL LEARN?

1- UEFI Sources Installation

2- Updating Files and Flashing the Jetson Module

3- Changing the Login Logo

ENVIRONMENT

Hardware: DSBOARD-ORNX

OS: Ubuntu 20.04


In this tutorial we used NVIDIA Jetson ORIN-NX module on DSBOARD-ORNX but you can use all types of Jetson module.



Attention: HDMI must be connected during installation for the system to operate stably. (For Rev 5.1.2 and earlier.)

Install Docker

The process for installing docker will depend on your host operating system.


sudo apt install docker.io


sudo usermod -a -G docker ${USER}



Then Reboot The System.




Configure Docker

To build UEFI for NVIDIA Platforms, we'll use the Ubuntu-22 dev imagefrom the tianocore/containers repository.We need to export someparameter.


export EDK2_DEV_IMAGE="ghcr.io/tianocore/containers/ubuntu-22-dev:latest"
export EDK2_USER_ARGS="-v \"${HOME}\":\"${HOME}\" -e EDK2_DOCKER_USER_HOME=\"${HOME}\""
export EDK2_BUILD_ROOT="/build"
export EDK2_BUILDROOT_ARGS="-v \"${EDK2_BUILD_ROOT}\":\"${EDK2_BUILD_ROOT}\""
alias edk2_docker="docker run -it --rm -w \"\$(pwd)\" ${EDK2_BUILDROOT_ARGS} ${EDK2_USER_ARGS} \"${EDK2_DEV_IMAGE}\""

Verify the docker environment with simple hello command If necessary,the image will be pulled.


edk2_docker echo hello

Configure Edkrepo

Edkrepo uses manifests to build workspaces and manifests are fetched from repositories. Before edkrepo can be used, we need to create it's base configuration in our home directory.


edk2_docker init_edkrepo_conf
edk2_docker edkrepo manifest-repos add nvidia https://github.com/NVIDIA/edk2-edkrepo-manifest.git main nvidia

Create Workspace

Now, edkrepo can be used to create workspaces for NVIDIA platforms.

In this tutorial we will create workspace for Jetpack 5.1.4 so that our command is

Other Jetpack versions are avaible in https://github.com/NVIDIA/edk2-nvidia/wiki/Combos


edk2_docker edkrepo clone nvidia-uefi-r35.6.0 NVIDIA-Platforms r35.6.0-updates

Updating Files and Flashing the Jetson Module

After installation process we need to place our logo image to inside UEFI files and configure following file.

Copy logo image to nvidia-uefi/edk2-nvidia/Silicon/NVIDIA/Assets. File format should be.bmp.


cp forecr-boot-screen-1080.bmp nvidia-uefi-r35.6.0/edk2-nvidia/Silicon/NVIDIA/Assets/
cp forecr-boot-screen-720.bmp nvidia-uefi-r35.6.0/edk2-nvidia/Silicon/NVIDIA/Assets/
cp forecr-boot-screen-480.bmp nvidia-uefi-r35.6.0/edk2-nvidia/Silicon/NVIDIA/Assets/

After that edit nvidia-uefi/edk2-nvidia/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc file. We need to change nvidia gray bmp files with our bmp file’s name.


sed -i 's/nvidiagray480.bmp/forecr-boot-screen-480.bmp/g' nvidia-uefi-r35.6.0/edk2-nvidia/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc
sed -i 's/nvidiagray720.bmp/forecr-boot-screen-720.bmp/g' nvidia-uefi-r35.6.0/edk2-nvidia/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc
sed -i 's/nvidiagray1080.bmp/forecr-boot-screen-1080.bmp/g' nvidia-uefi-r35.6.0/edk2-nvidia/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc

Afterwards,Goto nvidia-uefi file. Run following command to build UEFI. It will take some time.


cd nvidia-uefi-r35.6.0/
edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh

Go to the images directory under nvidia-uefi. Copy the uefi_Jetson_RELEASE.bin file to Linux_for_Tegra/bootloader/uefi_Jetson.bin

Go to the images directory under nvidia-uefi. Copy the BOOTAA64_Jetson_RELEASE.efi file to Linux_for_Tegra/bootloader/BOOTAA64.efi



cd images/
cp uefi_Jetson_RELEASE.bin /home/user/nvidia/nvidia_sdk/JetPack_5.1.4_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra/bootloader/uefi_jetson.bin
cp BOOTAA64_Jetson_RELEASE.efi /home/user/nvidia/nvidia_sdk/JetPack_5.1.4_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra/bootloader/BOOTAA64.efi

For ORIN NX Jetpack 5.1.4, the full path of this file is:


~/nvidia/nvidia_sdk/JetPack_5.1.4_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra/bootloader/uefi_jetson.bin


~/nvidia/nvidia_sdk/JetPack_5.1.4_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra/bootloader/BOOTAA64.efi

Changing the Login Logo

Copy 1080p PNG login logo into module and move into /usr/share/backgrounds. Then, change two xsessionrc files with sed command:


sudo mv FORECR_Login_Logo.png /usr/share/backgrounds/FORECR_Login_Logo.png
sed -i 's/NVIDIA_Login_Logo/FORECR_Login_Logo/g' ~/.xsessionrc
sudo sed -i 's/NVIDIA_Login_Logo/FORECR_Login_Logo/g' /etc/skel/.xsessionrc
cat ~/.xsessionrc | grep logo_path
cat /etc/skel/.xsessionrc | grep logo_path



Thank you for reading our blog post.