Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
[Unit]
Description=Copy GDRCopy kernel module (open-gpu)
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
# Order after the branch overlay so ghostdog/driverdog see files at canonical paths.
After=nvidia-lts-overlay-driver.service nvidia-fb-overlay-driver.service
# Rerunning this service after the system is fully loaded will override
# the already linked kernel modules. This doesn't affect the running system,
# since kernel modules are linked early in the boot sequence, but we still
Expand All @@ -11,7 +13,7 @@ RefuseManualStop=true
[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver open-gpu
ExecStart=/usr/bin/driverdog --modules-set nvidia-gdrcopy-open-gpu link-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-lts-gdrcopy-open-gpu link-modules
RemainAfterExit=true
StandardError=journal+console

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
[Unit]
Description=Copy GRID kernel modules
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
# Order after the branch overlay so ghostdog/driverdog see files at canonical paths.
After=nvidia-lts-overlay-driver.service nvidia-fb-overlay-driver.service
# Rerunning this service after the system is fully loaded will override
# the already linked kernel modules. This doesn't affect the running system,
# since kernel modules are linked early in the boot sequence, but we still
Expand All @@ -11,8 +13,8 @@ RefuseManualStop=true
[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver grid
ExecStart=/usr/bin/driverdog --modules-set nvidia-grid link-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-grid-copy-only link-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-lts-grid link-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-lts-grid-copy-only link-modules
RemainAfterExit=true
StandardError=journal+console

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
[Unit]
Description=Copy open GPU kernel modules
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
# Order after the branch overlay so ghostdog/driverdog see files at canonical paths.
After=nvidia-lts-overlay-driver.service nvidia-fb-overlay-driver.service
# Rerunning this service after the system is fully loaded will override
# the already linked kernel modules. This doesn't affect the running system,
# since kernel modules are linked early in the boot sequence, but we still
Expand All @@ -11,8 +13,8 @@ RefuseManualStop=true
[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver open-gpu
ExecStart=/usr/bin/driverdog --modules-set nvidia-open-gpu link-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-open-gpu-copy-only link-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-lts-open-gpu link-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-lts-open-gpu-copy-only link-modules
RemainAfterExit=true
StandardError=journal+console

Expand Down
2 changes: 2 additions & 0 deletions packages/kmod-6.18-nvidia-r580/grid-license-check.service
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
Description=GRID License Check
RefuseManualStart=true
RefuseManualStop=true
# Order after the branch overlay so ghostdog/nvidia-smi see files at canonical paths.
After=nvidia-lts-overlay-driver.service nvidia-fb-overlay-driver.service
After=nvidia-gridd.service
Requires=nvidia-gridd.service

Expand Down
719 changes: 388 additions & 331 deletions packages/kmod-6.18-nvidia-r580/kmod-6.18-nvidia-r580.spec

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
[Unit]
Description=Link Tesla kernel modules
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
# Order after the branch overlay so ghostdog/driverdog see files at canonical paths.
After=nvidia-lts-overlay-driver.service nvidia-fb-overlay-driver.service
# Rerunning this service after the system is fully loaded will override
# the already linked kernel modules. This doesn't affect the running system,
# since kernel modules are linked early in the boot sequence, but we still
Expand All @@ -11,7 +13,7 @@ RefuseManualStop=true
[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver tesla
ExecStart=/usr/bin/driverdog --modules-set nvidia-tesla link-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-lts-tesla link-modules
RemainAfterExit=true
StandardError=journal+console

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[Unit]
Description=Load GDRCopy kernel module (open-gpu)
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
After=copy-gdrcopy-open-gpu-kernel-module.service load-open-gpu-kernel-modules.service
Requires=copy-gdrcopy-open-gpu-kernel-module.service load-open-gpu-kernel-modules.service
After=nvidia-lts-copy-gdrcopy-open-gpu-kernel-module.service nvidia-lts-load-open-gpu-kernel-modules.service
Requires=nvidia-lts-copy-gdrcopy-open-gpu-kernel-module.service nvidia-lts-load-open-gpu-kernel-modules.service
# Disable manual restarts to prevent loading kernel modules
# that weren't linked by the running system
RefuseManualStart=true
Expand All @@ -11,7 +11,7 @@ RefuseManualStop=true
[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver open-gpu
ExecStart=/usr/bin/driverdog --modules-set nvidia-gdrcopy-open-gpu load-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-lts-gdrcopy-open-gpu load-modules
ExecStart=/usr/bin/ghostdog create-device gdrdrv 0 --path /dev/gdrdrv
RemainAfterExit=true
StandardError=journal+console
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[Unit]
Description=Load GRID kernel modules
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
After=copy-grid-kernel-modules.service
Requires=copy-grid-kernel-modules.service
After=nvidia-lts-copy-grid-kernel-modules.service
Requires=nvidia-lts-copy-grid-kernel-modules.service
# Disable manual restarts to prevent loading kernel modules
# that weren't linked by the running system
RefuseManualStart=true
Expand All @@ -11,7 +11,7 @@ RefuseManualStop=true
[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver grid
ExecStart=/usr/bin/driverdog --modules-set nvidia-grid load-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-lts-grid load-modules
RemainAfterExit=true
StandardError=journal+console

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[Unit]
Description=Load open GPU kernel modules
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
After=copy-open-gpu-kernel-modules.service
Requires=copy-open-gpu-kernel-modules.service
After=nvidia-lts-copy-open-gpu-kernel-modules.service
Requires=nvidia-lts-copy-open-gpu-kernel-modules.service
# Disable manual restarts to prevent loading kernel modules
# that weren't linked by the running system
RefuseManualStart=true
Expand All @@ -11,7 +11,7 @@ RefuseManualStop=true
[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver open-gpu
ExecStart=/usr/bin/driverdog --modules-set nvidia-open-gpu load-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-lts-open-gpu load-modules
RemainAfterExit=true
StandardError=journal+console

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[Unit]
Description=Load Tesla kernel modules
RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels
After=link-tesla-kernel-modules.service
Requires=link-tesla-kernel-modules.service
After=nvidia-lts-link-tesla-kernel-modules.service
Requires=nvidia-lts-link-tesla-kernel-modules.service
# Disable manual restarts to prevent loading kernel modules
# that weren't linked by the running system
RefuseManualStart=true
Expand All @@ -11,7 +11,7 @@ RefuseManualStop=true
[Service]
Type=oneshot
ExecCondition=/usr/bin/ghostdog match-nvidia-driver tesla
ExecStart=/usr/bin/driverdog --modules-set nvidia-tesla load-modules
ExecStart=/usr/bin/driverdog --modules-set nvidia-lts-tesla load-modules
RemainAfterExit=true
StandardError=journal+console

Expand Down
4 changes: 4 additions & 0 deletions packages/kmod-6.18-nvidia-r580/nvidia-fabricmanager.service
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ Description=NVIDIA fabric manager service
Wants=modprobe@ib_umad.service
After=modprobe@ib_umad.service nvlsm-online.service
Requires=nvlsm-online.service
# nv-fabricmanager and its /etc/nvidia config come from the branch overlays;
# order after both branches' overlays (absent branch is a no-op).
After=nvidia-lts-overlay-driver.service nvidia-fb-overlay-driver.service
After=nvidia-lts-overlay-config.service nvidia-fb-overlay-config.service

[Service]
EnvironmentFile=/etc/nvidia/fabricmanager.env
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
C /etc/drivers/nvidia-lts-gdrcopy-open-gpu.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[nvidia-gdrcopy-open-gpu]
[nvidia-lts-gdrcopy-open-gpu]
lib-modules-path = "kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu"

[nvidia-gdrcopy-open-gpu.kernel-modules."gdrdrv.ko"]
[nvidia-lts-gdrcopy-open-gpu.kernel-modules."gdrdrv.ko"]
copy-source = "__NVIDIA_MODULES__"

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[nvidia-lts-grid-copy-only]
lib-modules-path = "kernel/drivers/extra/video/nvidia/grid"

[nvidia-lts-grid-copy-only.kernel-modules."nvidia-drm.ko"]
copy-source = "__NVIDIA_MODULES__"

[nvidia-lts-grid-copy-only.kernel-modules."nvidia-peermem.ko"]
copy-source = "__NVIDIA_MODULES__"
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
[nvidia-grid]
[nvidia-lts-grid]
lib-modules-path = "kernel/drivers/extra/video/nvidia/grid"

[nvidia-grid.kernel-modules."nvidia.ko"]
[nvidia-lts-grid.kernel-modules."nvidia.ko"]
copy-source = "__NVIDIA_MODULES__"

[nvidia-grid.kernel-modules."nvidia-modeset.ko"]
[nvidia-lts-grid.kernel-modules."nvidia-modeset.ko"]
copy-source = "__NVIDIA_MODULES__"

[nvidia-grid.kernel-modules."nvidia-uvm.ko"]
[nvidia-lts-grid.kernel-modules."nvidia-uvm.ko"]
copy-source = "__NVIDIA_MODULES__"
4 changes: 4 additions & 0 deletions packages/kmod-6.18-nvidia-r580/nvidia-gridd.service
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
Description=NVIDIA Grid Daemon
Wants=systemd-resolved.service network-online.target nvidia-persistenced.service
After=systemd-resolved.service network-online.target nvidia-persistenced.service
# Order after the branch overlays: needs libs/binary (driver overlay) and
# /etc/nvidia/gridd.conf (config overlay) at their canonical paths.
After=nvidia-lts-overlay-driver.service nvidia-fb-overlay-driver.service
After=nvidia-lts-overlay-config.service nvidia-fb-overlay-config.service

[Service]
Type=forking
Expand Down
1 change: 0 additions & 1 deletion packages/kmod-6.18-nvidia-r580/nvidia-imex-tmpfiles.conf
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
d /etc/nvidia-imex 0755 root root -
C /etc/nvidia-imex/config.cfg 0644 root root -
24 changes: 24 additions & 0 deletions packages/kmod-6.18-nvidia-r580/nvidia-lts-overlay-config.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[Unit]
Description=NVIDIA lts branch /etc config overlays
DefaultDependencies=no
Before=drivers.target
# Upper/workdir live on the /etc tmpfs
RequiresMountsFor=/etc

[Service]
Type=oneshot
RemainAfterExit=true
StandardError=journal+console
# Project the branch's /etc/nvidia config onto the canonical path. Used by
# nvidia-fabricmanager, nvidia-gridd and nvlsm
ExecStart=/usr/bin/mkdir -p \
/etc/nvidia \
/etc/nvidia-imex \
/etc/.nvidia-config-overlay/upper \
/etc/.nvidia-config-overlay/work
ExecStart=/usr/bin/mount -t overlay nvidia-etc --options rw,nosuid,nodev,noexec,noatime,context=system_u:object_r:etc_t:s0,lowerdir=/usr/nvidia/lts/etc-nvidia:/etc/nvidia,upperdir=/etc/.nvidia-config-overlay/upper,workdir=/etc/.nvidia-config-overlay/work /etc/nvidia

ExecStart=/usr/bin/mount -t overlay overlay --options ro,nosuid,nodev,noexec,noatime,lowerdir=/usr/nvidia/lts/etc-nvidia-imex:/etc/nvidia-imex /etc/nvidia-imex

[Install]
RequiredBy=drivers.target
36 changes: 36 additions & 0 deletions packages/kmod-6.18-nvidia-r580/nvidia-lts-overlay-driver.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
[Unit]
Description=NVIDIA lts branch driver library/binary and kernel-module overlays
DefaultDependencies=no
Before=drivers.target
# The modules re-layer's upper/work live under /var/lib/kernel-modules, which
# prepare-var.service creates
Wants=prepare-var.service
After=prepare-var.service
RequiresMountsFor=/var /usr/lib/modules

[Service]
Type=oneshot
RemainAfterExit=true
StandardError=journal+console

# The /usr/lib64 overlay shadows the /usr/lib/modules mount.
# To preserve /usr/lib/modules, we bind the lib-modules
# overlay to a second path and then re-layer it as a lowerdir
ExecStart=/usr/bin/mkdir -p \
/run/nvidia/base-modules \
/var/lib/kernel-modules/.nvidia/upper \
/var/lib/kernel-modules/.nvidia/work
ExecStart=/usr/bin/mount --bind /usr/lib/modules /run/nvidia/base-modules
ExecStart=/usr/bin/mount -t overlay overlay --options ro,nodev,noatime,lowerdir=/usr/nvidia/lts/lib64:/usr/lib64 /usr/lib64
# Remount /run/nvidia/base-modules on /usr/lib/modules bringing back the original
# /lib/modules as the lowerdir with new upperdir and workdir for write access
ExecStart=/usr/bin/mount -t overlay nvidia-modules --options rw,nosuid,nodev,noexec,noatime,context=system_u:object_r:state_t:s0,lowerdir=/run/nvidia/base-modules,upperdir=/var/lib/kernel-modules/.nvidia/upper,workdir=/var/lib/kernel-modules/.nvidia/work /usr/lib/modules

ExecStart=/usr/bin/mount -t overlay overlay --options ro,nosuid,nodev,noexec,noatime,lowerdir=/usr/nvidia/lts/share-nvidia:/usr/share/nvidia /usr/share/nvidia
ExecStart=/usr/bin/mount -t overlay overlay --options ro,nodev,noatime,lowerdir=/usr/nvidia/lts/bin:/usr/bin /usr/bin
ExecStart=/usr/bin/mount -t overlay overlay --options ro,nosuid,nodev,noexec,noatime,lowerdir=/usr/nvidia/lts/share-vulkan:/usr/share/vulkan /usr/share/vulkan
ExecStart=/usr/bin/mount -t overlay overlay --options ro,nosuid,nodev,noexec,noatime,lowerdir=/usr/nvidia/lts/share-glvnd:/usr/share/glvnd /usr/share/glvnd
ExecStart=/usr/bin/mount -t overlay overlay --options ro,nosuid,nodev,noexec,noatime,lowerdir=/usr/nvidia/lts/share-egl:/usr/share/egl /usr/share/egl

[Install]
RequiredBy=drivers.target
11 changes: 0 additions & 11 deletions packages/kmod-6.18-nvidia-r580/nvidia-open-gpu-config.toml.in

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[nvidia-lts-open-gpu-copy-only]
lib-modules-path = "kernel/drivers/extra/video/nvidia/open-gpu"

[nvidia-lts-open-gpu-copy-only.kernel-modules."nvidia-drm.ko"]
copy-source = "__NVIDIA_MODULES__"

[nvidia-lts-open-gpu-copy-only.kernel-modules."nvidia-peermem.ko"]
copy-source = "__NVIDIA_MODULES__"
11 changes: 11 additions & 0 deletions packages/kmod-6.18-nvidia-r580/nvidia-open-gpu-lts-config.toml.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[nvidia-lts-open-gpu]
lib-modules-path = "kernel/drivers/extra/video/nvidia/open-gpu"

[nvidia-lts-open-gpu.kernel-modules."nvidia.ko"]
copy-source = "__NVIDIA_MODULES__"

[nvidia-lts-open-gpu.kernel-modules."nvidia-modeset.ko"]
copy-source = "__NVIDIA_MODULES__"

[nvidia-lts-open-gpu.kernel-modules."nvidia-uvm.ko"]
copy-source = "__NVIDIA_MODULES__"
4 changes: 3 additions & 1 deletion packages/kmod-6.18-nvidia-r580/nvidia-persistenced.service
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
[Unit]
Description=NVIDIA Persistence Daemon
After=load-tesla-kernel-modules.service load-open-gpu-kernel-modules.service load-grid-kernel-modules.service
# Ensure persistenced starts after /dev/nvidia* exists
After=nvidia-lts-load-tesla-kernel-modules.service nvidia-lts-load-open-gpu-kernel-modules.service nvidia-lts-load-grid-kernel-modules.service
After=nvidia-fb-load-tesla-kernel-modules.service nvidia-fb-load-open-gpu-kernel-modules.service nvidia-fb-load-grid-kernel-modules.service

[Service]
Type=forking
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
[nvidia-tesla]
[nvidia-lts-tesla]
lib-modules-path = "kernel/drivers/extra/video/nvidia/tesla"
objects-source = "__NVIDIA_MODULES__"

[nvidia-tesla.object-files."nvidia.o"]
[nvidia-lts-tesla.object-files."nvidia.o"]
link-objects = ["nv-interface.o", "nv-kernel.o"]

[nvidia-tesla.kernel-modules."nvidia.ko"]
[nvidia-lts-tesla.kernel-modules."nvidia.ko"]
link-objects = ["nvidia.o", "nvidia.mod.o", ".module-common.o"]

[nvidia-tesla.object-files."nvidia-modeset.o"]
[nvidia-lts-tesla.object-files."nvidia-modeset.o"]
link-objects = ["nv-modeset-interface.o", "nv-modeset-kernel.o"]

[nvidia-tesla.kernel-modules."nvidia-modeset.ko"]
[nvidia-lts-tesla.kernel-modules."nvidia-modeset.ko"]
link-objects = ["nvidia-modeset.o", "nvidia-modeset.mod.o", ".module-common.o"]

[nvidia-tesla.kernel-modules."nvidia-uvm.ko"]
[nvidia-lts-tesla.kernel-modules."nvidia-uvm.ko"]
link-objects = ["nvidia-uvm.o", "nvidia-uvm.mod.o", ".module-common.o"]
5 changes: 5 additions & 0 deletions packages/kmod-6.18-nvidia-r580/nvidia-tesla-lts-tmpfiles.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
C /etc/drivers/nvidia-lts-tesla.toml
C /etc/drivers/nvidia-lts-open-gpu.toml
C /etc/drivers/nvidia-lts-open-gpu-copy-only.toml
C /etc/drivers/nvidia-lts-grid.toml
C /etc/drivers/nvidia-lts-grid-copy-only.toml
6 changes: 0 additions & 6 deletions packages/kmod-6.18-nvidia-r580/nvidia-tesla-tmpfiles.conf

This file was deleted.

6 changes: 3 additions & 3 deletions packages/kmod-6.18-nvidia-r580/nvidia-tmpfiles.conf.in
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gd
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy 0755 root root - -
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu 0755 root root - -
d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy/tesla 0755 root root - -
C /etc/nvidia/fabricmanager.cfg - - - -
C /etc/nvidia/fabricmanager.env - - - -
C /etc/nvidia/gridd.conf - - - -
# fabricmanager.cfg/.env and gridd.conf are added via an overlay mount; this
# creates the mountpoint that overlay needs.
d /etc/nvidia 0755 root root -
d /run/nvidia 0755 root root -
D /var/run/nvidia-persistenced 0755 nvidia nvidia - -
Loading
Loading