diff --git a/Cargo.lock b/Cargo.lock index 094a857f..d8a0354a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,6 +10,7 @@ dependencies = [ "kernel-6_1", "kernel-6_12", "kmod-6_1-nvidia-r570", + "kmod-6_1-nvidia-r580", "kmod-6_12-nvidia-r570", "kmod-6_12-nvidia-r580", "libkcapi", @@ -45,6 +46,13 @@ dependencies = [ "kernel-6_1", ] +[[package]] +name = "kmod-6_1-nvidia-r580" +version = "0.1.0" +dependencies = [ + "kernel-6_1", +] + [[package]] name = "kmod-6_12-nvidia-r570" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 08cee8fe..896f2444 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ members = [ "packages/kernel-6.1", "packages/kernel-6.12", "packages/kmod-6.1-nvidia-r570", + "packages/kmod-6.1-nvidia-r580", "packages/kmod-6.12-nvidia-r570", "packages/kmod-6.12-nvidia-r580", "packages/nvidia-migmanager", diff --git a/kits/bottlerocket-kernel-kit/Cargo.toml b/kits/bottlerocket-kernel-kit/Cargo.toml index 19e50563..1fb6455d 100644 --- a/kits/bottlerocket-kernel-kit/Cargo.toml +++ b/kits/bottlerocket-kernel-kit/Cargo.toml @@ -16,6 +16,7 @@ grub = { path = "../../packages/grub" } kernel-6_1 = { path = "../../packages/kernel-6.1" } kernel-6_12 = { path = "../../packages/kernel-6.12" } kmod-6_1-nvidia-r570 = { path = "../../packages/kmod-6.1-nvidia-r570" } +kmod-6_1-nvidia-r580 = { path = "../../packages/kmod-6.1-nvidia-r580" } kmod-6_12-nvidia-r570 = { path = "../../packages/kmod-6.12-nvidia-r570" } kmod-6_12-nvidia-r580 = { path = "../../packages/kmod-6.12-nvidia-r580" } nvidia-migmanager = { path = "../../packages/nvidia-migmanager" } diff --git a/packages/kmod-6.1-nvidia-r570/.gitignore b/packages/kmod-6.1-nvidia-r570/.gitignore index db8b415b..a0b85133 100644 --- a/packages/kmod-6.1-nvidia-r570/.gitignore +++ b/packages/kmod-6.1-nvidia-r570/.gitignore @@ -1,3 +1,4 @@ NVidiaEULAforAWS.pdf +NvidiaGridAWSUserLicenseAgreement.DOCX COPYING *.rpm diff --git a/packages/kmod-6.1-nvidia-r580/.gitignore b/packages/kmod-6.1-nvidia-r580/.gitignore new file mode 100644 index 00000000..a0b85133 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/.gitignore @@ -0,0 +1,4 @@ +NVidiaEULAforAWS.pdf +NvidiaGridAWSUserLicenseAgreement.DOCX +COPYING +*.rpm diff --git a/packages/kmod-6.1-nvidia-r580/0001-makefile-allow-to-use-any-kernel-arch.patch b/packages/kmod-6.1-nvidia-r580/0001-makefile-allow-to-use-any-kernel-arch.patch new file mode 100644 index 00000000..75d542f5 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/0001-makefile-allow-to-use-any-kernel-arch.patch @@ -0,0 +1,65 @@ +From 8d9bbc893466da39eea9f5b92dc2797cb7d79e12 Mon Sep 17 00:00:00 2001 +From: Shikha Vyaghra +Date: Wed, 8 Jan 2025 19:42:26 +0000 +Subject: [PATCH] makefile: allow to use any kernel arch + +The added check results in failing build for x86_64 architecture when we use +`_cross_karch` in make commands in spec file and fails for aarch64 while +using _cross_arch in the make commands. + +This check has been added recently and do not allow us to use +Kernel_ARCH we want. + +We need different Kernel arch as we do cross builds. + +Signed-off-by: Shikha Vyaghra +Signed-off-by: Matthew Yeazel +--- + kernel-open/Makefile | 10 ---------- + kernel/Makefile | 10 ---------- + 2 files changed, 20 deletions(-) + +diff --git a/kernel-open/Makefile b/kernel-open/Makefile +index f7a8db6..725d474 100644 +--- a/kernel-open/Makefile ++++ b/kernel-open/Makefile +@@ -104,16 +104,6 @@ else + ) + endif + +- KERNEL_ARCH = $(ARCH) +- +- ifneq ($(filter $(ARCH),i386 x86_64),) +- KERNEL_ARCH = x86 +- else +- ifeq ($(filter $(ARCH),arm64 riscv),) +- $(error Unsupported architecture $(ARCH)) +- endif +- endif +- + NV_KERNEL_MODULES ?= $(wildcard nvidia nvidia-uvm nvidia-vgpu-vfio nvidia-modeset nvidia-drm nvidia-peermem) + NV_KERNEL_MODULES := $(filter-out $(NV_EXCLUDE_KERNEL_MODULES), \ + $(NV_KERNEL_MODULES)) +diff --git a/kernel/Makefile b/kernel/Makefile +index f7a8db6..725d474 100644 +--- a/kernel/Makefile ++++ b/kernel/Makefile +@@ -104,16 +104,6 @@ else + ) + endif + +- KERNEL_ARCH = $(ARCH) +- +- ifneq ($(filter $(ARCH),i386 x86_64),) +- KERNEL_ARCH = x86 +- else +- ifeq ($(filter $(ARCH),arm64 riscv),) +- $(error Unsupported architecture $(ARCH)) +- endif +- endif +- + NV_KERNEL_MODULES ?= $(wildcard nvidia nvidia-uvm nvidia-vgpu-vfio nvidia-modeset nvidia-drm nvidia-peermem) + NV_KERNEL_MODULES := $(filter-out $(NV_EXCLUDE_KERNEL_MODULES), \ + $(NV_KERNEL_MODULES)) +-- +2.49.0 diff --git a/packages/kmod-6.1-nvidia-r580/Cargo.toml b/packages/kmod-6.1-nvidia-r580/Cargo.toml new file mode 100644 index 00000000..990fd579 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/Cargo.toml @@ -0,0 +1,54 @@ +[package] +name = "kmod-6_1-nvidia-r580" +version = "0.1.0" +edition = "2021" +publish = false +build = "../build.rs" + +[lib] +path = "../packages.rs" + +[package.metadata.build-package] +package-name = "kmod-6.1-nvidia-r580" +releases-url = "https://docs.nvidia.com/datacenter/tesla/" + +[[package.metadata.build-package.external-files]] +url = "https://s3.amazonaws.com/EULA/NVidiaEULAforAWS.pdf" +sha512 = "e1926fe99afc3ab5b2f2744fcd53b4046465aefb2793e2e06c4a19455a3fde895e00af1415ff1a5804c32e6a2ed0657e475de63da6c23a0e9c59feeef52f3f58" + +[[package.metadata.build-package.external-files]] +url = "https://aws-nvidia-license-agreement.s3.amazonaws.com/NvidiaGridAWSUserLicenseAgreement.DOCX" +sha512 = "915d76bc26f7b39202883b6f902ebde1194d1f3e45e6c858ee42ac48615e4b315c658ba78d24bd72a3011289c2ea888ee17089f674497f1cba58d0e0c8f37c7a" + +[[package.metadata.build-package.external-files]] +url = "https://us.download.nvidia.com/tesla/580.95.05/NVIDIA-Linux-x86_64-580.95.05.run" +sha512 = "21e8076f593ce255c8e96dd456524f700e76b230130659ed73a279432dd9f2aa60735411c6fc906e9f60882e905cc1c5b91aaf80d5d5e64d317b1dd27f6e4c13" +force-upstream = true + +[[package.metadata.build-package.external-files]] +url = "https://us.download.nvidia.com/tesla/580.95.05/NVIDIA-Linux-aarch64-580.95.05.run" +sha512 = "e07b31824f7e6dd485df5c73e3a58f85962239ea20a92f18d82b9c55564d69309fe5bb279f39ed8ef152ccdbffc6d0fdf7bccfa3c794e4ecd9fac83bcfbb91a9" +force-upstream = true + +[[package.metadata.build-package.external-files]] +url = "https://developer.download.nvidia.com/compute/cuda/repos/amzn2023/x86_64/nvidia-fabricmanager-580.95.05-1.x86_64.rpm" +sha512 = "38cb3a7cbe5aa687f396809c4a43511a7f6885b22f2c08c5c2c82cd2dc33103340d0771248b3150f797123294b564323525ed51b46d84584d29f7f4307f74490" +force-upstream = true + +[[package.metadata.build-package.external-files]] +url = "https://developer.download.nvidia.com/compute/cuda/repos/amzn2023/sbsa/nvidia-fabricmanager-580.95.05-1.aarch64.rpm" +sha512 = "333cd4e54df830e59a7a2507b64d626b29d78aafd88ffc1da4ee24739abcea93885ee524119ea930100dd3dce395b71049905389858ddae1ab0dbb74b97a6bfa" +force-upstream = true + +[[package.metadata.build-package.external-files]] +url = "https://s3.amazonaws.com/ec2-linux-nvidia-drivers/grid-19.2/NVIDIA-Linux-x86_64-580.95.05-grid-aws.run" +sha512 = "fdc8279a147a491a2cfed6a7883515ddd824108b4003d70b97b43a70ab5912285d832ccd8102f7d2c7bf88911e507f1bab6a770bd40e45dacd9a7e1855716457" +force-upstream = true + +[[package.metadata.build-package.external-files]] +url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/580.95.05/COPYING" +sha512 = "f9cee68cbb12095af4b4e92d01c210461789ef41c70b64efefd6719d0b88468b7a67a3629c432d4d9304c730b5d1a942228a5bcc74a03ab1c411c77c758cd938" +force-upstream = true + +[build-dependencies] +kernel-6_1 = { path = "../kernel-6.1" } diff --git a/packages/kmod-6.1-nvidia-r580/copy-grid-kernel-modules.service.in b/packages/kmod-6.1-nvidia-r580/copy-grid-kernel-modules.service.in new file mode 100644 index 00000000..1da6abe6 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/copy-grid-kernel-modules.service.in @@ -0,0 +1,20 @@ +[Unit] +Description=Copy GRID kernel modules +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 grid +ExecStart=/usr/bin/driverdog --modules-set nvidia-grid link-modules +ExecStart=/usr/bin/driverdog --modules-set nvidia-grid-copy-only link-modules +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=preconfigured.target diff --git a/packages/kmod-6.1-nvidia-r580/copy-open-gpu-kernel-modules.service.in b/packages/kmod-6.1-nvidia-r580/copy-open-gpu-kernel-modules.service.in new file mode 100644 index 00000000..2c3420b6 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/copy-open-gpu-kernel-modules.service.in @@ -0,0 +1,20 @@ +[Unit] +Description=Copy open GPU kernel modules +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-open-gpu link-modules +ExecStart=/usr/bin/driverdog --modules-set nvidia-open-gpu-copy-only link-modules +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=preconfigured.target diff --git a/packages/kmod-6.1-nvidia-r580/fabricmanager.env b/packages/kmod-6.1-nvidia-r580/fabricmanager.env new file mode 100644 index 00000000..74ec85b2 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/fabricmanager.env @@ -0,0 +1 @@ +GUID_ARG="" diff --git a/packages/kmod-6.1-nvidia-r580/gridd.conf b/packages/kmod-6.1-nvidia-r580/gridd.conf new file mode 100644 index 00000000..8cd1e86f --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/gridd.conf @@ -0,0 +1 @@ +EnableUI=FALSE 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 new file mode 100644 index 00000000..6c04bb43 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/kmod-6.1-nvidia-r580.spec @@ -0,0 +1,744 @@ +%global tesla_major 580 +%global tesla_minor 95 +%global tesla_patch 05 +%global tesla_ver %{tesla_major}.%{tesla_minor}.%{tesla_patch} +%global grid_ver grid-19.2 +%if "%{?_cross_arch}" == "aarch64" +%global nvidia_arch sbsa +%else +%global nvidia_arch %{_cross_arch} +%endif + +# With the split of the firmware binary from firmware/gsp.bin to firmware/gsp_ga10x.bin +# and firmware/gsp_tu10x.bin the file format changed from executable to relocatable. +# The __spec_install_post macro will by default try to strip all binary files. +# Unfortunately the strip used is not compatible with the new file format. +# Redefine strip, so that these firmware binaries do not derail the build. +%global __strip /usr/bin/true + +Name: %{_cross_os}kmod-6.1-nvidia-r580 +Version: %{tesla_ver} +Release: 1%{?dist} +Epoch: 1 +Summary: NVIDIA r580 drivers for the 6.1 kernel +# We use these licences because we only ship our own software in the main package, +# each subpackage includes the LICENSE file provided by the Licenses.toml file +License: Apache-2.0 OR MIT +URL: http://www.nvidia.com/ + +# NVIDIA archives and license files from 0 to 199 +# NVIDIA .run scripts for kernel and userspace drivers +Source0: https://us.download.nvidia.com/tesla/%{tesla_ver}/NVIDIA-Linux-x86_64-%{tesla_ver}.run +Source1: https://us.download.nvidia.com/tesla/%{tesla_ver}/NVIDIA-Linux-aarch64-%{tesla_ver}.run +Source2: https://s3.amazonaws.com/ec2-linux-nvidia-drivers/%{grid_ver}/NVIDIA-Linux-x86_64-%{tesla_ver}-grid-aws.run +Source3: NVidiaEULAforAWS.pdf +Source4: COPYING +Source5: NvidiaGridAWSUserLicenseAgreement.DOCX + +# fabricmanager for NVSwitch +Source10: https://developer.download.nvidia.com/compute/cuda/repos/amzn2023/x86_64/nvidia-fabricmanager-%{tesla_ver}-1.x86_64.rpm +Source11: https://developer.download.nvidia.com/compute/cuda/repos/amzn2023/sbsa/nvidia-fabricmanager-%{tesla_ver}-1.aarch64.rpm + +# Common NVIDIA conf files from 200 to 299 +Source200: nvidia-tmpfiles.conf.in +Source202: nvidia-dependencies-modules-load.conf +Source203: nvidia-fabricmanager.service +Source204: nvidia-fabricmanager.cfg +Source205: nvidia-sysusers.conf +Source206: nvidia-persistenced.service +Source207: fabricmanager.env +Source208: gridd.conf +Source209: nvidia-gridd.service + +# NVIDIA tesla conf files from 300 to 399 +Source300: nvidia-tesla-tmpfiles.conf +Source301: nvidia-tesla-build-config.toml.in +Source302: nvidia-ld.so.conf.in + +# Driverdog config templates from 400 to 499 +Source400: nvidia-open-gpu-config.toml.in +Source401: nvidia-open-gpu-copy-only-config.toml.in +Source402: nvidia-grid-config.toml.in +Source403: nvidia-grid-copy-only-config.toml.in + +# Systemd service templates from 500 to 599 +Source500: link-tesla-kernel-modules.service.in +Source501: load-tesla-kernel-modules.service.in +Source502: copy-open-gpu-kernel-modules.service.in +Source503: load-open-gpu-kernel-modules.service.in +Source504: copy-grid-kernel-modules.service.in +Source505: load-grid-kernel-modules.service.in + +Patch001: 0001-makefile-allow-to-use-any-kernel-arch.patch + +BuildRequires: %{_cross_os}kernel-6.1-archive +Requires: %{_cross_os}kernel-6.1 +Requires: %{_cross_os}nvidia-migmanager +Requires: %{name}-tesla +Requires: %{name}-open-gpu +%if "%{_cross_arch}" == "x86_64" +Requires: %{name}-grid +%endif + +%description +%{summary}. + +%package fabricmanager +Summary: NVIDIA fabricmanager config and service files +Requires: %{name}-tesla(fabricmanager) +Requires: %{_cross_os}nvlsm + +%description fabricmanager +%{summary}. + +%package open-gpu +Summary: NVIDIA %{tesla_major} Open GPU driver +Version: %{tesla_ver} +License: MIT AND GPL-2.0-only +Requires: %{_cross_os}variant-platform(aws) +Requires: %{name} + +%description open-gpu +%{summary}. + +%if "%{_cross_arch}" == "x86_64" +%package grid +Summary: NVIDIA %{tesla_major} GRID driver +Version: %{tesla_ver} +License: MIT AND GPL-2.0-only AND LicenceRef-NVIDIA-GRID-AWS-EULA +Requires: %{_cross_os}variant-platform(aws) +Requires: %{name} +Requires: %{_cross_os}libstdc++ + +%description grid +%{summary}. +%endif + +%package tesla +Summary: NVIDIA %{tesla_major} Tesla driver +Version: %{tesla_ver} +License: LicenseRef-NVIDIA-AWS-EULA +Requires: %{_cross_os}variant-platform(aws) +Requires: %{name} +Requires: %{name}-fabricmanager +Provides: %{name}-tesla(fabricmanager) + +%description tesla +%{summary} + +%prep +# Extract nvidia sources with `-x`, otherwise the script will try to install +# the driver in the current run +sh %{_sourcedir}/NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}.run -x +# Move to the sources directory and apply patch +pushd NVIDIA-Linux-%{_cross_arch}-%{tesla_ver} +%patch 1 -p1 +popd + +# Extract GRID drivers just like Tesla +%if "%{_cross_arch}" == "x86_64" +sh %{_sourcedir}/NVIDIA-Linux-x86_64-%{tesla_ver}-grid-aws.run -x +pushd NVIDIA-Linux-x86_64-%{tesla_ver}-grid-aws +%patch 1 -p1 +popd +%endif + +# Extract fabricmanager from the rpm via cpio rather than `%%setup` since the +# correct source is architecture-dependent. +mkdir fabricmanager-linux-%{nvidia_arch}-%{tesla_ver}-archive +rpm2cpio %{_sourcedir}/nvidia-fabricmanager-%{tesla_ver}-1.%{_cross_arch}.rpm | cpio -idmV -D fabricmanager-linux-%{nvidia_arch}-%{tesla_ver}-archive + +# Add the license. +install -p -m 0644 %{S:3} %{S:4} %{S:5} . + +%global kernel_sources %{_builddir}/kernel-devel +tar -xf %{_cross_datadir}/bottlerocket/kernel-devel.tar.xz + +%define _kernel_version %(ls %{kernel_sources}/include/config/kernel.release) +%global _cross_kmoddir %{_cross_libdir}/modules/%{_kernel_version} + +# This recipe was based in the NVIDIA yum/dnf specs: +# https://github.com/NVIDIA/yum-packaging-precompiled-kmod + +# Begin open driver build +pushd NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}/kernel-open + +# We set IGNORE_CC_MISMATCH even though we are using the same compiler used to +# compile the kernel, if we don't set this flag the compilation fails +make %{?_smp_mflags} ARCH=%{_cross_karch} IGNORE_CC_MISMATCH=1 SYSSRC=%{kernel_sources} CC=%{_cross_target}-gcc LD=%{_cross_target}-ld + +# Strip symbols out of the .ko files +for module in *.ko; do + %{_cross_target}-strip -g --strip-unneeded "${module}" +done + +# end open driver build +popd + +# Begin proprietary driver build +pushd NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}/kernel + +# We set IGNORE_CC_MISMATCH even though we are using the same compiler used to +# compile the kernel, if we don't set this flag the compilation fails +make %{?_smp_mflags} ARCH=%{_cross_karch} IGNORE_CC_MISMATCH=1 SYSSRC=%{kernel_sources} CC=%{_cross_target}-gcc LD=%{_cross_target}-ld + +%{_cross_target}-strip -g --strip-unneeded nvidia/nv-interface.o +%{_cross_target}-strip -g --strip-unneeded nvidia-uvm.o +%{_cross_target}-strip -g --strip-unneeded nvidia-drm.o +%{_cross_target}-strip -g --strip-unneeded nvidia-peermem/nvidia-peermem.o +%{_cross_target}-strip -g --strip-unneeded nvidia-modeset/nv-modeset-interface.o + +# We delete these files since we just stripped the input .o files above, and +# will be build at runtime in the host +rm nvidia{,-modeset,-peermem}.o + +# Delete the .ko files created in make command, just to be safe that we +# don't include any linked module in the base image +rm nvidia{,-modeset,-peermem,-drm}.ko + +# End proprietary driver build +popd + +%if "%{_cross_arch}" == "x86_64" +# Begin GRID build +pushd NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}-grid-aws/kernel-open + +# We set IGNORE_CC_MISMATCH even though we are using the same compiler used to +# compile the kernel, if we don't set this flag the compilation fails +make %{?_smp_mflags} ARCH=%{_cross_karch} IGNORE_CC_MISMATCH=1 SYSSRC=%{kernel_sources} CC=%{_cross_target}-gcc LD=%{_cross_target}-ld + +# Strip symbols out of the .ko files +for module in *.ko; do + %{_cross_target}-strip -g --strip-unneeded "${module}" +done + +# End GRID build +popd +%endif + +# Grab the list of supported devices +pushd NVIDIA-Linux-%{_cross_arch}-%{tesla_ver}/supported-gpus +# We want to grab all the `kernelopen` enabled chips except for this list that +# is best held back to the proprietary driver +# 10de:1db1 is V100-16G (P3dn) +# 10de:1db5 is V100-32G (P3dn) +# 10de:1eb8 is T4 (G4dn) +# 10de:1eb4 is T4G (G5g) +# 10de:2237 is A10G (G5) +jq -r '.chips[] | select(.features[] | contains("kernelopen")) | +select(.devid != "0x1DB1" +and .devid != "0x1DB5" +and .devid != "0x1DEB8" +and .devid != "0x1EB4" +and .devid != "0x2237")' supported-gpus.json | jq -s '{"open-gpu": .}' > open-gpu-supported-devices.json +# confirm "NVIDIA H100" is in the resulting file to catch shape changes +jq -e '."open-gpu"[] | select(."devid" == "0x2330") | ."features"| index("kernelopen")' open-gpu-supported-devices.json +popd + +%install +install -d %{buildroot}%{_cross_libdir} +install -d %{buildroot}%{_cross_tmpfilesdir} +install -d %{buildroot}%{_cross_unitdir} +install -d %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/{drivers,ld.so.conf.d} +install -d %{buildroot}%{_cross_sysusersdir} +install -d %{buildroot}%{_cross_bindir} + +KERNEL_VERSION=$(cat %{kernel_sources}/include/config/kernel.release) +sed \ + -e "s|__KERNEL_VERSION__|${KERNEL_VERSION}|" \ + -e "s|__PREFIX__|%{_cross_prefix}|" %{S:200} > nvidia.conf +install -p -m 0644 nvidia.conf %{buildroot}%{_cross_tmpfilesdir} + +# Install modules-load.d drop-in to autoload required kernel modules +install -d %{buildroot}%{_cross_libdir}/modules-load.d +install -p -m 0644 %{S:202} %{buildroot}%{_cross_libdir}/modules-load.d/nvidia-dependencies.conf + +# NVIDIA fabric manager service unit and config +install -p -m 0644 %{S:203} %{buildroot}%{_cross_unitdir} +install -d %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/nvidia +install -p -m 0644 %{S:204} %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/nvidia/fabricmanager.cfg +install -p -m 0644 %{S:207} %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/nvidia/fabricmanager.env + +# Begin NVIDIA tesla driver +pushd NVIDIA-Linux-%{_cross_arch}-%{tesla_ver} +# Proprietary driver +install -d %{buildroot}%{_cross_bindir} +install -d %{buildroot}%{_cross_libexecdir}/nvidia/tesla/bin +install -d %{buildroot}%{_cross_libdir}/nvidia/tesla +install -d %{buildroot}%{_cross_datadir}/nvidia/tesla/module-objects.d +install -d %{buildroot}%{_cross_factorydir}/nvidia/tesla +install -d %{buildroot}%{_cross_factorydir}/nvidia/open-gpu +%if "%{_cross_arch}" == "x86_64" +install -d %{buildroot}%{_cross_factorydir}/nvidia/grid +%endif +install -d %{buildroot}%{_cross_datadir}/nvidia/open-gpu/drivers + +install -m 0644 %{S:300} %{buildroot}%{_cross_tmpfilesdir}/nvidia-tesla.conf +sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/tesla/module-objects.d/|' %{S:301} > \ + nvidia-tesla.toml +install -m 0644 nvidia-tesla.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers +sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/open-gpu/drivers/|' %{S:400} > \ + nvidia-open-gpu.toml +install -m 0644 nvidia-open-gpu.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers +sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/open-gpu/drivers/|' %{S:401} > \ + nvidia-open-gpu-copy-only.toml +install -m 0644 nvidia-open-gpu-copy-only.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers + +%if "%{_cross_arch}" == "x86_64" +sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/grid/drivers/|' %{S:402} > \ + nvidia-grid.toml +install -m 0644 nvidia-grid.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers +sed -e 's|__NVIDIA_MODULES__|%{_cross_datadir}/nvidia/grid/drivers/|' %{S:403} > \ + nvidia-grid-copy-only.toml +install -m 0644 nvidia-grid-copy-only.toml %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/drivers +%endif +# We need to add `_cross_libdir` to the paths loaded by the ldconfig service +# because libnvidia-container uses the `ldcache` file created by the service, +# to locate and mount the libraries into the containers +sed -e 's|__LIBDIR__|%{_cross_libdir}|' %{S:302} > nvidia-tesla.conf +install -m 0644 nvidia-tesla.conf %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/ld.so.conf.d/ + +# Services to link/copy/load modules +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:500} > link-tesla-kernel-modules.service +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:501} > load-tesla-kernel-modules.service +install -p -m 0644 \ + link-tesla-kernel-modules.service \ + load-tesla-kernel-modules.service \ + %{buildroot}%{_cross_unitdir} + +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:502} > copy-open-gpu-kernel-modules.service +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:503} > load-open-gpu-kernel-modules.service +install -p -m 0644 \ + copy-open-gpu-kernel-modules.service \ + load-open-gpu-kernel-modules.service \ + %{buildroot}%{_cross_unitdir} + +%if "%{_cross_arch}" == "x86_64" +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:504} > copy-grid-kernel-modules.service +sed -e 's|PREFIX|%{_cross_prefix}|g' %{S:505} > load-grid-kernel-modules.service +install -p -m 0644 \ + copy-grid-kernel-modules.service \ + load-grid-kernel-modules.service \ + %{buildroot}%{_cross_unitdir} +%endif + +# proprietary driver +install kernel/nvidia.mod.o %{buildroot}%{_cross_datadir}/nvidia/tesla/module-objects.d +install kernel/nvidia/nv-interface.o %{buildroot}%{_cross_datadir}/nvidia/tesla/module-objects.d +install kernel/nvidia/nv-kernel.o_binary %{buildroot}%{_cross_datadir}/nvidia/tesla/module-objects.d/nv-kernel.o + +# uvm +install kernel/nvidia-uvm.mod.o %{buildroot}%{_cross_datadir}/nvidia/tesla/module-objects.d +install kernel/nvidia-uvm.o %{buildroot}%{_cross_datadir}/nvidia/tesla/module-objects.d + +# modeset +install kernel/nvidia-modeset.mod.o %{buildroot}%{_cross_datadir}/nvidia/tesla/module-objects.d +install kernel/nvidia-modeset/nv-modeset-interface.o %{buildroot}%{_cross_datadir}/nvidia/tesla/module-objects.d +install kernel/nvidia-modeset/nv-modeset-kernel.o %{buildroot}%{_cross_datadir}/nvidia/tesla/module-objects.d + +# peermem +install kernel/nvidia-peermem.mod.o %{buildroot}%{_cross_datadir}/nvidia/tesla/module-objects.d +install kernel/nvidia-peermem/nvidia-peermem.o %{buildroot}%{_cross_datadir}/nvidia/tesla/module-objects.d + +# drm +install kernel/nvidia-drm.mod.o %{buildroot}/%{_cross_datadir}/nvidia/tesla/module-objects.d +install kernel/nvidia-drm.o %{buildroot}/%{_cross_datadir}/nvidia/tesla/module-objects.d + +# open driver +install -d %{buildroot}%{_cross_datadir}/nvidia/open-gpu/drivers/ +install kernel-open/nvidia.ko %{buildroot}%{_cross_datadir}/nvidia/open-gpu/drivers/ + +# uvm +install kernel-open/nvidia-uvm.ko %{buildroot}%{_cross_datadir}/nvidia/open-gpu/drivers/ + +# modeset +install kernel-open/nvidia-modeset.ko %{buildroot}%{_cross_datadir}/nvidia/open-gpu/drivers/ + +# peermem +install kernel-open/nvidia-peermem.ko %{buildroot}%{_cross_datadir}/nvidia/open-gpu/drivers/ + +# drm +install kernel-open/nvidia-drm.ko %{buildroot}%{_cross_datadir}/nvidia/open-gpu/drivers/ +# end open driver + +# add various vulkan icd/config +install -d %{buildroot}%{_cross_datadir}/vulkan/icd.d +install -d %{buildroot}%{_cross_datadir}/vulkan/implicit_layer.d +install -m 0644 nvidia_icd.json %{buildroot}%{_cross_datadir}/vulkan/icd.d/nvidia_icd.json +install -m 0644 nvidia_layers.json %{buildroot}%{_cross_datadir}/vulkan/icd.d/nvidia_layers.json +install -d %{buildroot}%{_cross_datadir}/glvnd/egl_vendor.d +install -m 0644 10_nvidia.json %{buildroot}%{_cross_datadir}/glvnd/egl_vendor.d/10_nvidia.json +install -d %{buildroot}%{_cross_datadir}/egl/egl_external_platform.d +install -m 0644 10_nvidia_wayland.json %{buildroot}%{_cross_datadir}/egl/egl_external_platform.d/10_nvidia_wayland.json +install -m 0644 15_nvidia_gbm.json %{buildroot}%{_cross_datadir}/egl/egl_external_platform.d/15_nvidia_gbm.json +ln -rs %{buildroot}%{_cross_datadir}/vulkan/icd.d/nvidia_layers.json %{buildroot}%{_cross_datadir}/vulkan/implicit_layer.d/nvidia_layers.json + +%if "%{_cross_arch}" == "x86_64" +# GRID driver +pushd ../NVIDIA-Linux-x86_64-%{tesla_ver}-grid-aws +install -d %{buildroot}%{_cross_datadir}/nvidia/grid/drivers/ +install kernel-open/nvidia.ko %{buildroot}%{_cross_datadir}/nvidia/grid/drivers/ + +# uvm +install kernel-open/nvidia-uvm.ko %{buildroot}%{_cross_datadir}/nvidia/grid/drivers/ + +# modeset +install kernel-open/nvidia-modeset.ko %{buildroot}%{_cross_datadir}/nvidia/grid/drivers/ + +# peermem +install kernel-open/nvidia-peermem.ko %{buildroot}%{_cross_datadir}/nvidia/grid/drivers/ + +# drm +install kernel-open/nvidia-drm.ko %{buildroot}%{_cross_datadir}/nvidia/grid/drivers/ + +# Install nvidia-gridd and related files +install -m 755 nvidia-gridd %{buildroot}%{_cross_bindir}/nvidia-gridd +install -m 644 %{S:208} %{buildroot}%{_cross_factorydir}%{_cross_sysconfdir}/nvidia/gridd.conf +install -p -m 0644 %{S:209} %{buildroot}%{_cross_unitdir} +popd +# End GRID driver +%endif + +# Binaries +install -m 755 nvidia-smi %{buildroot}%{_cross_bindir} +install -m 755 nvidia-debugdump %{buildroot}%{_cross_bindir} +install -m 755 nvidia-cuda-mps-control %{buildroot}%{_cross_bindir} +install -m 755 nvidia-cuda-mps-server %{buildroot}%{_cross_bindir} +install -m 755 nvidia-persistenced %{buildroot}%{_cross_bindir} +install -m 4755 nvidia-modprobe %{buildroot}%{_cross_bindir} +install -m 755 nvoptix.bin %{buildroot}%{_cross_datadir}/nvidia/ +ln -rs %{buildroot}%{_cross_bindir}/nvidia-smi %{buildroot}%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-smi +ln -rs %{buildroot}%{_cross_bindir}/nvidia-debugdump %{buildroot}%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-debugdump +ln -rs %{buildroot}%{_cross_bindir}/nvidia-cuda-mps-control %{buildroot}%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-control +ln -rs %{buildroot}%{_cross_bindir}/nvidia-cuda-mps-server %{buildroot}%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-server +ln -rs %{buildroot}%{_cross_bindir}/nvidia-persistenced %{buildroot}%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-persistenced +%if "%{_cross_arch}" == "x86_64" +install -m 755 nvidia-ngx-updater %{buildroot}%{_cross_bindir} +ln -rs %{buildroot}%{_cross_bindir}/nvidia-ngx-updater %{buildroot}%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-ngx-updater +%endif + +# Users +install -m 0644 %{S:205} %{buildroot}%{_cross_sysusersdir}/nvidia.conf + +# Systemd units +install -m 0644 %{S:206} %{buildroot}%{_cross_unitdir} + +# We install all the libraries, and filter them out in the 'files' section, +# so we can catch when new libraries are added +install -m 755 *.so* %{buildroot}/%{_cross_libdir}/nvidia/tesla/ + +# This library has the same SONAME as libEGL.so.1.1.0, this will cause +# collisions while the symlinks are created. For now, we only symlink +# libEGL.so.1.1.0. +EXCLUDED_LIBS="libEGL.so.%{tesla_ver}" + +for lib in $(find . -maxdepth 1 -type f -name 'lib*.so.*' -printf '%%P\n'); do + [[ "${EXCLUDED_LIBS}" =~ "${lib}" ]] && continue + soname="$(%{_cross_target}-readelf -d "${lib}" | awk '/SONAME/{print $5}' | tr -d '[]')" + [ -n "${soname}" ] || continue + [ "${lib}" == "${soname}" ] && continue + ln -s "${lib}" %{buildroot}/%{_cross_libdir}/nvidia/tesla/"${soname}" +done + +# Include the firmware file for GSP support +install -d %{buildroot}%{_cross_libdir}/firmware/nvidia/%{tesla_ver} +install -p -m 0644 firmware/gsp_ga10x.bin %{buildroot}%{_cross_libdir}/firmware/nvidia/%{tesla_ver} +install -p -m 0644 firmware/gsp_tu10x.bin %{buildroot}%{_cross_libdir}/firmware/nvidia/%{tesla_ver} + +# Include the open driver supported devices file for runtime matching of the +# driver. This is consumed by ghostdog to match the driver to this list +install -p -m 0644 supported-gpus/open-gpu-supported-devices.json %{buildroot}%{_cross_datadir}/nvidia/open-gpu-supported-devices.json + +popd + +# Begin NVIDIA fabric manager binaries and topologies +pushd fabricmanager-linux-%{nvidia_arch}-%{tesla_ver}-archive +install -p -m 0755 usr/bin/nv-fabricmanager %{buildroot}%{_cross_bindir} +install -p -m 0755 usr/bin/nvswitch-audit %{buildroot}%{_cross_bindir} +ln -rs %{buildroot}%{_cross_bindir}/nv-fabricmanager %{buildroot}%{_cross_libexecdir}/nvidia/tesla/bin/nv-fabricmanager +ln -rs %{buildroot}%{_cross_bindir}/nvswitch-audit %{buildroot}%{_cross_libexecdir}/nvidia/tesla/bin/nvswitch-audit + +install -d %{buildroot}%{_cross_datadir}/nvidia/tesla/nvswitch +for t in usr/share/nvidia/nvswitch/*_topology ; do + install -p -m 0644 "${t}" %{buildroot}%{_cross_datadir}/nvidia/tesla/nvswitch +done + +popd + +%files +%{_cross_attribution_file} +%dir %{_cross_libexecdir}/nvidia +%dir %{_cross_libdir}/nvidia +%dir %{_cross_datadir}/nvidia +%dir %{_cross_libdir}/modules-load.d +%dir %{_cross_factorydir}%{_cross_sysconfdir}/drivers +%dir %{_cross_factorydir}%{_cross_sysconfdir}/nvidia +%{_cross_tmpfilesdir}/nvidia.conf +%{_cross_libdir}/modules-load.d/nvidia-dependencies.conf + +%files tesla +%license NVidiaEULAforAWS.pdf +%license fabricmanager-linux-%{nvidia_arch}-%{tesla_ver}-archive/usr/share/licenses/nvidia-fabricmanager/third-party-notices.txt +%dir %{_cross_datadir}/egl +%dir %{_cross_datadir}/egl/egl_external_platform.d +%dir %{_cross_datadir}/glvnd +%dir %{_cross_datadir}/glvnd/egl_vendor.d +%dir %{_cross_datadir}/nvidia/tesla +%dir %{_cross_datadir}/nvidia/tesla/module-objects.d +%dir %{_cross_datadir}/vulkan +%dir %{_cross_datadir}/vulkan/icd.d +%dir %{_cross_datadir}/vulkan/implicit_layer.d +%dir %{_cross_factorydir}/nvidia/tesla +%dir %{_cross_libdir}/firmware/nvidia/%{tesla_ver} +%dir %{_cross_libdir}/nvidia/tesla +%dir %{_cross_libexecdir}/nvidia/tesla/bin + +# Service files for link/copy/loading drivers +%{_cross_unitdir}/link-tesla-kernel-modules.service +%{_cross_unitdir}/load-tesla-kernel-modules.service +%{_cross_unitdir}/copy-open-gpu-kernel-modules.service +%{_cross_unitdir}/load-open-gpu-kernel-modules.service +%if "%{_cross_arch}" == "x86_64" +%{_cross_unitdir}/copy-grid-kernel-modules.service +%{_cross_unitdir}/load-grid-kernel-modules.service +%endif + +# Binaries +%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-debugdump +%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-smi +%{_cross_libexecdir}/nvidia/tesla/bin/nv-fabricmanager +%{_cross_libexecdir}/nvidia/tesla/bin/nvswitch-audit +%{_cross_libexecdir}/nvidia/tesla/bin/nvidia-persistenced +%{_cross_bindir}/nvidia-debugdump +%{_cross_bindir}/nvidia-smi +%{_cross_bindir}/nv-fabricmanager +%{_cross_bindir}/nvswitch-audit +%{_cross_bindir}/nvidia-persistenced +%{_cross_bindir}/nvidia-modprobe + +# nvswitch topologies +%dir %{_cross_datadir}/nvidia/tesla/nvswitch +%{_cross_datadir}/nvidia/tesla/nvswitch/dgxa100_hgxa100_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/dgx2_hgx2_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/dgxh100_hgxh100_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/dgxh800_hgxh800_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/dgxgh200_hgxgh200_16gpus_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/dgxgh200_hgxgh200_32gpus_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/dgxgh200_hgxgh200_8gpus_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gb200_nvl36r1_c2g2_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gb200_nvl36r1_c2g4_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gb200_nvl4r1_c2g2_etf_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gb200_nvl576r16_c2g4_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gb200_nvl72r1_c2g4_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gb200_nvl72r2_c2g2_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gb200_nvl72r2_c2g4_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gb200_nvl8r1_c2g4_etf_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gb200_nvl8r1_c2g4_etf_nso_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gb300_nvl72r1_c2g4_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gb300_nvl72r2_c2g4_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/gh200_nvlink_32gpus_topology +%{_cross_datadir}/nvidia/tesla/nvswitch/mgxh20_nvl16_topology + +# Configuration files +%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-tesla.toml +%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-open-gpu.toml +%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-open-gpu-copy-only.toml +%if "%{_cross_arch}" == "x86_64" +%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-grid.toml +%{_cross_factorydir}%{_cross_sysconfdir}/drivers/nvidia-grid-copy-only.toml +%endif +%{_cross_factorydir}%{_cross_sysconfdir}/ld.so.conf.d/nvidia-tesla.conf +%{_cross_datadir}/nvidia/open-gpu-supported-devices.json + +# driver +%{_cross_datadir}/nvidia/tesla/module-objects.d/nvidia.mod.o +%{_cross_datadir}/nvidia/tesla/module-objects.d/nv-interface.o +%{_cross_datadir}/nvidia/tesla/module-objects.d/nv-kernel.o + +# uvm +%{_cross_datadir}/nvidia/tesla/module-objects.d/nvidia-uvm.mod.o +%{_cross_datadir}/nvidia/tesla/module-objects.d/nvidia-uvm.o + +# modeset +%{_cross_datadir}/nvidia/tesla/module-objects.d/nv-modeset-interface.o +%{_cross_datadir}/nvidia/tesla/module-objects.d/nv-modeset-kernel.o +%{_cross_datadir}/nvidia/tesla/module-objects.d/nvidia-modeset.mod.o + +# tmpfiles +%{_cross_tmpfilesdir}/nvidia-tesla.conf + +# sysuser files +%{_cross_sysusersdir}/nvidia.conf + +# systemd units +%{_cross_unitdir}/nvidia-persistenced.service + +# ICD / vendor descriptors +%{_cross_datadir}/vulkan/icd.d/nvidia_icd.json +%{_cross_datadir}/vulkan/icd.d/nvidia_layers.json +%{_cross_datadir}/vulkan/implicit_layer.d/nvidia_layers.json +%{_cross_datadir}/glvnd/egl_vendor.d/10_nvidia.json +%{_cross_datadir}/egl/egl_external_platform.d/10_nvidia_wayland.json +%{_cross_datadir}/egl/egl_external_platform.d/15_nvidia_gbm.json + +# We only install the libraries required by all the DRIVER_CAPABILITIES, described here: +# https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html#driver-capabilities + +# Utility libs +%{_cross_libdir}/nvidia/tesla/libnvidia-api.so.1 +%{_cross_libdir}/nvidia/tesla/libnvidia-ml.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-ml.so.1 +%{_cross_libdir}/nvidia/tesla/libnvidia-cfg.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-cfg.so.1 +%{_cross_libdir}/nvidia/tesla/libnvidia-nvvm.so.4 +%{_cross_libdir}/nvidia/tesla/libnvidia-nvvm.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-nvvm70.so.4 + +# Compute libs +%{_cross_libdir}/nvidia/tesla/libcuda.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libcuda.so.1 +%{_cross_libdir}/nvidia/tesla/libcudadebugger.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libcudadebugger.so.1 +%{_cross_libdir}/nvidia/tesla/libnvidia-opencl.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-opencl.so.1 +%{_cross_libdir}/nvidia/tesla/libnvidia-ptxjitcompiler.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-ptxjitcompiler.so.1 +%{_cross_libdir}/nvidia/tesla/libnvidia-allocator.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-allocator.so.1 +%{_cross_libdir}/nvidia/tesla/libOpenCL.so.1.0.0 +%{_cross_libdir}/nvidia/tesla/libOpenCL.so.1 +%{_cross_libdir}/nvidia/tesla/libnvidia-gpucomp.so.%{tesla_ver} +%if "%{_cross_arch}" == "x86_64" +%{_cross_libdir}/nvidia/tesla/libnvidia-pkcs11.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-pkcs11-openssl3.so.%{tesla_ver} +%endif + +# Video libs +%{_cross_libdir}/nvidia/tesla/libvdpau_nvidia.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libvdpau_nvidia.so.1 +%{_cross_libdir}/nvidia/tesla/libnvidia-encode.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-encode.so.1 +%{_cross_libdir}/nvidia/tesla/libnvidia-opticalflow.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-opticalflow.so.1 +%{_cross_libdir}/nvidia/tesla/libnvcuvid.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvcuvid.so.1 + +# Graphics libs +%{_cross_libdir}/nvidia/tesla/libnvidia-eglcore.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-glcore.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-tls.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-glsi.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-rtcore.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-fbc.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-fbc.so.1 +%{_cross_libdir}/nvidia/tesla/libnvoptix.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvoptix.so.1 +%{_cross_datadir}/nvidia/nvoptix.bin + +# Graphics GLVND libs +%{_cross_libdir}/nvidia/tesla/libnvidia-glvkspirv.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libGLX_nvidia.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libGLX_nvidia.so.0 +%{_cross_libdir}/nvidia/tesla/libEGL_nvidia.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libEGL_nvidia.so.0 +%{_cross_libdir}/nvidia/tesla/libGLESv2_nvidia.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libGLESv2_nvidia.so.2 +%{_cross_libdir}/nvidia/tesla/libGLESv1_CM_nvidia.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libGLESv1_CM_nvidia.so.1 +%if "%{_cross_arch}" == "x86_64" +%{_cross_libdir}/nvidia/tesla/libnvidia-present.so.%{tesla_ver} +%endif + +# Graphics compat +%{_cross_libdir}/nvidia/tesla/libEGL.so.1.1.0 +%{_cross_libdir}/nvidia/tesla/libEGL.so.1 +%{_cross_libdir}/nvidia/tesla/libEGL.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libGL.so.1.7.0 +%{_cross_libdir}/nvidia/tesla/libGL.so.1 +%{_cross_libdir}/nvidia/tesla/libGLESv1_CM.so.1.2.0 +%{_cross_libdir}/nvidia/tesla/libGLESv1_CM.so.1 +%{_cross_libdir}/nvidia/tesla/libGLESv2.so.2.1.0 +%{_cross_libdir}/nvidia/tesla/libGLESv2.so.2 + +# NGX +%{_cross_libdir}/nvidia/tesla/libnvidia-ngx.so.%{tesla_ver} +%{_cross_libdir}/nvidia/tesla/libnvidia-ngx.so.1 + +# Firmware +%{_cross_libdir}/firmware/nvidia/%{tesla_ver}/gsp_ga10x.bin +%{_cross_libdir}/firmware/nvidia/%{tesla_ver}/gsp_tu10x.bin + +# Neither nvidia-peermem nor nvidia-drm are included in driver container images, we exclude them +# for now, and we will add them if requested +%exclude %{_cross_datadir}/nvidia/tesla/module-objects.d/nvidia-peermem.mod.o +%exclude %{_cross_datadir}/nvidia/tesla/module-objects.d/nvidia-peermem.o +%exclude %{_cross_datadir}/nvidia/tesla/module-objects.d/nvidia-drm.mod.o +%exclude %{_cross_datadir}/nvidia/tesla/module-objects.d/nvidia-drm.o +%exclude %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-control +%exclude %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-cuda-mps-server +%exclude %{_cross_bindir}/nvidia-cuda-mps-control +%exclude %{_cross_bindir}/nvidia-cuda-mps-server +%if "%{_cross_arch}" == "x86_64" +%exclude %{_cross_libexecdir}/nvidia/tesla/bin/nvidia-ngx-updater +%exclude %{_cross_bindir}/nvidia-ngx-updater +%endif + +# None of these libraries are required by libnvidia-container, so they +# won't be used by a containerized workload +%exclude %{_cross_libdir}/nvidia/tesla/libGLX.so.0 +%exclude %{_cross_libdir}/nvidia/tesla/libGLdispatch.so.0 +%exclude %{_cross_libdir}/nvidia/tesla/libOpenGL.so.0 +%exclude %{_cross_libdir}/nvidia/tesla/libglxserver_nvidia.so.%{tesla_ver} +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-gtk2.so.%{tesla_ver} +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-gtk3.so.%{tesla_ver} +%exclude %{_cross_libdir}/nvidia/tesla/nvidia_drv.so +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-egl-wayland.so.1 +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-egl-gbm.so.1 +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-egl-gbm.so.1.1.2 +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-egl-wayland.so.1.1.20 +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-egl-xcb.so.1 +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-egl-xcb.so.1.0.3 +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-egl-xlib.so.1 +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-egl-xlib.so.1.0.3 +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-sandboxutils.so.1 +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-sandboxutils.so.%{tesla_ver} +%if "%{_cross_arch}" == "x86_64" +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-vksc-core.so.1 +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-vksc-core.so.%{tesla_ver} +%exclude %{_cross_libdir}/nvidia/tesla/libnvidia-wayland-client.so.%{tesla_ver} +%endif + +%files open-gpu +%license COPYING +%dir %{_cross_datadir}/nvidia/open-gpu/drivers +%dir %{_cross_factorydir}/nvidia/open-gpu + +%{_cross_datadir}/nvidia/open-gpu/drivers/nvidia.ko +%{_cross_datadir}/nvidia/open-gpu/drivers/nvidia-uvm.ko +%{_cross_datadir}/nvidia/open-gpu/drivers/nvidia-modeset.ko +%{_cross_datadir}/nvidia/open-gpu/drivers/nvidia-drm.ko +%{_cross_datadir}/nvidia/open-gpu/drivers/nvidia-peermem.ko + +# GRID driver files +%if "%{_cross_arch}" == "x86_64" +%files grid +%license COPYING +%license NvidiaGridAWSUserLicenseAgreement.DOCX +%license NVIDIA-Linux-x86_64-%{tesla_ver}-grid-aws/grid-third-party-licenses.txt +%dir %{_cross_datadir}/nvidia/grid/drivers +%dir %{_cross_factorydir}/nvidia/grid +%{_cross_bindir}/nvidia-gridd +%{_cross_factorydir}%{_cross_sysconfdir}/nvidia/gridd.conf +%{_cross_unitdir}/nvidia-gridd.service + +%{_cross_datadir}/nvidia/grid/drivers/nvidia.ko +%{_cross_datadir}/nvidia/grid/drivers/nvidia-uvm.ko +%{_cross_datadir}/nvidia/grid/drivers/nvidia-modeset.ko +%{_cross_datadir}/nvidia/grid/drivers/nvidia-drm.ko +%{_cross_datadir}/nvidia/grid/drivers/nvidia-peermem.ko +%endif + +%files fabricmanager +%{_cross_factorydir}%{_cross_sysconfdir}/nvidia/fabricmanager.cfg +%{_cross_factorydir}%{_cross_sysconfdir}/nvidia/fabricmanager.env +%{_cross_unitdir}/nvidia-fabricmanager.service diff --git a/packages/kmod-6.1-nvidia-r580/link-tesla-kernel-modules.service.in b/packages/kmod-6.1-nvidia-r580/link-tesla-kernel-modules.service.in new file mode 100644 index 00000000..8fc77921 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/link-tesla-kernel-modules.service.in @@ -0,0 +1,19 @@ +[Unit] +Description=Link Tesla kernel modules +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 tesla +ExecStart=/usr/bin/driverdog --modules-set nvidia-tesla link-modules +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=preconfigured.target diff --git a/packages/kmod-6.1-nvidia-r580/load-grid-kernel-modules.service.in b/packages/kmod-6.1-nvidia-r580/load-grid-kernel-modules.service.in new file mode 100644 index 00000000..18d992e7 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/load-grid-kernel-modules.service.in @@ -0,0 +1,19 @@ +[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 +# 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 grid +ExecStart=/usr/bin/driverdog --modules-set nvidia-grid load-modules +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=preconfigured.target diff --git a/packages/kmod-6.1-nvidia-r580/load-open-gpu-kernel-modules.service.in b/packages/kmod-6.1-nvidia-r580/load-open-gpu-kernel-modules.service.in new file mode 100644 index 00000000..3862b3e7 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/load-open-gpu-kernel-modules.service.in @@ -0,0 +1,19 @@ +[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 +# 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-open-gpu load-modules +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=preconfigured.target diff --git a/packages/kmod-6.1-nvidia-r580/load-tesla-kernel-modules.service.in b/packages/kmod-6.1-nvidia-r580/load-tesla-kernel-modules.service.in new file mode 100644 index 00000000..60024004 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/load-tesla-kernel-modules.service.in @@ -0,0 +1,19 @@ +[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 +# 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 tesla +ExecStart=/usr/bin/driverdog --modules-set nvidia-tesla load-modules +RemainAfterExit=true +StandardError=journal+console + +[Install] +RequiredBy=preconfigured.target diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-dependencies-modules-load.conf b/packages/kmod-6.1-nvidia-r580/nvidia-dependencies-modules-load.conf new file mode 100644 index 00000000..86f884a6 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-dependencies-modules-load.conf @@ -0,0 +1,2 @@ +i2c_core +ipmi_msghandler diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-fabricmanager.cfg b/packages/kmod-6.1-nvidia-r580/nvidia-fabricmanager.cfg new file mode 100644 index 00000000..17fe0c90 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-fabricmanager.cfg @@ -0,0 +1,33 @@ +# Modern, systemd-aware settings: +# - Log to journal via stderr +# - Keep running in the foreground +LOG_LEVEL=4 +LOG_FILE_NAME= +DAEMONIZE=0 + +# Use Unix domain sockets instead of localhost ports. +UNIX_SOCKET_PATH=/run/nvidia/fabricmanager.sock +FM_CMD_UNIX_SOCKET_PATH=/run/nvidia/fabricmanager-cmd.sock + +# Start Fabric Manager in bare metal or full pass through virtualization mode. +FABRIC_MODE=0 +FABRIC_MODE_RESTART=0 + +# Terminate on NVSwitch and GPU config failure. +FM_STAY_RESIDENT_ON_FAILURES=0 + +# When there is a GPU to NVSwitch NVLink failure, remove the GPU with the failure +# from NVLink P2P capability. +ACCESS_LINK_FAILURE_MODE=0 + +# When there is an NVSwitch to NVSwitch NVLink failure, exit Fabric Manager. +TRUNK_LINK_FAILURE_MODE=0 + +# When there is an NVSwitch failure or an NVSwitch is excluded, abort Fabric Manager. +NVSWITCH_FAILURE_MODE=0 + +# When Fabric Manager service is stopped or terminated, abort all running CUDA jobs. +ABORT_CUDA_JOBS_ON_FM_EXIT=1 + +# Path to topology and database files. +TOPOLOGY_FILE_PATH=/usr/share/nvidia/tesla/nvswitch diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-fabricmanager.service b/packages/kmod-6.1-nvidia-r580/nvidia-fabricmanager.service new file mode 100644 index 00000000..620b49ae --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-fabricmanager.service @@ -0,0 +1,21 @@ +[Unit] +Description=NVIDIA fabric manager service +Wants=modprobe@ib_umad.service +After=modprobe@ib_umad.service nvlsm-online.service +Requires=nvlsm-online.service + +[Service] +EnvironmentFile=/etc/nvidia/fabricmanager.env +EnvironmentFile=-/etc/nvidia/nvlsm.env +ExecStart=/usr/bin/nv-fabricmanager -c /etc/nvidia/fabricmanager.cfg $GUID_ARG +Type=simple +TimeoutSec=0 +RestartSec=5 +Restart=always +RemainAfterExit=true +StandardError=journal+console +SuccessExitStatus=255 +LimitCORE=infinity + +[Install] +WantedBy=multi-user.target diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-grid-config.toml.in b/packages/kmod-6.1-nvidia-r580/nvidia-grid-config.toml.in new file mode 100644 index 00000000..aa80e762 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-grid-config.toml.in @@ -0,0 +1,11 @@ +[nvidia-grid] +lib-modules-path = "kernel/drivers/extra/video/nvidia/grid" + +[nvidia-grid.kernel-modules."nvidia.ko"] +copy-source = "__NVIDIA_MODULES__" + +[nvidia-grid.kernel-modules."nvidia-modeset.ko"] +copy-source = "__NVIDIA_MODULES__" + +[nvidia-grid.kernel-modules."nvidia-uvm.ko"] +copy-source = "__NVIDIA_MODULES__" diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-grid-copy-only-config.toml.in b/packages/kmod-6.1-nvidia-r580/nvidia-grid-copy-only-config.toml.in new file mode 100644 index 00000000..c8f250b7 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-grid-copy-only-config.toml.in @@ -0,0 +1,8 @@ +[nvidia-grid-copy-only] +lib-modules-path = "kernel/drivers/extra/video/nvidia/grid" + +[nvidia-grid-copy-only.kernel-modules."nvidia-drm.ko"] +copy-source = "__NVIDIA_MODULES__" + +[nvidia-grid-copy-only.kernel-modules."nvidia-peermem.ko"] +copy-source = "__NVIDIA_MODULES__" diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-gridd.service b/packages/kmod-6.1-nvidia-r580/nvidia-gridd.service new file mode 100644 index 00000000..902aeb60 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-gridd.service @@ -0,0 +1,13 @@ +[Unit] +Description=NVIDIA Grid Daemon +Wants=systemd-resolved.service network-online.target nvidia-persistenced.service +After=systemd-resolved.service network-online.target nvidia-persistenced.service + +[Service] +Type=forking +ExecCondition=/usr/bin/ghostdog match-nvidia-driver grid +ExecStart=/usr/bin/nvidia-gridd +ExecStopPost=/bin/rm -rf /var/run/nvidia-gridd + +[Install] +WantedBy=preconfigured.target diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-ld.so.conf.in b/packages/kmod-6.1-nvidia-r580/nvidia-ld.so.conf.in new file mode 100644 index 00000000..f992bf22 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-ld.so.conf.in @@ -0,0 +1 @@ +__LIBDIR__/nvidia/tesla/ diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-open-gpu-config.toml.in b/packages/kmod-6.1-nvidia-r580/nvidia-open-gpu-config.toml.in new file mode 100644 index 00000000..5ae81b71 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-open-gpu-config.toml.in @@ -0,0 +1,11 @@ +[nvidia-open-gpu] +lib-modules-path = "kernel/drivers/extra/video/nvidia/open-gpu" + +[nvidia-open-gpu.kernel-modules."nvidia.ko"] +copy-source = "__NVIDIA_MODULES__" + +[nvidia-open-gpu.kernel-modules."nvidia-modeset.ko"] +copy-source = "__NVIDIA_MODULES__" + +[nvidia-open-gpu.kernel-modules."nvidia-uvm.ko"] +copy-source = "__NVIDIA_MODULES__" diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-open-gpu-copy-only-config.toml.in b/packages/kmod-6.1-nvidia-r580/nvidia-open-gpu-copy-only-config.toml.in new file mode 100644 index 00000000..774867d4 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-open-gpu-copy-only-config.toml.in @@ -0,0 +1,8 @@ +[nvidia-open-gpu-copy-only] +lib-modules-path = "kernel/drivers/extra/video/nvidia/open-gpu" + +[nvidia-open-gpu-copy-only.kernel-modules."nvidia-drm.ko"] +copy-source = "__NVIDIA_MODULES__" + +[nvidia-open-gpu-copy-only.kernel-modules."nvidia-peermem.ko"] +copy-source = "__NVIDIA_MODULES__" diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-persistenced.service b/packages/kmod-6.1-nvidia-r580/nvidia-persistenced.service new file mode 100644 index 00000000..bf09163d --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-persistenced.service @@ -0,0 +1,10 @@ +[Unit] +Description=NVIDIA Persistence Daemon +After=load-tesla-kernel-modules.service load-open-gpu-kernel-modules.service load-grid-kernel-modules.service + +[Service] +Type=forking +ExecStart=/usr/bin/nvidia-persistenced --user nvidia --verbose + +[Install] +RequiredBy=preconfigured.target diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-sysusers.conf b/packages/kmod-6.1-nvidia-r580/nvidia-sysusers.conf new file mode 100644 index 00000000..76801d0d --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-sysusers.conf @@ -0,0 +1 @@ +u nvidia - "nvidia-persistenced user" diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-tesla-build-config.toml.in b/packages/kmod-6.1-nvidia-r580/nvidia-tesla-build-config.toml.in new file mode 100644 index 00000000..fb74dc51 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-tesla-build-config.toml.in @@ -0,0 +1,18 @@ +[nvidia-tesla] +lib-modules-path = "kernel/drivers/extra/video/nvidia/tesla" +objects-source = "__NVIDIA_MODULES__" + +[nvidia-tesla.object-files."nvidia.o"] +link-objects = ["nv-interface.o", "nv-kernel.o"] + +[nvidia-tesla.kernel-modules."nvidia.ko"] +link-objects = ["nvidia.o", "nvidia.mod.o"] + +[nvidia-tesla.object-files."nvidia-modeset.o"] +link-objects = ["nv-modeset-interface.o", "nv-modeset-kernel.o"] + +[nvidia-tesla.kernel-modules."nvidia-modeset.ko"] +link-objects = ["nvidia-modeset.o", "nvidia-modeset.mod.o"] + +[nvidia-tesla.kernel-modules."nvidia-uvm.ko"] +link-objects = ["nvidia-uvm.o", "nvidia-uvm.mod.o"] diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-tesla-tmpfiles.conf b/packages/kmod-6.1-nvidia-r580/nvidia-tesla-tmpfiles.conf new file mode 100644 index 00000000..b7ed04f8 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-tesla-tmpfiles.conf @@ -0,0 +1,6 @@ +C /etc/drivers/nvidia-tesla.toml +C /etc/drivers/nvidia-open-gpu.toml +C /etc/drivers/nvidia-open-gpu-copy-only.toml +C /etc/drivers/nvidia-grid.toml +C /etc/drivers/nvidia-grid-copy-only.toml +C /etc/ld.so.conf.d/nvidia-tesla.conf diff --git a/packages/kmod-6.1-nvidia-r580/nvidia-tmpfiles.conf.in b/packages/kmod-6.1-nvidia-r580/nvidia-tmpfiles.conf.in new file mode 100644 index 00000000..4eb43096 --- /dev/null +++ b/packages/kmod-6.1-nvidia-r580/nvidia-tmpfiles.conf.in @@ -0,0 +1,11 @@ +R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/tesla - - - - - +d __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/tesla 0755 root root - - +R __PREFIX__/lib/modules/__KERNEL_VERSION__/kernel/drivers/extra/video/nvidia/open-gpu - - - - - +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 - - +C /etc/nvidia/fabricmanager.cfg - - - - +C /etc/nvidia/fabricmanager.env - - - - +C /etc/nvidia/gridd.conf - - - - +d /run/nvidia 0700 root root - +D /var/run/nvidia-persistenced 0755 nvidia nvidia - - diff --git a/packages/kmod-6.12-nvidia-r570/.gitignore b/packages/kmod-6.12-nvidia-r570/.gitignore index db8b415b..a0b85133 100644 --- a/packages/kmod-6.12-nvidia-r570/.gitignore +++ b/packages/kmod-6.12-nvidia-r570/.gitignore @@ -1,3 +1,4 @@ NVidiaEULAforAWS.pdf +NvidiaGridAWSUserLicenseAgreement.DOCX COPYING *.rpm diff --git a/packages/kmod-6.12-nvidia-r580/.gitignore b/packages/kmod-6.12-nvidia-r580/.gitignore index db8b415b..a0b85133 100644 --- a/packages/kmod-6.12-nvidia-r580/.gitignore +++ b/packages/kmod-6.12-nvidia-r580/.gitignore @@ -1,3 +1,4 @@ NVidiaEULAforAWS.pdf +NvidiaGridAWSUserLicenseAgreement.DOCX COPYING *.rpm diff --git a/packages/kmod-6.12-nvidia-r580/Cargo.toml b/packages/kmod-6.12-nvidia-r580/Cargo.toml index 841fccea..ae97d4e9 100644 --- a/packages/kmod-6.12-nvidia-r580/Cargo.toml +++ b/packages/kmod-6.12-nvidia-r580/Cargo.toml @@ -56,8 +56,7 @@ sha512 = "fdc8279a147a491a2cfed6a7883515ddd824108b4003d70b97b43a70ab5912285d832c force-upstream = true [[package.metadata.build-package.external-files]] -# No 580 branch yet, we should shift to that when available -url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/570/COPYING" +url = "https://raw.githubusercontent.com/NVIDIA/open-gpu-kernel-modules/580.95.05/COPYING" sha512 = "f9cee68cbb12095af4b4e92d01c210461789ef41c70b64efefd6719d0b88468b7a67a3629c432d4d9304c730b5d1a942228a5bcc74a03ab1c411c77c758cd938" force-upstream = true