diff --git a/packages/kmod-6.1-nvidia-r580/Cargo.toml b/packages/kmod-6.1-nvidia-r580/Cargo.toml index 449be948..13a30cf9 100644 --- a/packages/kmod-6.1-nvidia-r580/Cargo.toml +++ b/packages/kmod-6.1-nvidia-r580/Cargo.toml @@ -50,5 +50,9 @@ url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/580.159. sha512 = "f9cee68cbb12095af4b4e92d01c210461789ef41c70b64efefd6719d0b88468b7a67a3629c432d4d9304c730b5d1a942228a5bcc74a03ab1c411c77c758cd938" force-upstream = true +[[package.metadata.build-package.external-files]] +url = "https://github.com/NVIDIA/gdrcopy/archive/v2.6/gdrcopy-2.6.tar.gz" +sha512 = "3653881de4380ecf85d26a93d9e4ce66679001c9901189707fb13cb98f2ff841eb6d67b63784d1e048db7f7c1975052f22fea0f7813233d96fded2bd39031342" + [build-dependencies] kernel-6_1 = { path = "../kernel-6.1" } diff --git a/packages/kmod-6.1-nvidia-r580/copy-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.1-nvidia-r580/copy-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..34d53abb --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/copy-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,19 @@ +[Unit] +Description=Copy GDRCopy kernel module (open-gpu) +RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels +# 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 +# disable manual restarts to prevent unnecessary kernel modules rewrites. +RefuseManualStart=true +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 +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.1-nvidia-r580/kmod-6.1-nvidia-r580.spec b/packages/kmod-6.1-nvidia-r580/kmod-6.1-nvidia-r580.spec index 4c3f8d1a..c1b96705 100644 --- a/packages/kmod-6.1-nvidia-r580/kmod-6.1-nvidia-r580.spec +++ b/packages/kmod-6.1-nvidia-r580/kmod-6.1-nvidia-r580.spec @@ -3,6 +3,7 @@ %global tesla_patch 03 %global tesla_ver %{tesla_major}.%{tesla_minor}.%{tesla_patch} %global grid_ver grid-19.5 +%global gdrcopy_ver 2.6 %if "%{?_cross_arch}" == "aarch64" %global nvidia_arch sbsa %else @@ -73,6 +74,14 @@ Source503: load-open-gpu-kernel-modules.service.in Source504: copy-grid-kernel-modules.service.in Source505: load-grid-kernel-modules.service.in +Source600: nvidia-gdrcopy-open-gpu-config.toml.in +Source601: copy-gdrcopy-open-gpu-kernel-module.service.in +Source602: load-gdrcopy-open-gpu-kernel-module.service.in +Source603: nvidia-gdrcopy-tmpfiles.conf + +# GDRcopy +Source700: https://github.com/NVIDIA/gdrcopy/archive/v%{gdrcopy_ver}/gdrcopy-%{gdrcopy_ver}.tar.gz + Patch001: 0001-makefile-allow-to-use-any-kernel-arch.patch BuildRequires: %{_cross_os}kernel-6.1-archive @@ -138,6 +147,16 @@ Requires: %{name} %description mps %{summary}. +%package gdrcopy +Summary: NVIDIA GDRCopy driver +Version: %{gdrcopy_ver} +License: MIT AND GPL-2.0-only +Requires: %{_cross_os}variant-platform(aws) +Requires: %{name} + +%description gdrcopy +%{summary}. + %prep # Extract nvidia sources with `-x`, otherwise the script will try to install # the driver in the current run @@ -244,6 +263,24 @@ and .devid != "0x2237")' supported-gpus.json | jq -s '{"open-gpu": .}' > open-gp jq -e '."open-gpu"[] | select(."devid" == "0x2330") | ."features"| index("kernelopen")' open-gpu-supported-devices.json popd +tar -xof %{S:700} +pushd gdrcopy-%{gdrcopy_ver}/src/gdrdrv +NVIDIA_SRC_DIR="%{_builddir}/NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}/kernel-open/nvidia" \ +NVIDIA_IS_OPENSOURCE=y \ +HAVE_VM_FLAGS_SET=n \ +HAVE_PROC_OPS=y \ +make %{?_smp_mflags} \ + -C %{kernel_sources} \ + M="$PWD" \ + ARCH=%{_cross_karch} \ + CC=%{_cross_target}-gcc \ + LD=%{_cross_target}-ld \ + modules + +%{_cross_target}-strip -g --strip-unneeded gdrdrv.ko +mv gdrdrv.ko ../../gdrdrv-open-gpu.ko +popd + %install install -d %{buildroot}%{_cross_libdir} install -d %{buildroot}%{_cross_libdir}/nvidia/tesla @@ -473,6 +510,26 @@ done popd +install -d %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/gdrdrv-open-gpu.ko \ + %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/LICENSE gdrcopy-LICENSE + +sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/|' %{S:600} > \ + nvidia-gdrcopy-open-gpu.toml +install -m 0644 nvidia-gdrcopy-open-gpu.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers + +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:601} > copy-gdrcopy-open-gpu-kernel-module.service +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:602} > load-gdrcopy-open-gpu-kernel-module.service +install -p -m 0644 \ + copy-gdrcopy-open-gpu-kernel-module.service \ + load-gdrcopy-open-gpu-kernel-module.service \ + %{buildroot}%{_cross_unitdir} + +install -p -m 0644 %{S:603} %{buildroot}%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf + %files %{_cross_attribution_file} %dir %{_cross_libexecdir}/nvidia @@ -758,3 +815,14 @@ popd %{_cross_bindir}/nvidia-cuda-mps-server %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-control %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-server + +%files gdrcopy +%license gdrcopy-LICENSE +%dir %{_cross_datadir}/nvidia/gdrcopy +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers +%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko +%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-gdrcopy-open-gpu.toml +%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf +%{_cross_unitdir}/copy-gdrcopy-open-gpu-kernel-module.service +%{_cross_unitdir}/load-gdrcopy-open-gpu-kernel-module.service diff --git a/packages/kmod-6.1-nvidia-r580/load-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.1-nvidia-r580/load-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..9d4f6504 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/load-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,20 @@ +[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 +# Disable manual restarts to prevent loading kernel modules +# that weren't linked by the running system +RefuseManualStart=true +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/ghostdog create-device gdrdrv 0 --path /dev/gdrdrv +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-gdrcopy-open-gpu-config.toml.in b/packages/kmod-6.1-nvidia-r580/nvidia-gdrcopy-open-gpu-config.toml.in new file mode 100644 index 00000000..6d73cb07 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-gdrcopy-open-gpu-config.toml.in @@ -0,0 +1,5 @@ +[nvidia-gdrcopy-open-gpu] +lib-modules-path = "kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu" + +[nvidia-gdrcopy-open-gpu.kernel-modules."gdrdrv.ko"] +copy-source = "__NVIDIA_MODULES__" diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-gdrcopy-tmpfiles.conf b/packages/kmod-6.1-nvidia-r580/nvidia-gdrcopy-tmpfiles.conf new file mode 100644 index 00000000..92ee7102 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-gdrcopy-tmpfiles.conf @@ -0,0 +1 @@ +C /etc/drivers/nvidia-gdrcopy-open-gpu.toml diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-tmpfiles.conf.in b/packages/kmod-6.1-nvidia-r580/nvidia-tmpfiles.conf.in index 967fc616..021ab70b 100644 --- a/packages/kmod-6.1-nvidia-r580/nvidia-tmpfiles.conf.in +++ b/packages/kmod-6.1-nvidia-r580/nvidia-tmpfiles.conf.in @@ -4,6 +4,10 @@ R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/op d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/open-gpu 0755 root root - - R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid - - - - - d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid 0755 root root - - +R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy - - - - - +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 - - - - diff --git a/packages/kmod-6.1-nvidia-r595/Cargo.toml b/packages/kmod-6.1-nvidia-r595/Cargo.toml index f7356792..f5d1bac0 100644 --- a/packages/kmod-6.1-nvidia-r595/Cargo.toml +++ b/packages/kmod-6.1-nvidia-r595/Cargo.toml @@ -50,5 +50,9 @@ url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/595.71.0 sha512 = "f9cee68cbb12095af4b4e92d01c210461789ef41c70b64efefd6719d0b88468b7a67a3629c432d4d9304c730b5d1a942228a5bcc74a03ab1c411c77c758cd938" force-upstream = true +[[package.metadata.build-package.external-files]] +url = "https://github.com/NVIDIA/gdrcopy/archive/v2.6/gdrcopy-2.6.tar.gz" +sha512 = "3653881de4380ecf85d26a93d9e4ce66679001c9901189707fb13cb98f2ff841eb6d67b63784d1e048db7f7c1975052f22fea0f7813233d96fded2bd39031342" + [build-dependencies] kernel-6_1 = { path = "../kernel-6.1" } diff --git a/packages/kmod-6.1-nvidia-r595/copy-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.1-nvidia-r595/copy-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..34d53abb --- /dev/null +++ b/packages/kmod-6.1-nvidia-r595/copy-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,19 @@ +[Unit] +Description=Copy GDRCopy kernel module (open-gpu) +RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels +# 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 +# disable manual restarts to prevent unnecessary kernel modules rewrites. +RefuseManualStart=true +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 +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.1-nvidia-r595/kmod-6.1-nvidia-r595.spec b/packages/kmod-6.1-nvidia-r595/kmod-6.1-nvidia-r595.spec index 06ed6c80..3821f35e 100644 --- a/packages/kmod-6.1-nvidia-r595/kmod-6.1-nvidia-r595.spec +++ b/packages/kmod-6.1-nvidia-r595/kmod-6.1-nvidia-r595.spec @@ -3,6 +3,7 @@ %global tesla_patch 05 %global tesla_ver %{tesla_major}.%{tesla_minor}.%{tesla_patch} %global grid_ver grid-20.1 +%global gdrcopy_ver 2.6 %if "%{?_cross_arch}" == "aarch64" %global nvidia_arch sbsa %else @@ -73,6 +74,14 @@ Source503: load-open-gpu-kernel-modules.service.in Source504: copy-grid-kernel-modules.service.in Source505: load-grid-kernel-modules.service.in +Source600: nvidia-gdrcopy-open-gpu-config.toml.in +Source601: copy-gdrcopy-open-gpu-kernel-module.service.in +Source602: load-gdrcopy-open-gpu-kernel-module.service.in +Source603: nvidia-gdrcopy-tmpfiles.conf + +# GDRcopy +Source700: https://github.com/NVIDIA/gdrcopy/archive/v%{gdrcopy_ver}/gdrcopy-%{gdrcopy_ver}.tar.gz + Patch001: 0001-makefile-allow-to-use-any-kernel-arch.patch BuildRequires: %{_cross_os}kernel-6.1-archive @@ -138,6 +147,16 @@ Requires: %{name} %description mps %{summary}. +%package gdrcopy +Summary: NVIDIA GDRCopy driver +Version: %{gdrcopy_ver} +License: MIT AND GPL-2.0-only +Requires: %{_cross_os}variant-platform(aws) +Requires: %{name} + +%description gdrcopy +%{summary}. + %prep # Extract nvidia sources with `-x`, otherwise the script will try to install # the driver in the current run @@ -244,6 +263,24 @@ and .devid != "0x2237")' supported-gpus.json | jq -s '{"open-gpu": .}' > open-gp jq -e '."open-gpu"[] | select(."devid" == "0x2330") | ."features"| index("kernelopen")' open-gpu-supported-devices.json popd +tar -xof %{S:700} +pushd gdrcopy-%{gdrcopy_ver}/src/gdrdrv +NVIDIA_SRC_DIR="%{_builddir}/NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}/kernel-open/nvidia" \ +NVIDIA_IS_OPENSOURCE=y \ +HAVE_VM_FLAGS_SET=n \ +HAVE_PROC_OPS=y \ +make %{?_smp_mflags} \ + -C %{kernel_sources} \ + M="$PWD" \ + ARCH=%{_cross_karch} \ + CC=%{_cross_target}-gcc \ + LD=%{_cross_target}-ld \ + modules + +%{_cross_target}-strip -g --strip-unneeded gdrdrv.ko +mv gdrdrv.ko ../../gdrdrv-open-gpu.ko +popd + %install install -d %{buildroot}%{_cross_libdir} install -d %{buildroot}%{_cross_libdir}/nvidia/tesla @@ -472,6 +509,26 @@ done popd +install -d %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/gdrdrv-open-gpu.ko \ + %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/LICENSE gdrcopy-LICENSE + +sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/|' %{S:600} > \ + nvidia-gdrcopy-open-gpu.toml +install -m 0644 nvidia-gdrcopy-open-gpu.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers + +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:601} > copy-gdrcopy-open-gpu-kernel-module.service +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:602} > load-gdrcopy-open-gpu-kernel-module.service +install -p -m 0644 \ + copy-gdrcopy-open-gpu-kernel-module.service \ + load-gdrcopy-open-gpu-kernel-module.service \ + %{buildroot}%{_cross_unitdir} + +install -p -m 0644 %{S:603} %{buildroot}%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf + %files %{_cross_attribution_file} %dir %{_cross_libexecdir}/nvidia @@ -760,3 +817,15 @@ popd %{_cross_bindir}/nvidia-cuda-mps-server %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-control %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-server + + +%files gdrcopy +%license gdrcopy-LICENSE +%dir %{_cross_datadir}/nvidia/gdrcopy +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers +%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko +%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-gdrcopy-open-gpu.toml +%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf +%{_cross_unitdir}/copy-gdrcopy-open-gpu-kernel-module.service +%{_cross_unitdir}/load-gdrcopy-open-gpu-kernel-module.service diff --git a/packages/kmod-6.1-nvidia-r595/load-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.1-nvidia-r595/load-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..9d4f6504 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r595/load-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,20 @@ +[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 +# Disable manual restarts to prevent loading kernel modules +# that weren't linked by the running system +RefuseManualStart=true +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/ghostdog create-device gdrdrv 0 --path /dev/gdrdrv +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.1-nvidia-r595/nvidia-gdrcopy-open-gpu-config.toml.in b/packages/kmod-6.1-nvidia-r595/nvidia-gdrcopy-open-gpu-config.toml.in new file mode 100644 index 00000000..6d73cb07 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r595/nvidia-gdrcopy-open-gpu-config.toml.in @@ -0,0 +1,5 @@ +[nvidia-gdrcopy-open-gpu] +lib-modules-path = "kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu" + +[nvidia-gdrcopy-open-gpu.kernel-modules."gdrdrv.ko"] +copy-source = "__NVIDIA_MODULES__" diff --git a/packages/kmod-6.1-nvidia-r595/nvidia-gdrcopy-tmpfiles.conf b/packages/kmod-6.1-nvidia-r595/nvidia-gdrcopy-tmpfiles.conf new file mode 100644 index 00000000..92ee7102 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r595/nvidia-gdrcopy-tmpfiles.conf @@ -0,0 +1 @@ +C /etc/drivers/nvidia-gdrcopy-open-gpu.toml diff --git a/packages/kmod-6.1-nvidia-r595/nvidia-tmpfiles.conf.in b/packages/kmod-6.1-nvidia-r595/nvidia-tmpfiles.conf.in index 967fc616..021ab70b 100644 --- a/packages/kmod-6.1-nvidia-r595/nvidia-tmpfiles.conf.in +++ b/packages/kmod-6.1-nvidia-r595/nvidia-tmpfiles.conf.in @@ -4,6 +4,10 @@ R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/op d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/open-gpu 0755 root root - - R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid - - - - - d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid 0755 root root - - +R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy - - - - - +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 - - - - diff --git a/packages/kmod-6.12-nvidia-r580/Cargo.toml b/packages/kmod-6.12-nvidia-r580/Cargo.toml index 3c7a1d1c..2f4b73d4 100644 --- a/packages/kmod-6.12-nvidia-r580/Cargo.toml +++ b/packages/kmod-6.12-nvidia-r580/Cargo.toml @@ -60,5 +60,9 @@ url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/580.159. sha512 = "f9cee68cbb12095af4b4e92d01c210461789ef41c70b64efefd6719d0b88468b7a67a3629c432d4d9304c730b5d1a942228a5bcc74a03ab1c411c77c758cd938" force-upstream = true +[[package.metadata.build-package.external-files]] +url = "https://github.com/NVIDIA/gdrcopy/archive/v2.6/gdrcopy-2.6.tar.gz" +sha512 = "3653881de4380ecf85d26a93d9e4ce66679001c9901189707fb13cb98f2ff841eb6d67b63784d1e048db7f7c1975052f22fea0f7813233d96fded2bd39031342" + [build-dependencies] kernel-6_12 = { path = "../kernel-6.12" } diff --git a/packages/kmod-6.12-nvidia-r580/copy-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.12-nvidia-r580/copy-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..34d53abb --- /dev/null +++ b/packages/kmod-6.12-nvidia-r580/copy-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,19 @@ +[Unit] +Description=Copy GDRCopy kernel module (open-gpu) +RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels +# 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 +# disable manual restarts to prevent unnecessary kernel modules rewrites. +RefuseManualStart=true +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 +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.12-nvidia-r580/kmod-6.12-nvidia-r580.spec b/packages/kmod-6.12-nvidia-r580/kmod-6.12-nvidia-r580.spec index 704afb68..a3a22e2a 100644 --- a/packages/kmod-6.12-nvidia-r580/kmod-6.12-nvidia-r580.spec +++ b/packages/kmod-6.12-nvidia-r580/kmod-6.12-nvidia-r580.spec @@ -3,6 +3,7 @@ %global tesla_patch 03 %global tesla_ver %{tesla_major}.%{tesla_minor}.%{tesla_patch} %global grid_ver grid-19.5 +%global gdrcopy_ver 2.6 %if "%{?_cross_arch}" == "aarch64" %global nvidia_arch sbsa %else @@ -84,6 +85,14 @@ Source503: load-open-gpu-kernel-modules.service.in Source504: copy-grid-kernel-modules.service.in Source505: load-grid-kernel-modules.service.in +Source600: nvidia-gdrcopy-open-gpu-config.toml.in +Source601: copy-gdrcopy-open-gpu-kernel-module.service.in +Source602: load-gdrcopy-open-gpu-kernel-module.service.in +Source603: nvidia-gdrcopy-tmpfiles.conf + +# GDRcopy +Source700: https://github.com/NVIDIA/gdrcopy/archive/v%{gdrcopy_ver}/gdrcopy-%{gdrcopy_ver}.tar.gz + Patch001: 0001-makefile-allow-to-use-any-kernel-arch.patch BuildRequires: %{_cross_os}kernel-6.12-devel @@ -164,6 +173,16 @@ Requires: %{name} %description mps %{summary}. +%package gdrcopy +Summary: NVIDIA GDRCopy driver +Version: %{gdrcopy_ver} +License: MIT AND GPL-2.0-only +Requires: %{_cross_os}variant-platform(aws) +Requires: %{name} + +%description gdrcopy +%{summary}. + %prep # Extract nvidia sources with `-x`, otherwise the script will try to install # the driver in the current run @@ -272,6 +291,24 @@ and .devid != "0x2237")' supported-gpus.json | jq -s '{"open-gpu": .}' > open-gp jq -e '."open-gpu"[] | select(."devid" == "0x2330") | ."features"| index("kernelopen")' open-gpu-supported-devices.json popd +tar -xof %{S:700} +pushd gdrcopy-%{gdrcopy_ver}/src/gdrdrv +NVIDIA_SRC_DIR="%{_builddir}/NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}/kernel-open/nvidia" \ +NVIDIA_IS_OPENSOURCE=y \ +HAVE_VM_FLAGS_SET=y \ +HAVE_PROC_OPS=y \ +make %{?_smp_mflags} \ + -C %{kernel_sources} \ + M="$PWD" \ + ARCH=%{_cross_karch} \ + CC=%{_cross_target}-gcc \ + LD=%{_cross_target}-ld \ + modules + +%{_cross_target}-strip -g --strip-unneeded gdrdrv.ko +mv gdrdrv.ko ../../gdrdrv-open-gpu.ko +popd + %install install -d %{buildroot}%{_cross_libdir} install -d %{buildroot}%{_cross_libdir}/nvidia/tesla @@ -520,6 +557,26 @@ install -p -m 0644 %{S:217} %{buildroot}%{_cross_tmpfilesdir}/nvidia-imex.conf install -d %{buildroot}%{_cross_libdir}/modprobe.d install -p -m 0644 %{S:218} %{buildroot}%{_cross_libdir}/modprobe.d/10-nvidia-default-imex-channel.conf +install -d %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/gdrdrv-open-gpu.ko \ + %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/LICENSE gdrcopy-LICENSE + +sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/|' %{S:600} > \ + nvidia-gdrcopy-open-gpu.toml +install -m 0644 nvidia-gdrcopy-open-gpu.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers + +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:601} > copy-gdrcopy-open-gpu-kernel-module.service +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:602} > load-gdrcopy-open-gpu-kernel-module.service +install -p -m 0644 \ + copy-gdrcopy-open-gpu-kernel-module.service \ + load-gdrcopy-open-gpu-kernel-module.service \ + %{buildroot}%{_cross_unitdir} + +install -p -m 0644 %{S:603} %{buildroot}%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf + %files %{_cross_attribution_file} %dir %{_cross_libexecdir}/nvidia @@ -815,3 +872,14 @@ install -p -m 0644 %{S:218} %{buildroot}%{_cross_libdir}/modprobe.d/10-nvidia-de %{_cross_bindir}/nvidia-cuda-mps-server %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-control %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-server + +%files gdrcopy +%license gdrcopy-LICENSE +%dir %{_cross_datadir}/nvidia/gdrcopy +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers +%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko +%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-gdrcopy-open-gpu.toml +%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf +%{_cross_unitdir}/copy-gdrcopy-open-gpu-kernel-module.service +%{_cross_unitdir}/load-gdrcopy-open-gpu-kernel-module.service diff --git a/packages/kmod-6.12-nvidia-r580/load-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.12-nvidia-r580/load-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..9d4f6504 --- /dev/null +++ b/packages/kmod-6.12-nvidia-r580/load-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,20 @@ +[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 +# Disable manual restarts to prevent loading kernel modules +# that weren't linked by the running system +RefuseManualStart=true +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/ghostdog create-device gdrdrv 0 --path /dev/gdrdrv +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.12-nvidia-r580/nvidia-gdrcopy-open-gpu-config.toml.in b/packages/kmod-6.12-nvidia-r580/nvidia-gdrcopy-open-gpu-config.toml.in new file mode 100644 index 00000000..6d73cb07 --- /dev/null +++ b/packages/kmod-6.12-nvidia-r580/nvidia-gdrcopy-open-gpu-config.toml.in @@ -0,0 +1,5 @@ +[nvidia-gdrcopy-open-gpu] +lib-modules-path = "kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu" + +[nvidia-gdrcopy-open-gpu.kernel-modules."gdrdrv.ko"] +copy-source = "__NVIDIA_MODULES__" diff --git a/packages/kmod-6.12-nvidia-r580/nvidia-gdrcopy-tmpfiles.conf b/packages/kmod-6.12-nvidia-r580/nvidia-gdrcopy-tmpfiles.conf new file mode 100644 index 00000000..92ee7102 --- /dev/null +++ b/packages/kmod-6.12-nvidia-r580/nvidia-gdrcopy-tmpfiles.conf @@ -0,0 +1 @@ +C /etc/drivers/nvidia-gdrcopy-open-gpu.toml diff --git a/packages/kmod-6.12-nvidia-r580/nvidia-tmpfiles.conf.in b/packages/kmod-6.12-nvidia-r580/nvidia-tmpfiles.conf.in index 967fc616..021ab70b 100644 --- a/packages/kmod-6.12-nvidia-r580/nvidia-tmpfiles.conf.in +++ b/packages/kmod-6.12-nvidia-r580/nvidia-tmpfiles.conf.in @@ -4,6 +4,10 @@ R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/op d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/open-gpu 0755 root root - - R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid - - - - - d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid 0755 root root - - +R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy - - - - - +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 - - - - diff --git a/packages/kmod-6.12-nvidia-r595/Cargo.toml b/packages/kmod-6.12-nvidia-r595/Cargo.toml index 9447bb1c..d54b40bc 100644 --- a/packages/kmod-6.12-nvidia-r595/Cargo.toml +++ b/packages/kmod-6.12-nvidia-r595/Cargo.toml @@ -60,5 +60,9 @@ url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/595.71.0 sha512 = "f9cee68cbb12095af4b4e92d01c210461789ef41c70b64efefd6719d0b88468b7a67a3629c432d4d9304c730b5d1a942228a5bcc74a03ab1c411c77c758cd938" force-upstream = true +[[package.metadata.build-package.external-files]] +url = "https://github.com/NVIDIA/gdrcopy/archive/v2.6/gdrcopy-2.6.tar.gz" +sha512 = "3653881de4380ecf85d26a93d9e4ce66679001c9901189707fb13cb98f2ff841eb6d67b63784d1e048db7f7c1975052f22fea0f7813233d96fded2bd39031342" + [build-dependencies] kernel-6_12 = { path = "../kernel-6.12" } diff --git a/packages/kmod-6.12-nvidia-r595/copy-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.12-nvidia-r595/copy-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..34d53abb --- /dev/null +++ b/packages/kmod-6.12-nvidia-r595/copy-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,19 @@ +[Unit] +Description=Copy GDRCopy kernel module (open-gpu) +RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels +# 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 +# disable manual restarts to prevent unnecessary kernel modules rewrites. +RefuseManualStart=true +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 +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.12-nvidia-r595/kmod-6.12-nvidia-r595.spec b/packages/kmod-6.12-nvidia-r595/kmod-6.12-nvidia-r595.spec index cdc46e5e..c1300b3f 100644 --- a/packages/kmod-6.12-nvidia-r595/kmod-6.12-nvidia-r595.spec +++ b/packages/kmod-6.12-nvidia-r595/kmod-6.12-nvidia-r595.spec @@ -3,6 +3,7 @@ %global tesla_patch 05 %global tesla_ver %{tesla_major}.%{tesla_minor}.%{tesla_patch} %global grid_ver grid-20.1 +%global gdrcopy_ver 2.6 %if "%{?_cross_arch}" == "aarch64" %global nvidia_arch sbsa %else @@ -80,6 +81,14 @@ Source503: load-open-gpu-kernel-modules.service.in Source504: copy-grid-kernel-modules.service.in Source505: load-grid-kernel-modules.service.in +Source600: nvidia-gdrcopy-open-gpu-config.toml.in +Source601: copy-gdrcopy-open-gpu-kernel-module.service.in +Source602: load-gdrcopy-open-gpu-kernel-module.service.in +Source603: nvidia-gdrcopy-tmpfiles.conf + +# GDRcopy +Source700: https://github.com/NVIDIA/gdrcopy/archive/v%{gdrcopy_ver}/gdrcopy-%{gdrcopy_ver}.tar.gz + Patch001: 0001-makefile-allow-to-use-any-kernel-arch.patch BuildRequires: %{_cross_os}kernel-6.12-devel @@ -153,6 +162,16 @@ Requires: %{name} %description mps %{summary}. +%package gdrcopy +Summary: NVIDIA GDRCopy driver +Version: %{gdrcopy_ver} +License: MIT AND GPL-2.0-only +Requires: %{_cross_os}variant-platform(aws) +Requires: %{name} + +%description gdrcopy +%{summary}. + %prep # Extract nvidia sources with `-x`, otherwise the script will try to install # the driver in the current run @@ -261,6 +280,24 @@ and .devid != "0x2237")' supported-gpus.json | jq -s '{"open-gpu": .}' > open-gp jq -e '."open-gpu"[] | select(."devid" == "0x2330") | ."features"| index("kernelopen")' open-gpu-supported-devices.json popd +tar -xof %{S:700} +pushd gdrcopy-%{gdrcopy_ver}/src/gdrdrv +NVIDIA_SRC_DIR="%{_builddir}/NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}/kernel-open/nvidia" \ +NVIDIA_IS_OPENSOURCE=y \ +HAVE_VM_FLAGS_SET=y \ +HAVE_PROC_OPS=y \ +make %{?_smp_mflags} \ + -C %{kernel_sources} \ + M="$PWD" \ + ARCH=%{_cross_karch} \ + CC=%{_cross_target}-gcc \ + LD=%{_cross_target}-ld \ + modules + +%{_cross_target}-strip -g --strip-unneeded gdrdrv.ko +mv gdrdrv.ko ../../gdrdrv-open-gpu.ko +popd + %install install -d %{buildroot}%{_cross_libdir} install -d %{buildroot}%{_cross_libdir}/nvidia/tesla @@ -498,6 +535,26 @@ install -p -m 0755 usr/bin/nvidia-imex-ctl %{buildroot}%{_cross_bindir} popd +install -d %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/gdrdrv-open-gpu.ko \ + %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/LICENSE gdrcopy-LICENSE + +sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/|' %{S:600} > \ + nvidia-gdrcopy-open-gpu.toml +install -m 0644 nvidia-gdrcopy-open-gpu.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers + +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:601} > copy-gdrcopy-open-gpu-kernel-module.service +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:602} > load-gdrcopy-open-gpu-kernel-module.service +install -p -m 0644 \ + copy-gdrcopy-open-gpu-kernel-module.service \ + load-gdrcopy-open-gpu-kernel-module.service \ + %{buildroot}%{_cross_unitdir} + +install -p -m 0644 %{S:603} %{buildroot}%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf + %files %{_cross_attribution_file} %dir %{_cross_libexecdir}/nvidia @@ -792,3 +849,14 @@ popd %{_cross_bindir}/nvidia-cuda-mps-server %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-control %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-server + +%files gdrcopy +%license gdrcopy-LICENSE +%dir %{_cross_datadir}/nvidia/gdrcopy +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers +%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko +%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-gdrcopy-open-gpu.toml +%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf +%{_cross_unitdir}/copy-gdrcopy-open-gpu-kernel-module.service +%{_cross_unitdir}/load-gdrcopy-open-gpu-kernel-module.service diff --git a/packages/kmod-6.12-nvidia-r595/load-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.12-nvidia-r595/load-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..9d4f6504 --- /dev/null +++ b/packages/kmod-6.12-nvidia-r595/load-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,20 @@ +[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 +# Disable manual restarts to prevent loading kernel modules +# that weren't linked by the running system +RefuseManualStart=true +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/ghostdog create-device gdrdrv 0 --path /dev/gdrdrv +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.12-nvidia-r595/nvidia-gdrcopy-open-gpu-config.toml.in b/packages/kmod-6.12-nvidia-r595/nvidia-gdrcopy-open-gpu-config.toml.in new file mode 100644 index 00000000..6d73cb07 --- /dev/null +++ b/packages/kmod-6.12-nvidia-r595/nvidia-gdrcopy-open-gpu-config.toml.in @@ -0,0 +1,5 @@ +[nvidia-gdrcopy-open-gpu] +lib-modules-path = "kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu" + +[nvidia-gdrcopy-open-gpu.kernel-modules."gdrdrv.ko"] +copy-source = "__NVIDIA_MODULES__" diff --git a/packages/kmod-6.12-nvidia-r595/nvidia-gdrcopy-tmpfiles.conf b/packages/kmod-6.12-nvidia-r595/nvidia-gdrcopy-tmpfiles.conf new file mode 100644 index 00000000..92ee7102 --- /dev/null +++ b/packages/kmod-6.12-nvidia-r595/nvidia-gdrcopy-tmpfiles.conf @@ -0,0 +1 @@ +C /etc/drivers/nvidia-gdrcopy-open-gpu.toml diff --git a/packages/kmod-6.12-nvidia-r595/nvidia-tmpfiles.conf.in b/packages/kmod-6.12-nvidia-r595/nvidia-tmpfiles.conf.in index 967fc616..021ab70b 100644 --- a/packages/kmod-6.12-nvidia-r595/nvidia-tmpfiles.conf.in +++ b/packages/kmod-6.12-nvidia-r595/nvidia-tmpfiles.conf.in @@ -4,6 +4,10 @@ R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/op d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/open-gpu 0755 root root - - R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid - - - - - d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid 0755 root root - - +R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy - - - - - +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 - - - - diff --git a/packages/kmod-6.18-nvidia-r580/Cargo.toml b/packages/kmod-6.18-nvidia-r580/Cargo.toml index d7b89db5..7ee73c01 100644 --- a/packages/kmod-6.18-nvidia-r580/Cargo.toml +++ b/packages/kmod-6.18-nvidia-r580/Cargo.toml @@ -60,5 +60,9 @@ url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/580.159. sha512 = "f9cee68cbb12095af4b4e92d01c210461789ef41c70b64efefd6719d0b88468b7a67a3629c432d4d9304c730b5d1a942228a5bcc74a03ab1c411c77c758cd938" force-upstream = true +[[package.metadata.build-package.external-files]] +url = "https://github.com/NVIDIA/gdrcopy/archive/v2.6/gdrcopy-2.6.tar.gz" +sha512 = "3653881de4380ecf85d26a93d9e4ce66679001c9901189707fb13cb98f2ff841eb6d67b63784d1e048db7f7c1975052f22fea0f7813233d96fded2bd39031342" + [build-dependencies] kernel-6_18 = { path = "../kernel-6.18" } diff --git a/packages/kmod-6.18-nvidia-r580/copy-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.18-nvidia-r580/copy-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..34d53abb --- /dev/null +++ b/packages/kmod-6.18-nvidia-r580/copy-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,19 @@ +[Unit] +Description=Copy GDRCopy kernel module (open-gpu) +RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels +# 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 +# disable manual restarts to prevent unnecessary kernel modules rewrites. +RefuseManualStart=true +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 +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.18-nvidia-r580/kmod-6.18-nvidia-r580.spec b/packages/kmod-6.18-nvidia-r580/kmod-6.18-nvidia-r580.spec index ce02b846..08f2717b 100644 --- a/packages/kmod-6.18-nvidia-r580/kmod-6.18-nvidia-r580.spec +++ b/packages/kmod-6.18-nvidia-r580/kmod-6.18-nvidia-r580.spec @@ -3,6 +3,7 @@ %global tesla_patch 03 %global tesla_ver %{tesla_major}.%{tesla_minor}.%{tesla_patch} %global grid_ver grid-19.5 +%global gdrcopy_ver 2.6 %if "%{?_cross_arch}" == "aarch64" %global nvidia_arch sbsa %else @@ -84,6 +85,14 @@ Source503: load-open-gpu-kernel-modules.service.in Source504: copy-grid-kernel-modules.service.in Source505: load-grid-kernel-modules.service.in +Source600: nvidia-gdrcopy-open-gpu-config.toml.in +Source601: copy-gdrcopy-open-gpu-kernel-module.service.in +Source602: load-gdrcopy-open-gpu-kernel-module.service.in +Source603: nvidia-gdrcopy-tmpfiles.conf + +# GDRcopy +Source700: https://github.com/NVIDIA/gdrcopy/archive/v%{gdrcopy_ver}/gdrcopy-%{gdrcopy_ver}.tar.gz + Patch001: 0001-makefile-allow-to-use-any-kernel-arch.patch BuildRequires: %{_cross_os}kernel-6.18-devel @@ -164,6 +173,16 @@ Requires: %{name} %description mps %{summary}. +%package gdrcopy +Summary: NVIDIA GDRCopy driver +Version: %{gdrcopy_ver} +License: MIT AND GPL-2.0-only +Requires: %{_cross_os}variant-platform(aws) +Requires: %{name} + +%description gdrcopy +%{summary}. + %prep # Extract nvidia sources with `-x`, otherwise the script will try to install # the driver in the current run @@ -272,6 +291,24 @@ and .devid != "0x2237")' supported-gpus.json | jq -s '{"open-gpu": .}' > open-gp jq -e '."open-gpu"[] | select(."devid" == "0x2330") | ."features"| index("kernelopen")' open-gpu-supported-devices.json popd +tar -xof %{S:700} +pushd gdrcopy-%{gdrcopy_ver}/src/gdrdrv +NVIDIA_SRC_DIR="%{_builddir}/NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}/kernel-open/nvidia" \ +NVIDIA_IS_OPENSOURCE=y \ +HAVE_VM_FLAGS_SET=y \ +HAVE_PROC_OPS=y \ +make %{?_smp_mflags} \ + -C %{kernel_sources} \ + M="$PWD" \ + ARCH=%{_cross_karch} \ + CC=%{_cross_target}-gcc \ + LD=%{_cross_target}-ld \ + modules + +%{_cross_target}-strip -g --strip-unneeded gdrdrv.ko +mv gdrdrv.ko ../../gdrdrv-open-gpu.ko +popd + %install install -d %{buildroot}%{_cross_libdir} install -d %{buildroot}%{_cross_libdir}/nvidia/tesla @@ -520,6 +557,26 @@ install -p -m 0644 %{S:217} %{buildroot}%{_cross_tmpfilesdir}/nvidia-imex.conf install -d %{buildroot}%{_cross_libdir}/modprobe.d install -p -m 0644 %{S:218} %{buildroot}%{_cross_libdir}/modprobe.d/10-nvidia-default-imex-channel.conf +install -d %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/gdrdrv-open-gpu.ko \ + %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/LICENSE gdrcopy-LICENSE + +sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/|' %{S:600} > \ + nvidia-gdrcopy-open-gpu.toml +install -m 0644 nvidia-gdrcopy-open-gpu.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers + +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:601} > copy-gdrcopy-open-gpu-kernel-module.service +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:602} > load-gdrcopy-open-gpu-kernel-module.service +install -p -m 0644 \ + copy-gdrcopy-open-gpu-kernel-module.service \ + load-gdrcopy-open-gpu-kernel-module.service \ + %{buildroot}%{_cross_unitdir} + +install -p -m 0644 %{S:603} %{buildroot}%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf + %files %{_cross_attribution_file} %dir %{_cross_libexecdir}/nvidia @@ -815,3 +872,14 @@ install -p -m 0644 %{S:218} %{buildroot}%{_cross_libdir}/modprobe.d/10-nvidia-de %{_cross_bindir}/nvidia-cuda-mps-server %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-control %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-server + +%files gdrcopy +%license gdrcopy-LICENSE +%dir %{_cross_datadir}/nvidia/gdrcopy +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers +%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko +%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-gdrcopy-open-gpu.toml +%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf +%{_cross_unitdir}/copy-gdrcopy-open-gpu-kernel-module.service +%{_cross_unitdir}/load-gdrcopy-open-gpu-kernel-module.service diff --git a/packages/kmod-6.18-nvidia-r580/load-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.18-nvidia-r580/load-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..9d4f6504 --- /dev/null +++ b/packages/kmod-6.18-nvidia-r580/load-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,20 @@ +[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 +# Disable manual restarts to prevent loading kernel modules +# that weren't linked by the running system +RefuseManualStart=true +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/ghostdog create-device gdrdrv 0 --path /dev/gdrdrv +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.18-nvidia-r580/nvidia-gdrcopy-open-gpu-config.toml.in b/packages/kmod-6.18-nvidia-r580/nvidia-gdrcopy-open-gpu-config.toml.in new file mode 100644 index 00000000..6d73cb07 --- /dev/null +++ b/packages/kmod-6.18-nvidia-r580/nvidia-gdrcopy-open-gpu-config.toml.in @@ -0,0 +1,5 @@ +[nvidia-gdrcopy-open-gpu] +lib-modules-path = "kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu" + +[nvidia-gdrcopy-open-gpu.kernel-modules."gdrdrv.ko"] +copy-source = "__NVIDIA_MODULES__" diff --git a/packages/kmod-6.18-nvidia-r580/nvidia-gdrcopy-tmpfiles.conf b/packages/kmod-6.18-nvidia-r580/nvidia-gdrcopy-tmpfiles.conf new file mode 100644 index 00000000..92ee7102 --- /dev/null +++ b/packages/kmod-6.18-nvidia-r580/nvidia-gdrcopy-tmpfiles.conf @@ -0,0 +1 @@ +C /etc/drivers/nvidia-gdrcopy-open-gpu.toml diff --git a/packages/kmod-6.18-nvidia-r580/nvidia-tmpfiles.conf.in b/packages/kmod-6.18-nvidia-r580/nvidia-tmpfiles.conf.in index 967fc616..021ab70b 100644 --- a/packages/kmod-6.18-nvidia-r580/nvidia-tmpfiles.conf.in +++ b/packages/kmod-6.18-nvidia-r580/nvidia-tmpfiles.conf.in @@ -4,6 +4,10 @@ R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/op d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/open-gpu 0755 root root - - R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid - - - - - d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid 0755 root root - - +R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy - - - - - +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 - - - - diff --git a/packages/kmod-6.18-nvidia-r595/Cargo.toml b/packages/kmod-6.18-nvidia-r595/Cargo.toml index d9cd25c9..79c47b36 100644 --- a/packages/kmod-6.18-nvidia-r595/Cargo.toml +++ b/packages/kmod-6.18-nvidia-r595/Cargo.toml @@ -60,5 +60,9 @@ url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/595.71.0 sha512 = "f9cee68cbb12095af4b4e92d01c210461789ef41c70b64efefd6719d0b88468b7a67a3629c432d4d9304c730b5d1a942228a5bcc74a03ab1c411c77c758cd938" force-upstream = true +[[package.metadata.build-package.external-files]] +url = "https://github.com/NVIDIA/gdrcopy/archive/v2.6/gdrcopy-2.6.tar.gz" +sha512 = "3653881de4380ecf85d26a93d9e4ce66679001c9901189707fb13cb98f2ff841eb6d67b63784d1e048db7f7c1975052f22fea0f7813233d96fded2bd39031342" + [build-dependencies] kernel-6_18 = { path = "../kernel-6.18" } diff --git a/packages/kmod-6.18-nvidia-r595/copy-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.18-nvidia-r595/copy-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..34d53abb --- /dev/null +++ b/packages/kmod-6.18-nvidia-r595/copy-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,19 @@ +[Unit] +Description=Copy GDRCopy kernel module (open-gpu) +RequiresMountsFor=PREFIX/lib/modules PREFIX/src/kernels +# 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 +# disable manual restarts to prevent unnecessary kernel modules rewrites. +RefuseManualStart=true +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 +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.18-nvidia-r595/kmod-6.18-nvidia-r595.spec b/packages/kmod-6.18-nvidia-r595/kmod-6.18-nvidia-r595.spec index 9a84f59d..1fe5f6c3 100644 --- a/packages/kmod-6.18-nvidia-r595/kmod-6.18-nvidia-r595.spec +++ b/packages/kmod-6.18-nvidia-r595/kmod-6.18-nvidia-r595.spec @@ -3,6 +3,7 @@ %global tesla_patch 05 %global tesla_ver %{tesla_major}.%{tesla_minor}.%{tesla_patch} %global grid_ver grid-20.1 +%global gdrcopy_ver 2.6 %if "%{?_cross_arch}" == "aarch64" %global nvidia_arch sbsa %else @@ -80,6 +81,14 @@ Source503: load-open-gpu-kernel-modules.service.in Source504: copy-grid-kernel-modules.service.in Source505: load-grid-kernel-modules.service.in +Source600: nvidia-gdrcopy-open-gpu-config.toml.in +Source601: copy-gdrcopy-open-gpu-kernel-module.service.in +Source602: load-gdrcopy-open-gpu-kernel-module.service.in +Source603: nvidia-gdrcopy-tmpfiles.conf + +# GDRcopy +Source700: https://github.com/NVIDIA/gdrcopy/archive/v%{gdrcopy_ver}/gdrcopy-%{gdrcopy_ver}.tar.gz + Patch001: 0001-makefile-allow-to-use-any-kernel-arch.patch BuildRequires: %{_cross_os}kernel-6.18-devel @@ -153,6 +162,16 @@ Requires: %{name} %description mps %{summary}. +%package gdrcopy +Summary: NVIDIA GDRCopy driver +Version: %{gdrcopy_ver} +License: MIT AND GPL-2.0-only +Requires: %{_cross_os}variant-platform(aws) +Requires: %{name} + +%description gdrcopy +%{summary}. + %prep # Extract nvidia sources with `-x`, otherwise the script will try to install # the driver in the current run @@ -261,6 +280,24 @@ and .devid != "0x2237")' supported-gpus.json | jq -s '{"open-gpu": .}' > open-gp jq -e '."open-gpu"[] | select(."devid" == "0x2330") | ."features"| index("kernelopen")' open-gpu-supported-devices.json popd +tar -xof %{S:700} +pushd gdrcopy-%{gdrcopy_ver}/src/gdrdrv +NVIDIA_SRC_DIR="%{_builddir}/NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}/kernel-open/nvidia" \ +NVIDIA_IS_OPENSOURCE=y \ +HAVE_VM_FLAGS_SET=y \ +HAVE_PROC_OPS=y \ +make %{?_smp_mflags} \ + -C %{kernel_sources} \ + M="$PWD" \ + ARCH=%{_cross_karch} \ + CC=%{_cross_target}-gcc \ + LD=%{_cross_target}-ld \ + modules + +%{_cross_target}-strip -g --strip-unneeded gdrdrv.ko +mv gdrdrv.ko ../../gdrdrv-open-gpu.ko +popd + %install install -d %{buildroot}%{_cross_libdir} install -d %{buildroot}%{_cross_libdir}/nvidia/tesla @@ -498,6 +535,26 @@ install -p -m 0755 usr/bin/nvidia-imex-ctl %{buildroot}%{_cross_bindir} popd +install -d %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/gdrdrv-open-gpu.ko \ + %{buildroot}%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko + +install -p -m 0644 gdrcopy-%{gdrcopy_ver}/LICENSE gdrcopy-LICENSE + +sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/|' %{S:600} > \ + nvidia-gdrcopy-open-gpu.toml +install -m 0644 nvidia-gdrcopy-open-gpu.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers + +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:601} > copy-gdrcopy-open-gpu-kernel-module.service +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:602} > load-gdrcopy-open-gpu-kernel-module.service +install -p -m 0644 \ + copy-gdrcopy-open-gpu-kernel-module.service \ + load-gdrcopy-open-gpu-kernel-module.service \ + %{buildroot}%{_cross_unitdir} + +install -p -m 0644 %{S:603} %{buildroot}%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf + %files %{_cross_attribution_file} %dir %{_cross_libexecdir}/nvidia @@ -792,3 +849,15 @@ popd %{_cross_bindir}/nvidia-cuda-mps-server %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-control %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-server + + +%files gdrcopy +%license gdrcopy-LICENSE +%dir %{_cross_datadir}/nvidia/gdrcopy +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu +%dir %{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers +%{_cross_datadir}/nvidia/gdrcopy/open-gpu/drivers/gdrdrv.ko +%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-gdrcopy-open-gpu.toml +%{_cross_tmpfilesdir}/nvidia-gdrcopy.conf +%{_cross_unitdir}/copy-gdrcopy-open-gpu-kernel-module.service +%{_cross_unitdir}/load-gdrcopy-open-gpu-kernel-module.service diff --git a/packages/kmod-6.18-nvidia-r595/load-gdrcopy-open-gpu-kernel-module.service.in b/packages/kmod-6.18-nvidia-r595/load-gdrcopy-open-gpu-kernel-module.service.in new file mode 100644 index 00000000..9d4f6504 --- /dev/null +++ b/packages/kmod-6.18-nvidia-r595/load-gdrcopy-open-gpu-kernel-module.service.in @@ -0,0 +1,20 @@ +[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 +# Disable manual restarts to prevent loading kernel modules +# that weren't linked by the running system +RefuseManualStart=true +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/ghostdog create-device gdrdrv 0 --path /dev/gdrdrv +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=drivers.target diff --git a/packages/kmod-6.18-nvidia-r595/nvidia-gdrcopy-open-gpu-config.toml.in b/packages/kmod-6.18-nvidia-r595/nvidia-gdrcopy-open-gpu-config.toml.in new file mode 100644 index 00000000..6d73cb07 --- /dev/null +++ b/packages/kmod-6.18-nvidia-r595/nvidia-gdrcopy-open-gpu-config.toml.in @@ -0,0 +1,5 @@ +[nvidia-gdrcopy-open-gpu] +lib-modules-path = "kernel/drivers/extra/video/nvidia/gdrcopy/open-gpu" + +[nvidia-gdrcopy-open-gpu.kernel-modules."gdrdrv.ko"] +copy-source = "__NVIDIA_MODULES__" diff --git a/packages/kmod-6.18-nvidia-r595/nvidia-gdrcopy-tmpfiles.conf b/packages/kmod-6.18-nvidia-r595/nvidia-gdrcopy-tmpfiles.conf new file mode 100644 index 00000000..92ee7102 --- /dev/null +++ b/packages/kmod-6.18-nvidia-r595/nvidia-gdrcopy-tmpfiles.conf @@ -0,0 +1 @@ +C /etc/drivers/nvidia-gdrcopy-open-gpu.toml diff --git a/packages/kmod-6.18-nvidia-r595/nvidia-tmpfiles.conf.in b/packages/kmod-6.18-nvidia-r595/nvidia-tmpfiles.conf.in index 967fc616..021ab70b 100644 --- a/packages/kmod-6.18-nvidia-r595/nvidia-tmpfiles.conf.in +++ b/packages/kmod-6.18-nvidia-r595/nvidia-tmpfiles.conf.in @@ -4,6 +4,10 @@ R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/op d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/open-gpu 0755 root root - - R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid - - - - - d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/grid 0755 root root - - +R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/gdrcopy - - - - - +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 - - - -