nv-load-display-modules Service#
Two different sets of display drivers are used across Jetson
modules.
Jetson Orin devices use the NVGPU driver, nvgpu.ko, for graphics and compute and
the following drivers for display:
updates/opensrc-disp/nvidia.koupdates/opensrc-disp/nvidia-drm.koupdates/opensrc-disp/nvidia-modeset.ko
Jetson Thor devices have a combined graphics, compute, and display driver in nvidia.ko.
The corresponding drivers for Jetson Thor and later devices are as follows:
updates/opensource-gpu-disp/nvidia.koupdates/opensource-gpu-disp/nvidia-drm.koupdates/opensource-gpu-disp/nvidia-modeset.koupdates/opensource-gpu-disp/nvidia-uvm.ko
Typically, you cannot have multiple drivers of the exact same name in
the Linux kernel module updates folder.
As a result, in releases prior to JetPack 7.2, you needed to decide when
unpacking the Debian files whether to install the NVGPU packages or the OpenRM
packages.
JetPack 7.2 re-implemented how these drivers are managed, allowing both to be
present simultaneously in the root file system.
Picking the appropriate set for a given device becomes a run-time decision
handled by the nv-load-display-modules service.
The advantage of this new setup is that a single root file system can be used
across both Jetson Orin and Jetson Thor devices.
Implementation#
The capability provided by the nv-load-display-modules service has been expanded.
By default, the following modules are denylisted in
/etc/modprobe.d/denylist-oot-modules.conf:nvgpunv_gpu_static_pgnvidianvidia-drmnvidia-modesetnvidia-uvm
The service is implemented in the
/etc/systemd/nv-load-display-modules.shfile and uses the variant selected bynv-load-display-modules-choose-variant.sh. This same variant selection file is also used by thenv-load-gpu-libsservice.
The service performs the following tasks:
The service picks a variant based on the chip architecture:
Tegra23xselectsnvgpu-l4t.Tegra26xselectsopenrm-l4t.
The variant selected by the service is stored in
/run/nvidia-gpu-driver-active.The service copies
/opt/nvidia/nv-disp-module-configs/nv-modprobe-${variant}-display.confto/etc/modprobe.d/nvidia-display.conf. This file defines the parameters specific to the module.The service copies
/opt/nvidia/nv-disp-module-configs/nv-depmod-${variant}-display.confto/etc/depmod.d/nvidia-display.conf. This file usesoverridecommands to specify which set of modules will be loaded.The service calls
depmod -a. For subsequent boots,depmodis skipped if nothing has changed.
Additional options, such as overrides, are documented inside
nv-load-display-modules.sh.
Checking the Service State#
To check which variant was selected by the service, enter this command:
$ cat /run/nvidia-gpu-driver-active
To check whether the service is enabled, enter this command:
$ systemctl is-enabled nv-load-display-modules.service
To check whether the service completed successfully during the current boot, enter this command:
$ systemctl status nv-load-display-modules.service
To review service log messages, enter this command:
$ journalctl -u nv-load-display-modules.service
To verify that the DRM module is loaded, enter this command:
$ lsmod | grep nvidia_drm