Changing avatar logo and background using jetpack 6.2 for jetson orin nx

Hello i’m a little freshy here so i’m sorry if this is a basic cuestion.

I’m working with a customized jetson orin nx board using jetpack 6.2 and i am trying to change the default pictures used for avatar and background after the flashing. I achieve to change the slpash screen making a new uefi_jetson.bin in linux_for_tegra’s bootloader folder but i can not find how to change the rest of images.

*** Please note that this reply is generated by LLM automatically ***

Changing the default pictures used for avatar and background on a customized Jetson Orin NX board using JetPack 4.6.2 involves modifying the root file system and updating the relevant configuration files.

To change the default pictures, you’ll need to update the following files:

  1. Avatar image: /usr/share/backgrounds/jetson_logo.png
  2. Background image: /usr/share/backgrounds/jetson_default_background.jpg

You can replace these files with your custom images, making sure to maintain the same file format and resolution.

However, since you’ve already modified the uefi_jetson.bin file in the linux_for_tegra/bootloader folder to change the splash screen, you’ll need to ensure that the changes are properly propagated to the root file system.

Here are the steps to follow:

  1. Update the root file system: You can do this by re-flashing the device with the updated root file system. To do this, you’ll need to create a new rootfs.tar file that includes your custom images. You can use the tar command to create a new archive file:
sudo tar -cvf rootfs.tar /usr/share/backgrounds

This will create a new rootfs.tar file that includes the updated jetson_logo.png and jetson_default_background.jpg files.

  1. Update the bootloader folder: You’ll need to update the bootloader folder with the new uefi_jetson.bin file that you created earlier. Make sure to copy the updated file to the correct location:
sudo cp uefi_jetson.bin /home/ubuntu/linux_for_tegra/bootloader/
  1. Re-flash the device: Once you’ve updated the root file system and bootloader folder, you can re-flash the device using the flash.sh script:
sudo ./flash.sh jetson-orin-nx-devkit mmcblk0p1

This will re-flash the device with the updated root file system and bootloader.

After re-flashing the device, you should see the updated avatar and background images.

Comparison with other Jetson modules:

The process of changing the default pictures on a Jetson Orin NX board is similar to other Jetson modules, such as the Jetson Xavier NX and Jetson AGX Xavier. However, the specific file locations and configuration files may vary depending on the module and JetPack version.

For example, on a Jetson Xavier NX board using JetPack 4.6.2, the avatar and background images are located in the following files:

  • Avatar image: /usr/share/backgrounds/xavier_logo.png
  • Background image: /usr/share/backgrounds/xavier_default_background.jpg

Similarly, on a Jetson AGX Xavier board using JetPack 4.6.2, the avatar and background images are located in the following files:

  • Avatar image: /usr/share/backgrounds/agx_xavier_logo.png
  • Background image: /usr/share/backgrounds/agx_xavier_default_background.jpg

In summary, changing the default pictures on a customized Jetson Orin NX board using JetPack 4.6.2 involves updating the root file system and bootloader folder, and re-flashing the device with the updated files.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

i am a little confused, all these changes should be in my host pc folder? This jetpack will be flashed into the jetson by using a customized flashing program. I am currently working in this folder ~/nvidia/nvidia_sdk/JetPack_6.2_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra. My jetpack it is not the 4.6.2 im using 6.2.0

Hi rgmartin,

The UEFI splash screen is handled separately, and it sounds like you have already completed that part with your updated uefi_jetson.bin.

For the remaining login/background images in JetPack 6.2, please check the rootfs side in your host Linux_for_Tegra directory before flashing.

  1. Login-screen logo / avatar

    Could you clarify which exact screen you mean by “avatar”? Do you mean the NVIDIA logo shown on the login screen, or the per-user account icon/avatar?

    For the JetPack 6.2 / Jetson Linux R36.4.x rootfs, the documented login-logo asset is:

    Linux_for_Tegra/rootfs/usr/share/backgrounds/NVIDIA_Login_Logo.png
    
  2. Desktop background

    For the default desktop wallpaper, please check these files in the host-side rootfs before flashing:

    Linux_for_Tegra/rootfs/usr/share/backgrounds/NVIDIA_Wallpaper.jpg
    Linux_for_Tegra/rootfs/etc/xdg/autostart/nvbackground.sh
    

    nvbackground.sh is the script used to set the NVIDIA default wallpaper when the desktop session starts, so you may need to update the image file and/or the path referenced by that script.

