Enable Full Graphics and Multimedia Support for NVIDIA Jetson AGX Orin Hardware¶
This tutorial describes how to install the NVIDIA binaries to eLxr Edge Pro 12.10.0.0 on the nVdia Jetson AGX Orin board, based on the NVIDIA Jetson 6.0 SDK. Use this procedure to enable full graphics and multimedia support for your eLxr 12 image.
Note
This is currently the only supported method for setting up eLxr 12 on NVIDIA Jetson AGX Orin hardware.
Before You Begin¶
You must have a NVIDIA Jetson AGX Orin hardware board with eLxr 12 installed
You must have an Ubuntu host, version 20.04 or newer, with the the qemu-user-static package installed
Note
The create_default_user.sh script in this procedure requires Ubuntu version 20.04 or newer to work successfully
You must have a stable Internet connection and a USB Type-A to Type-C cable to connect to the device during the flashing process
Procedure¶
Perform the following procedure to prepare a new initrd that contains a new eLxr 12 rootfs with applied NVIDIA multimedia support. This includes the rootfs, eLxr kernel, NVIDIA-specific binaries, and relevant multimedia packages necessary for successful operation.
Set Up the Environment¶
The initial setup involves creating a workspace and obtaining the necessary software packages for installation.
On your Linux host system, create a workspace directory.
Substitute <workspace> in the following commands with the name of your local directory.
# mkdir <workspace> # cd <workspace>
Download the Jetson Linux binary package for the Jetpack 6.0 GA from the NVIDIA developer website at: https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/release/Jetson_Linux_R36.3.0_aarch64.tbz2.
Warning
Third-party license and agreements apply. We strongly recommend to consult with legal counsel as required.
This package includes a bootloader, kernel image, NVIDIA Debian files and flash tools.
# wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/release/Jetson_Linux_R36.3.0_aarch64.tbz2
Extract the contents of the Jetson_Linux_R36.3.0_aarch64.tbz2 archive.
# tar -xvf Jetson_Linux_R36.3.0_aarch64.tbz2
Download the elxr-tegra-12.10.0.0-arm64.tar.gz rootfs file.
# wget https://downloads.elxr.dev/elxr-tegra-12.10.0.0-arm64.tar.gz
Notice that the file arm64 architecture matches the Jetson AGX Orin hardware, and that the version 12.10.0.0 matches your eLxr 12 system. If you are using a different eLxr version, ensure that you download the version specific to your installation.
Copy the elxr-tegra-12.10.0.0-arm64.tar.gz file to the <workspace>/Linux_for_Tegra/rootfs directory and extract from there.
# cd <workspace>/Linux_for_Tegra/rootfs # cp ../../elxr-tegra-12.10.0.0-arm64.tar.gz .
Extract the rootfs with sudo permission.
# sudo tar -xvf <eLxr rootfs.tar.gz>
Prepare to Flash the Device¶
Before you flash the device, perform several preparation steps to ensure a successful installation.
Remove conflicting files from the rootfs to avoid issues during the binary update.
# sudo rm rootfs/dev/random rootfs/dev/urandom
Remove packages that are no longer required to avoid potential conflicts during flashing.
# rm ./nv_tegra/l4t_deb_packages/nvidia-l4t-nvpmodel-gui-tools_36.3.0-20240506102626_arm64.deb # rm ./tools/python-jetson-gpio_2.1.7ubuntu1_arm64.deb
Apply the NVIDIA binaries.
On your Linux host, navigate to the <workspace>/Linux_for_Tegra directory.
# cd <workspace>/Linux_for_Tegra
Apply the NVIDIA binaries into the rootfs.
This script will unpack the NVIDIA kernel, and necessary Debian packages into the rootfs.
# sudo ./apply_binaries.sh
Run the following script to create the default user for the Jetson AGX Orin system.
# sudo ./tools/l4t_create_default_user.sh -u <user_name> -p <password> -n <hostname>
You can additionally include the -a for autologin and –accept-license options to bypass manual selection and entry.
Remove the nvfb.service to prevent boot issues.
# sudo mv rootfs/etc/systemd/system/multi-user.target.wants/nvfb.service rootfs/etc/systemd/system/multi-user.target.wants/nvfb.service.orig
Copy the kernel image into the rootfs and l4t kernel directory.
# sudo cp rootfs/boot/vmlinuz-6.1.0-23-orin-arm64 rootfs/boot/Image # sudo cp rootfs/boot/vmlinuz-6.1.0-23-orin-arm64 kernel/Image
Run the NVIDIA script to update initrd.
# cd <workspace>/Linux_for_Tegra # sudo ./tools/l4t_update_initrd.sh
Flash the Device¶
Now that the host environment is ready, you need to flash the Jetson AGX Orin device with the prepared files.
Boot the NVIDIA board into Recovery Mode.
Connect the NVIDIA Jetson AGX Orin Developer Kit to the host PC with the bundled USB Type-A to Type-C cable (See the nVidia Dev Kit).
Make sure you put the Type-C plug of the cable into the USB Type-C port next to 40-pin connector for flashing.
While holding the middle Force Recovery button (2), insert the USB Type-C power supply plug into the USB Type-C port above the DC jack. This will turn on the Jetson dev kit in Force Recovery Mode.
Run the following script on the Linux host to initiate the flash process.
# cd <workspace>/Linux_for_Tegra # sudo ./nvsdkmanager_flash.sh
This process may take several minutes to complete. Once finished, the device will automatically reboot with the newly installed software.
First Boot Configuration¶
After flashing, several configuration steps are necessary during the first boot.
When booting with the display connected, apply the following commands, required for the first boot only. For details, see https://forums.developer.nvidia.com/t/jetpack-6-0-with-kernel-6-7-8-no-display-output-after-uefi/285369/8?u=robertogs2.
Enter BIOS Setup to set SOC Display Hand-Off Mode to Never.
From the main menu, select Reset to restart the board and enter the UEFI/BIOS Setup menu.
During startup, press ESCAPE to enter Setup.
From the main BIOS window, select Device Manager > NVIDIA Configuration > Boot Configuration > SOC Display Hand-Off Mode > Never.
Press F10, then select Y to save the modified settings.
Return to the main menu, then select Reset to restart the board.
Update module dependencies.
Once the board boots to the Linux prompt, run the following commands to update the module list, which is not updated properly in the downloaded package. This command is only required on the first boot.
# sudo depmod -a # sudo reboot
The board will restart. Log in at the prompt to continue.
Add your default user to the lightdm group to ensure the user will have access to the GUI for login and use.
# sudo usermod -aG lightdm <user_name>
Open the /home/username/.xsession in an editor and comment-out lines 85 through 95. This is necessary to ensure compatibility when the gnome-shell package is not installed.
In bash shell, set the necessary environment variables.
# export DISPLAY=:0 # export PATH=$PATH:/usr/sbin
To enable Internet access on the device, you must update your network configuration files.
Open the /etc/network/interfaces file in an editor.
# sudo nano /etc/network/interfaces
Add or modify the network interface configuration according to your network requirements.
Open the /etc/resolv.conf file and add a nameserver your Jetson AGX Orin device can access.
nameserver <actual_nameserver_ip>
Note
You must replace <actual_nameserver_ip> with a valid nameserver IP address that your device can reach.
Install the following multimedia packages:
# sudo apt-get update # sudo apt-get upgrade # sudo apt-get install libgstreamer1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-ugly gstreamer1.0-libav libv4l-dev libegl1-mesa-dev
You may receive various perl localization warnings which you can safely ignore. If you get an E: Unmet dependencies, try ‘apt –fix-broken install error with no packages, run the following commands to resolve it:
# sudo apt --fix-broken install # sudo apt-get install nvidia-l4t-gstreamer
Note
The gstreamer installation creates a new initrd, which is harmless and you can safely ignore.
Install Additional Software¶
To enhance the functionality of your Jetson AGX Orin device, you can install additional software packages.
Docker
Install Docker to enable containerized applications on your device.
Run the following command to install:
# sudo apt-get install docker.io
Once installation completes, add your user to the Docker group to allow running Docker commands without sudo.
# sudo usermod -aG docker <user_name>
CUDA
Install CUDA to enable GPU-accelerated computing on your Jetson AGX Orin device.
Follow the instructions at the NVIDIA developer website: CUDA Downloads.
The general installation steps include:
# wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/arm64/cuda-keyring_1.1-1_all.deb
# sudo dpkg -i cuda-keyring_1.1-1_all.deb
# sudo apt-get update
# sudo apt-get -y install cuda
After installation completes, you may need to configure environment variables to use CUDA in your applications.
Known Issues and Fixes¶
Despite careful installation and configuration, you may encounter certain issues:
The image has hardcoded partition in the kernel parameters for SD card only. It will not work with a USB drive.
Display and mouse will not work on first boot since NVIDIA binaries are not in the initial image. Serial console access is required.
Camera is not supported.
New initrd creation during gstreamer installation can be ignored.
Troubleshooting¶
This section provides guidance for resolving common problems.
Boot Failure After Firmware Upgrade¶
If your device fails to boot after a firmware upgrade, it may be due to the nvfb.service issue mentioned earlier. To resolve this:
Use recovery mode to access the filesystem
Check if nvfb.service is causing issues by examining system logs
If necessary, rename or remove the problematic service file
Restore from backup if available
Network Configuration Issues¶
Network problems can manifest in various ways. Troubleshooting steps include:
Verify physical connections to ensure cables are properly connected
Check network interface configuration in the interfaces file
Ensure DNS settings are correct in /etc/resolv.conf
Test connectivity with ping and other network diagnostic tools
Graphics Issues¶
If you experience graphics-related problems:
Verify the correct drivers are installed using the nvidia-smi command
Check X server configuration in /etc/X11/xorg.conf if present
Ensure your user is in the correct groups (lightdm, video)
Examine X server logs in /var/log/Xorg.0.log for error messages
NVIDIA Support Resources¶
For additional assistance, refer to these valuable resources:
NVIDIA Jetson Support: https://developer.nvidia.com/embedded/support
NVIDIA Jetson AGX Developer Kit User Guide: https://developer.nvidia.com/embedded/downloads
NVIDIA Developer Forums: https://forums.developer.nvidia.com/c/agx-autonomous-machines/jetson/70