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.12.0.0 on the nVdia Jetson AGX Orin board, based on the NVIDIA Jetson 6.2.1 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
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.2.1.
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_v4.4/release/Jetson_Linux_r36.4.4_aarch64.tbz2
Download the elxr-tegra-12.12.0.0-arm64.tar.gz rootfs file.
# wget https://downloads.elxr.dev/elxr-tegra-12.12.0.0-arm64.tar.gz
Notice that the file arm64 architecture matches the Jetson AGX Orin hardware, and that the version 12.12.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.
Extract the contents of the Jetson_Linux_R36.4.4_aarch64.tbz2 archive.
# tar -xf Jetson_Linux_R36.4.4_aarch64.tbz2
Extract the contents of the elxr-tegra-12.12.0.0-arm64.tar.gz archive.
# sudo tar xpf elxr-tegra-12.12.0.0-arm64.tar.gz -C Linux_for_Tegra/rootfs/
Prepare to Flash the Device¶
Before you flash the device, perform several preparation steps to ensure a successful installation.
Fix compatibility issues in Jetson Linux R36.4.4 for eLxr 12.12.0.0 rootfs.
# curl -fsSL https://gitlab.com/elxr/docs/user-documentation/-/raw/main/scripts/orin-jetson/jetson_elxr-r36.sh | bash
Optionally, view the script output.
✅ Removed deprecated python /home/wruser/Documents/user/Linux_for_Tegra/tools/python-jetson-gpio_2.1.7ubuntu1_arm64.deb ℹ️ Processing Deb: nvidia-l4t-nvpmodel-gui-tools_36.4.4-20250616085344_arm64.deb ℹ️ Patching: DEBIAN/control ℹ️ Patching: usr/share/nvpmodel_indicator/nvpmodel_indicator.py ℹ️ Patching: usr/share/nvpmodel_indicator/nvpmodel_indicator.py ✅ Successfully patched: nvidia-l4t-nvpmodel-gui-tools_36.4.4-20250616085344_arm64.deb ℹ️ Processing Deb: nvidia-l4t-configs_36.4.4-20250616085344_arm64.deb ℹ️ Patching: etc/skel/.xsessionrc ℹ️ Patching: etc/skel/.xsessionrc ℹ️ Patching: etc/systemd/nvfb-early.sh ✅ Successfully patched: nvidia-l4t-configs_36.4.4-20250616085344_arm64.deb ℹ️ Processing Deb: nvidia-l4t-init_36.4.4-20250616085344_arm64.deb ℹ️ Patching: etc/systemd/nvfb.sh ✅ Successfully patched: nvidia-l4t-init_36.4.4-20250616085344_arm64.deb ℹ️ Patching: /home/wruser/Documents/user/Linux_for_Tegra/tools/l4t_create_default_user.sh ✅ Fixed create user for debian in /home/wruser/Documents/user/Linux_for_Tegra/tools/l4t_create_default_user.sh ℹ️ Patching: /home/wruser/Documents/user/Linux_for_Tegra/flash.sh ✅ Set Soc Display Handoff Mode to Never in /home/wruser/Documents/user/Linux_for_Tegra/flash.sh ℹ️ Patching: /home/wruser/Documents/user/Linux_for_Tegra/nv_tools/scripts/nv_customize_rootfs.sh ℹ️ Patching: /home/wruser/Documents/user/Linux_for_Tegra/nv_tools/scripts/nv_customize_rootfs.sh ℹ️ Patching: /home/wruser/Documents/user/Linux_for_Tegra/nv_tools/scripts/nv_customize_rootfs.sh ℹ️ Patching: /home/wruser/Documents/user/Linux_for_Tegra/nv_tools/scripts/nv_customize_rootfs.sh ✅ Fixed for XFCE, network service and GPU timeout in /home/wruser/Documents/user/Linux_for_Tegra/nv_tools/scripts/nv_customize_rootfs.sh ✅ All Setup Tasks Complete!
On your Linux host, navigate to the <workspace>/Linux_for_Tegra directory.
# cd <workspace>/Linux_for_Tegra
Install NVIDIA prerequisities on your host.
# sudo ./tools/l4t_flash_prerequisites.sh
Remove conflicting files from the rootfs to avoid issues during the binary update.
# sudo rm rootfs/dev/random rootfs/dev/urandom
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.
Copy the kernel image into the rootfs and l4t kernel directory.
# sudo cp rootfs/boot/vmlinuz-*-orin-arm64 rootfs/boot/Image # sudo cp rootfs/boot/vmlinuz-*-orin-arm64 kernel/Image
Run the NVIDIA script to update initrd.
# 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), press, then release the POWER button. 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.
# sudo ./flash.sh jetson-agx-orin-devkit internal
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.
To prevent kernel packages from being overwritten after sudo apt update && sudo apt upgrade, run the following command.
# sudo apt-mark hold nvidia-l4t-bootloader nvidia-l4t-display-kernel nvidia-l4t-kernel nvidia-l4t-kernel-dtbs nvidia-l4t-kernel-headers nvidia-l4t-kernel-oot-headers nvidia-l4t-kernel-oot-modules
Install Multimedia Packages¶
Install the following multimedia packages:
# sudo apt-get update
# sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
# 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/debian12/sbsa/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-toolkit-13-1
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
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