Replace UEFI boot splash screen/logo (Jetpack 5.0.1 / R35.1)

Hi NVIDIA,
I would like to change the UEFI boot splash screen logo on my Xavier NX production module. I have looked into the information provided in the following posts:

UEFI Adaptation - Customized Logo
Customized Logo for Xavier NX
Replace items after build UEFI image
Jetson Xavier NX L4T 35.1 suppress bootloader messages on THS0

and have tried the following on my host machine (Ubuntu 20.04):
logo_files.zip (12.0 KB)

Customized Logo for Xavier NX - #11 by WayneWWW

Home · NVIDIA/edk2-nvidia Wiki · GitHub

Make sure all required software components are present

sudo apt -y install git python3 python3-setuptools python3-pip

Create directory and enter it

mkdir -p ~/Downloads/edkrepo
cd ~/Downloads/edkrepo

Get EDK2-source and extract

wget https://github.com/tianocore/edk2-edkrepo/releases/download/edkrepo-v2.1.2/edkrepo-2.1.2.tar.gz
tar xvf edkrepo-2.1.2.tar.gz

Install

sudo ./install.py --user ${USER}
cd …

Change owner of hidden folder and files

sudo chown -R ${USER}. ~/.edkrepo

Configure edkrepro

edkrepo manifest-repos add nvidia GitHub - NVIDIA/edk2-edkrepo-manifest: NVIDIA fork of tianocore/edk2-edkrepo-manifest main nvidia

Create workspace

edkrepo clone nvidia-uefi NVIDIA-Jetson main

Build UEFI

cd nvidia-uefi

Install requirements

sudo apt update
sudo apt -y install build-essential uuid-dev git gcc python3 virtualenv gcc-aarch64-linux-gnu device-tree-compiler

Install Mono

sudo apt -y install mono-complete

Install nuget

sudo apt -y instal nuget

Provide information on how to proceed

echo “[INFO]: Add custom UEFI splah screen images to:”
echo “[INFO]: ~/Downloads/nvidia-uefi/edk2-nvidia/Silicon/NVIDIA/Assets/”
echo “”
echo “[INFO]: Modify Open the following file for editing:”
echo “[INFO]: ~/Downloads/nvidia-uefi/edk2-nvidia/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc”
echo "[INFO]: Search for ‘logo files’ and change the image names to point to "
echo “[INFO]: the new UEFI splash screen images.”

Build the Jetson platform with Stuart

echo “”
echo “[INFO] Execute the following command to build the new UEFI image:”
echo “[INFO] bash edk2-nvidia/Platform/NVIDIA/Jetson/build.sh”

Rename release image

echo “”
echo “[INFO]: Copy the new image file:”
echo “[INFO]: ~/Downloads/nvidia-uefi/images/uefi_Jetson_RELEASE.bin”
echo “[INFO]: to:”
echo “[INFO]: <base_dir>/Linux_for_Tegra/bootloader/uefi_jetson.bin”
echo “”
echo “[INFO]: Now the bootloader partition can be flashed using:”
echo “[INFO]: sudo ./flash.sh -r -k cpu-bootloader jetson-xavier-nx-devkit-emmc mmcblk0p1”

I have attached the two logo files that I have been using, and the modification in “NVIDIA.fvmain.fdf.inc” looks like:

Logo Files

FILE FREEFORM = gNVIDIAPlatformLogoGuid {
SECTION RAW = Silicon/NVIDIA/Assets/frontmatec-logo-480.bmp
SECTION RAW = Silicon/NVIDIA/Assets/frontmatec-logo-720.bmp
# SECTION RAW = Silicon/NVIDIA/Assets/nvidiagray480.bmp
# SECTION RAW = Silicon/NVIDIA/Assets/nvidiagray720.bmp
# SECTION RAW = Silicon/NVIDIA/Assets/nvidiagray1080.bmp

After making the above changes and flashing the device, I now get a quick which flash upon booting, but no logo and no messages (as those described in Jetson Xavier NX L4T 35.1 suppress bootloader messages on THS0).

Do you have any suggestions why it is not working? What am I doing wrong or what is missing?
Thanks.

hi hetfood6,

Could you build the UEFI image successfully and replace uefi_jetson.bin in Linux_for_Tegra/bootloader/uefi_jetson.bin after you finish the above steps?

Could you also help to add the logo image with 1080p?

SECTION RAW = Silicon/NVIDIA/Assets/frontmatec-logo-1080.bmp

Hi KevinFFF,
As suggested, I added a third image to the “…/nvidia-uefi/edk2-nvidia/Silicon/NVIDIA/Assets” folder and added the suggested line in the “…/nvidia-uefi/edk2-nvidia/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc”.

After removing the “Build”, “Conf” and “images” folders in the “nvidia-uefi” root, I executed the “build.sh” again and then copied the new “…/nvidia-uefi/images/uefi_Jetson_RELEASE.bin” to “…/Linux_for_Tegra/bootloader/uefi_jetson.bin” as previously described.

I then did a new flash, initially only flashing the “cpu-bootloader” partition, and then a full flash, but the result remains the same:

  • An initial delay with a black screen
  • A short flicker of a completely white screen
  • And then the normal boot messages

I then tried to remove “-” from image file names - long shot, but maybe that could make a difference, but it didn’t. So in short, it still doesn’t work.

Could you replace nvidiagray480.bmp with your frontmatec-logo-480.bmp (and also720 and 1080)?
In other words, use the original name(nvidiagrayXXX.bmp) for your logo file.

So, can your board boot up as normal?

I tried to rename my logo files/overwrite original files as suggested. But the result remains the same - no splash screen just a flicker of a blank screen.

And to answer the second question: Yes, it otherwise boots normally!

Wanting to verify that it is not a glitch in the flash-process, I reverted back to the original “…/Linux_for_Tegra/bootloader/uefi_jetson.bin” file and flashed the device. Now the original NVIDIA splash screen is show. So the flashing itself works as expected.

As a third test, I now completely deleted the “…/nvidia-uefi” directory and cloned it again, and WITHOUT CHANGING ANYTING, I executed the build-script, updated the “uefi_jetson.bin” file in the “bootloader” folder and then flashed my device again.
And as before, I see a white flash instead of the (NVIDIA) splash screen.

Clearly something in the UEFI-build process is no working as expected. I have attached the “BUILDLOG_Jetson.txt” (as a ZIP-file), in case any useful information can be extracted from this.
BUILDLOG_Jetson.zip (167.5 KB)

How did you update uefi_jetson.bin to the board?
You could flash UEFI only with the following command.

$ sudo ./flash.sh -k cpu-bootloader <config> mmcblk0p1

Do you have Xavier NX devkit and try to reproduce the same behavior on the devkit?

Or you could provide the logo image files here. (there’s no 1080 logo file above)

Please find all three splash logo images attached. As you can see, the file sizes are identical to those of the original files.
fmt_logo_files.zip (37.0 KB)
Regarding the logo-files, please keep in mind, that i my previous reply, I tried to build the “uefi_jetson.bin” using the ORIGINAL NVIDIA LOGO FILES. And still it didn’t work when I had flashed the device. So I think it is not my logo-files that are the problem.

When it comes to flashing commands, I have tried:

$ sudo ./flash.sh jetson-xavier-nx-devkit-emmc mmcblk0p1
$ sudo ./flash.sh -r -k cpu-bootloader jetson-xavier-nx-devkit-emmc mmcblk0p1

They both produce the same result.

Unfortunately I don’t have a development kit readily available, but I will see if I can find one.