Hello! How can I change the Nvidia boot logo to my own?

Hello! How can I change the Nvidia boot logo to my own?

Not sure with Jetson nano but usually is required to recompile kernel in order to change boot logo.

Hi svv75, please refer to this post: https://devtalk.nvidia.com/default/topic/1061835/jetson-nano/what-is-the-format-of-the-quot-bmp-quot-partition-/post/5383368/#5383368

There currently isn’t an easy way to change it, but hopefully the tool will be released in the future.

See also: https://devtalk.nvidia.com/default/topic/1031327/jetson-tx2/change-cboot-boot-logo-l4t-28-2-/post/5389622/#5389622. There’s a public (non-NV) tool there to create a custom BMP blob. I haven’t tested it here.



Hello, Tom.
Where is a bmp.blob?
I can not mount none partition of the card except the section with Ubuntu. But there he is not. I understand that it should be in the bootloader partition, but how to mount it?

From Linux? I don’t know/don’t do that. I’m a bootloader guy. So I’d change the bmp.blob on my flash host, put it in my L4T ‘bootloader’ directory, and then reflash the target. I’m sure someone else here can tell you how to access the BMP partition on the SD-card from Linux, but what’s the point of that, unless you intend to use the tool I pointed to above on the Ubuntu install that’s running on the Nano? I don’t think that’s the right path, but up to you.

Note too that if you do create your own BMP logo (bmp.blob), it has to either fit within the BMP partition (81920 bytes IIRC), or you’ll need to compress it with lz4c like we do when we create the release BSP. It would be great if the support team could get the BMP blob build tools released so you wouldn’t have to hack this together.


Thanks Tom. I created the bmp.blob file using the tool you specified. I compressed it with lz4t. But I don’t quite understand where is the /bootloader folder and the flash.sh script for my Nano.

Sorry Tom, I found this. This is in BSP. I will try it. Just wanted to clarify, do I need to pack by lz4c a ready-made blob file or source bmp file?

I got a logo for Jetson Nano! I took the code of tool by jwatte and modified it a bit. I hope that he will not be offended by me. The following steps need to be carried out to create a bmp.blob with own logo.

  1. sudo apt install liblz4-tool
  2. git clone https://github.com/VladimirSazonov/jw-boot-logo-for-Jetson-Nano
  3. cd jw-boot-logo-for-Jetson-Nano
  4. git clone https://github.com/nothings/stb
  5. g++ -o jw_boot_image main.cpp
  6. ./jw_boot_image [path_to_your_logo]
  7. Make sure there is an output file named "bmp.blob"
  8. Copy "bmp.blob" into [path_to_your_bsp]/Linux_for_Tegra/bootloader/
  9. cd [path_to_your_bsp]/Linux_for_Tegra/
  10. Finish installation by the command: sudo ./flash.sh -k BMP --image bootloader/bmp.blob jetson-nano-qspi-sd mmcblk0p1

To svv75,
Could you share how to make proper bmp.blob? I failed to flash for so big bmp.blob with 9M…

If you did everything according to my instructions, then check the output of jw_boot_image. Is there a line that bmp.blob is too big? If so, then you have not received the final blob. Simplify the logo image so that it is better compressed. Use a minimum of colors. Do not use gradients and smoothing. Use a small image on a monochrome background. Use blank images for screen resolutions that you don’t need. Pay attention to how the Nvidia logo is made and you will understand everything.

Hello, I followed your instructions about converting my png to the NVIDIA blob format, it always produce me a file of 9M (no error is displayed when creating the blob, so I assume it went fine).

The thing I’d like to know is how do you compress this 9M blob to the actual size of the NVIDIA blob ( <80k ).

I compressed it by running the command $lz4c bmp.blob
But the file is invalid I think, because no logo is displayed at boot when I replaced the nvidia blob on the bootloader partition.

I tried to remove the 192 bytes header from my 9M blob, compress it with lz4c and put back the header on it, but it’s still not working.

@twarren could you explain more in details how you did the compression for the official NVIDIA Logo please.

Hi Tangfrere,

Please open a new topic for your issue. Thanks

Hello, Tangfrere.

Read the instructions carefully. A blob is created using an application downloaded from a github. No need to do anything manually.

Sorry, it’s my bad. I was still using the old tool, instead of the github link you posted.
It works finely indeed, thanks.


After I use the command to flash my logo:
sudo ./flash.sh -k BMP --image bootloader/bmp.blob jetson-nano-qspi-sd mmcblk0p1

When I entered the system for the first time, my logo was displayed, but after I entered the ubuntu desktop and restarted, the nvidia logo was displayed again,Do you know how to solve that?

1 Like

I did not try yet, but I think for the second Logo, you just have to replace the file located at /usr/share/backgrounds/NVIDIA_Login_Logo.png

I have the same problem, my logo just displayed when auto reboot after flash. Restart the jetson nano again, the logo is still nvidia. It seems like the kernel was automatic restored. Have you solved this problem?

1 Like

I followed the instructions posted above [ Hello! How can I change the Nvidia boot logo to my own? ] by svv75. It works great and replaces my boot logo on the jetson Nano. I also replaced /Linux_For_Tegra/rootfs/usr/share/backgrounds/NVIDIA_Login_Logo.png
Then flashed the Jetson Nano. On first boot my logo is displayed on power up. Then after I have been into Ubuntu desktop and rebooted again, the Nvidia logo is back as the first logo that is shown on power up. I guess it is getting replaced somehow. Any idea how to ensure that my custom bmp.blob is always shown on power up?
Thanks and best regards

Hello. Read the messages of jw-boot-logo-for-Jetson-Nano carefully. Is there the line “Final size of bmp.blob will too big!”? If not, then all this is very strange. Perhaps this is a problem with the partition table. Try to write the whole image of L4T to the card, and not just the BMP partition (i.e. sudo ./flash.sh jetson-nano-qspi-sd mmcblk0p1).