How to install SLE-15-SP6 on NVIDIA Jetson platform (Jetson AGX Orin/IGX Orin)
This covers the installation of updated Kernel, out-of-tree nvidia kernel modules package, how to get GNOME desktop running and installation/run of glmark2 benchmark. Also it describes how to get some CUDA and TensorRT samples running.
Boot from the USB stick/SD card, that you wrote above and install SP6. You need to install via serial console, since the monitor won’t get any signal without the out-of-tree nvidia kernel modules, which are installed later in the process.
Make sure you select the following modules during installation:
Basesystem (enough for just installing the kernel driver)
Containers (needed for podman for CUDA libraries)
Desktop Applications (needed for running a desktop)
Development Tools (needed for git for CUDA samples)
Select SLES with GNOME for installation.
Kernel + KMP drivers
Continue installation with serial console.
Now update kernel and install our KMP (kernel module package) for all nvidia kernel modules.
We plan to make the KMP available as a driver kit via the SolidDriver Program. For now please install an updated kernel and the KMP after checking the build status (rebuilding can take a few hours!) from our open buildservice:
Userspace/Desktop
Unfortunately installing the userspace is a non-trivial task.
Then you need to convert debian packages from this content into tarballs.
From the generated tarballs you only need these:
And from this tarball nvidia-l4t-init_36.4.0-20240912212859_arm64.tbz2 you only need these files:
So first let’s repackage nvidia-l4t-init_36.4.0-20240912212859_arm64.tbz2:
On IGX Orin platform with dedicated graphics card (dGPU systems) you need to
get rid of some files due to conflicts with dGPU userspace drivers.
Then extract the generated tarballs to your system.
On systems without dedicated graphics (internal GPU systems) card you still
need to move
to
So let’s do this.
Then add /usr/lib/aarch64-linux-gnu and
/usr/lib/aarch64-linux-gnu/tegra-egl to
/etc/ld.so.conf.d/nvidia-tegra.conf.
Run ldconfig
Video group for regular users
A regular user needs to be added to the group video to be able to log in to the GNOME desktop as regular user. This can be achieved by using YaST, usermod or editing /etc/group manually.
Reboot the machine with the previously updated kernel
In Mokmanager (Perform MOK management) select Continue boot. Although Secureboot is enabled by default in BIOS it seems it hasn’t been implemented yet (BIOS from 04/04/2024). Select first entry SLES 15-SP6 for booting.
Basic testing
First basic testing will be running nvidia-smi.
Graphical desktop (GNOME) should work as well. Unfortunately Linux console is not available. Use either a serial console or a ssh connection if you don’t want to use the graphical desktop or need remote access to the system.
glmark2
Install phoronix-test-suite
Run phoronix-test-suite
CUDA/Tensorflow
Containers
NVIDIA provides containers available for Jetson that include SDKs such as CUDA. More details here. These containers are Ubuntu based, but can be used from SLE as well. You need to install the NVIDIA container runtime for this. Detailed information here.
1. Install podman and nvidia-container-runtime
2. Download the CUDA samples
3. Start X
Monitor should now show a Moiree pattern with an unframed xterm on it. Otherwise check /tmp/log.
4. Download and run the JetPack6 container
CUDA
5. Build and run the samples in the container
Tensorrt
6. Build and run Tensorrt in the container
This is both with the GPU and DLA (deep-learning accelerator).
Misc
Performance
You can improve the performance by giving the clock a boost. For best performance you can run jetson_clocks to set the device to max clock settings
The 1st and 3rd command just prints the clock settings.
MaxN Power
For maximum performance you also need to set MaxN Power. This can be done by running