Reference:

Jetson Linux R36.4.3 Developer Guide:

Hope this helps!

I finally achieve it but following claude’s steps hahahaa, anyway thank you so much. If someone needs the steps i paste here my reports but in spanish:

Comentarios

Cambio del logo de pantalla de login

El logo blanco que aparece en la pantalla de login está controlado por un script llamado .xsessionrc que vive dentro del rootfs. Para cambiarlo hay que hacer dos cosas: meter la imagen nueva y decirle al script que use esa imagen en lugar de la de NVIDIA.

Paso 1 — Preparar la imagen

Se redimensionó el logo de la empresa a un tamaño adecuado para la pantalla de login con el siguiente comando:

bash

convert ~/Descargas/Logotipo-Blanco.jpg -resize 400x67 ~/Descargas/login_logo.png

Paso 2 — Copiar la imagen al rootfs

bash

sudo cp ~/Descargas/login_logo.png ~/nvidia/nvidia_sdk/JetPack_6.2_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra/rootfs/usr/share/backgrounds/login_logo.png

Paso 3 — Cambiar la referencia en la plantilla de usuario

Este archivo es la plantilla que Ubuntu usa para todos los usuarios nuevos que se creen:

bash

sudo sed -i 's|logo_path="/usr/share/backgrounds/NVIDIA_Login_Logo.png"|logo_path="/usr/share/backgrounds/login_logo.png"|g' ~/nvidia/nvidia_sdk/JetPack_6.2_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra/rootfs/etc/skel/.xsessionrc

Paso 4 — Cambiar la referencia en el usuario existente

Como el usuario sensia ya estaba creado, hay que aplicar el mismo cambio en su copia personal del archivo:

bash

sudo sed -i 's|logo_path="/usr/share/backgrounds/NVIDIA_Login_Logo.png"|logo_path="/usr/share/backgrounds/login_logo.png"|g' ~/nvidia/nvidia_sdk/JetPack_6.2_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra/rootfs/home/yourusr/.xsessionrc

Paso 5 — Verificar que todo está correcto

bash

grep "logo_path" ~/nvidia/nvidia_sdk/JetPack_6.2_Linux_JETSON_ORIN_NX_TARGETS/Linux_for_Tegra/rootfs/etc/skel/.xsessionrc

Debe mostrar logo_path="/usr/share/backgrounds/login_logo.png". Si es así, ya se puede flashear.

Lo primero que hago es meterme en la carpeta Linux_for_Tegra y ejecutar el script oficial de NVIDIA para crear el usuario:

bash

sudo ./tools/l4t_create_default_user.sh -u yourusr -p yourpswrd -n name --accept-license

Si te dice que el usuario ya existe, no pasa nada

Luego copio la imagen del avatar a la carpeta donde Ubuntu guarda los iconos de usuario. Aquí, el archivo de destino tiene que llamarse igual que el usuario y sin extensión, sin el .png, porque así es como Ubuntu lo busca:

bash

sudo cp ~/Descargas/MicrosoftTeams-avatar.png rootfs/var/lib/AccountsService/icons/sensia

Después creo un archivo de configuración que le dice al sistema que ese usuario tiene una foto asignada y dónde está:

bash

sudo tee rootfs/var/lib/AccountsService/users/sensia <<EOF
[User]
Session=
Icon=/var/lib/AccountsService/icons/youricon
SystemAccount=false
EOF

Luego le doy los permisos correctos a los dos archivos bash

sudo chmod 644 rootfs/var/lib/AccountsService/icons/yourusr
sudo chmod 644 rootfs/var/lib/AccountsService/users/yourusr

Y antes de flashear compruebo que todo está bien con estos dos comandos:

bash

ls -lh rootfs/var/lib/AccountsService/icons/sensia
cat rootfs/var/lib/AccountsService/users/sensia

El primero tiene que mostrar el archivo con varios KB de tamaño, y el segundo tiene que mostrar las cuatro líneas que escribimos antes. Si todo está correcto, ya puedes flashear y al arrancar la Jetson veremos el avatar en la pantalla de login