diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..ba7567b --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + cuda + diff --git a/aarch64-TW-buildfix.patch b/aarch64-TW-buildfix.patch new file mode 100644 index 0000000..30b99f3 --- /dev/null +++ b/aarch64-TW-buildfix.patch @@ -0,0 +1,11 @@ +--- a/kernel-open/nvidia/nv-vtophys.c.orig 2024-09-19 14:13:38.129627845 +0200 ++++ a/kernel-open/nvidia/nv-vtophys.c 2024-09-19 14:14:35.462847222 +0200 +@@ -29,7 +29,7 @@ + NvU64 NV_API_CALL nv_get_kern_phys_address(NvU64 address) + { + /* direct-mapped kernel address */ +- if (virt_addr_valid(address)) ++ if (virt_addr_valid((const void *) address)) + return __pa(address); + + nv_printf(NV_DBG_ERRORS, diff --git a/kmp-trigger.sh b/kmp-trigger.sh new file mode 100644 index 0000000..78d3b7c --- /dev/null +++ b/kmp-trigger.sh @@ -0,0 +1,6 @@ +# trigger removal of driver modules with non-existing or wrong +# firmware when (new) firmware gets installed +if test -e /sys/module/nvidia \ + && cat /sys/class/drm/card*/device/vendor | grep -vq 10de; then + rmmod nvidia_drm nvidia_uvm nvidia_modeset video nvidia &> /dev/null || true +fi diff --git a/nvidia-open-driver-G06-signed.changes b/nvidia-open-driver-G06-signed.changes index 4671cf1..36801e7 100644 --- a/nvidia-open-driver-G06-signed.changes +++ b/nvidia-open-driver-G06-signed.changes @@ -1,3 +1,327 @@ +------------------------------------------------------------------- +Sat Jan 4 12:42:00 UTC 2025 - Stefan Dirsch + +- set-FOP_UNSIGNED_OFFSET-for-nv_drm_fops.fop_flags.patch + * needed for Kernel 6.12 for 565.57.01 driver; already fixed + for 550.142 + --> https://forums.developer.nvidia.com/t/patch-for-565-57-01-linux-kernel-6-12/313260 + +------------------------------------------------------------------- +Tue Dec 17 23:51:04 UTC 2024 - Stefan Dirsch + +- Update to 550.142 (boo#1234675) +- supersedes 550.135.patch + +------------------------------------------------------------------- +Tue Dec 17 11:55:30 UTC 2024 - Stefan Dirsch + +- for SLE Micro 6.x use + '%if 0%{?suse_version} == 1600 && !0%{?is_opensuse}'; SLE16 + doesn't set %sle_version and SLE Micro 6.x is already SLE16! + +------------------------------------------------------------------- +Wed Dec 11 00:07:03 UTC 2024 - Stefan Dirsch + +- Do not set %{?linux_make_arch} for running make modules/modules-install +- supersedes 550.135.patch + +------------------------------------------------------------------- +Thu Dec 5 09:38:56 UTC 2024 - Stefan Dirsch + +- obsolete <=560.35.03 -cuda KMPs; mistakenly we released + 560.35.03 for SP4 ... + +------------------------------------------------------------------- +Wed Dec 4 09:00:04 UTC 2024 - Egbert Eich + +- Make sure the correct FW package is installed on non-CUDA. + +------------------------------------------------------------------- +Tue Dec 3 12:17:24 UTC 2024 - Stefan Dirsch + +- kmp-trigger.sh: + * avoid to return with exit code != 0 if modules could not be + unloaded for some reason + +------------------------------------------------------------------- +Sat Nov 30 12:30:19 UTC 2024 - Stefan Dirsch + +- only obsolete 555 CUDA driver/firmware packages + +------------------------------------------------------------------- +Sat Nov 30 09:21:37 UTC 2024 - Stefan Dirsch + +- preamble: + no longer need to provide nvidia-open-driver-G06-kmp because + since 565.57.01 to the list of requires of nvidia-compute-G06 + the -signed packages has been added + +------------------------------------------------------------------- +Sat Nov 30 02:18:26 UTC 2024 - Stefan Dirsch + +- For CUDA update version to 565.57.01 + +------------------------------------------------------------------- +Fri Nov 29 10:02:34 UTC 2024 - Egbert Eich + +- Add 'dummy' firmware package on SLE to work around update + issues. On SLE, the firmware is installed directly from + an NVIDIA-hosted repo. + +------------------------------------------------------------------- +Thu Nov 28 12:28:40 UTC 2024 - Stefan Dirsch + +- preamble + * resolve self conflicts of -cuda KMP during update by adding + obsoletes to older versions (boo#1233332) + +------------------------------------------------------------------- +Mon Nov 25 19:16:46 UTC 2024 - Stefan Dirsch + +- fixed my wrong patch 550.135.patch I introduced right below; + it fixed x86_64 build more-or-less accidently but broke aarch64 + build completely ... + +------------------------------------------------------------------- +Mon Nov 25 13:34:20 UTC 2024 - Egbert Eich + +- Improve handling of conflicts between different flavors + (gfx vs. CUDA) (bsc#1233332). + +------------------------------------------------------------------- +Mon Nov 25 12:08:18 UTC 2024 - Stefan Dirsch + +- Update to 550.135 (boo#1233673) +- 550.135.patch: + * fixes wrong logic for checking supported architectures + +------------------------------------------------------------------- +Mon Nov 11 10:32:20 UTC 2024 - Stefan Dirsch + +- kmp-trigger.sh: + * avoid to return with exit code != 0 if no modules are loaded + +------------------------------------------------------------------- +Wed Oct 23 02:50:30 UTC 2024 - Stefan Dirsch + +- Update to 550.127.05 (boo#1232057) + * Fixed a bug which could cause applications using GBM to crash + when running with nvidia-drm.modeset=0. + +------------------------------------------------------------------- +Mon Oct 21 11:32:45 UTC 2024 - Stefan Dirsch + +- cuda-flavor + provide also nvidia-open-driver-G06-kmp-$flavor = %version to + workaround broken cuda-drivers + +------------------------------------------------------------------- +Fri Oct 18 19:35:16 UTC 2024 - Stefan Dirsch + +- For CUDA update version to 560.35.03 +- supersedes kernel-6.10.patch + +------------------------------------------------------------------- +Fri Oct 18 13:31:46 UTC 2024 - Stefan Dirsch + +- cuda-flavor + * provide nvidia-open-driver-G06-kmp = %version to workaround + broken cuda-drivers +- nv-prefer-signed-open-driver + * added comments for requirements + +------------------------------------------------------------------- +Fri Oct 18 12:28:39 UTC 2024 - Stefan Dirsch + +- latest change hardcoded to 555.42.06; we no longer need this + for 560 + +------------------------------------------------------------------- +Fri Oct 18 11:49:46 UTC 2024 - Stefan Dirsch + +- nv-prefer-signed-open-driver: + * added specicic versions of cuda-drivers/cuda-drivers-xxx as + preconditions for requiring specific version of + nvidia-compute-G06 + +------------------------------------------------------------------- +Fri Oct 18 10:30:28 UTC 2024 - Stefan Dirsch + +- nv-prefer-signed-open-driver: + * no longer require a specific version of + nvidia-open-driver-G06-signed-cuda-kmp, so it can select the + correct open driver KMP matching the cuda-runtime version +- cuda-flavor: + * added nvidia-compute-G06 = %version to preconditions for + requiring kernel-firmware-nvidia-gspx-G06, since + nvidia-compute-utils-G06 does not have a version-specific + requires on nvidia-compute-G06 + +------------------------------------------------------------------- +Wed Oct 16 17:59:46 UTC 2024 - Stefan Dirsch + +- cuda-flavor: + * require kernel-firmware-nvidia-gspx-G06 instead of + kernel-firmware-nvidia-gspx-G06-cuda (which provides also + kernel-firmware-nvidia-gspx-G06) + * trigger removal of driver modules also on + kernel-firmware-nvidia-gspx-G06 + +------------------------------------------------------------------- +Wed Oct 16 12:44:18 UTC 2024 - Stefan Dirsch + +- no longer hard-require kernel firmware package, but install it + automatically once nvidia-compute-utils-G06 gets installed +- trigger removal of driver modules with non-existing or wrong + firmware when (new) firmware gets installed + +------------------------------------------------------------------- +Sat Sep 21 12:02:59 UTC 2024 - Stefan Dirsch + +- Update to 550.120 (boo#1230779) + * Fixed a bug that could cause kernel crashes upon attempting + KMS operations through DRM when nvidia_drm was loaded with + modeset=0. +- aarch64-TW-buildfix.patch + * fixes build on aarch64 with latest TW kernel + +------------------------------------------------------------------- +Wed Sep 11 11:15:43 UTC 2024 - Stefan Dirsch + +- CUDA build: removed entries from pci_ids-555.42.06 since this is + doing more harm than benefit (bsc#1230368) + +------------------------------------------------------------------- +Mon Sep 9 17:55:56 UTC 2024 - Stefan Dirsch + +- For CUDA (preamble file): + * added: Provides: nvidia-open-driver-G06-signed-cuda-kmp-$flavor = %version + which is needed for 'zypper install = ' + * added: Provides/Conflicts: nvidia-open-driver-G06-signed-kmp-$flavor = %version + useful for containers + +------------------------------------------------------------------- +Wed Aug 28 11:02:09 UTC 2024 - Stefan Dirsch + +- reverted CUDA update version to 560.x.y due to changes in CUDA + repository with CUDA 12.6/560.x.y drivers +- kernel-6.10.patch: + * fixes build of 555.42.06 against Kernel 6.10 + +------------------------------------------------------------------- +Sun Aug 25 10:43:01 UTC 2024 - Stefan Dirsch + +- For CUDA update version to 560.35.03 + +------------------------------------------------------------------- +Mon Aug 12 10:53:10 UTC 2024 - Stefan Dirsch + +- Update to 550.107.02 (boo#1229716) + +------------------------------------------------------------------- +Sat Aug 10 12:16:49 UTC 2024 - Stefan Dirsch + +- For CUDA update version to 560.28.03 + +------------------------------------------------------------------- +Tue Jul 23 09:04:48 UTC 2024 - Stefan Dirsch + +- better summary and description for KMP + +------------------------------------------------------------------- +Thu Jul 11 07:36:33 UTC 2024 - Egbert Eich + +- Update to version 555.42.06 for CUDA. This tag has become + available in github, now. + +------------------------------------------------------------------- +Tue Jul 9 12:57:07 UTC 2024 - Stefan Dirsch + +- Update to 550.100 (boo#1227575) + * Fixed a bug that caused OpenGL triple buffering to behave like + double buffering. + +------------------------------------------------------------------- +Mon Jul 8 11:29:07 UTC 2024 - Egbert Eich + +- Use macro which is set during build but not when running + `osc service run download_files` to make sure both source versions + are visible for download. This way, only the correct source + tarball will be included in the source package of its respective + flavor but both can be downloaded (updated) simultaniously. + +------------------------------------------------------------------- +Fri Jul 5 08:41:55 UTC 2024 - Stefan Dirsch + +- make buildservice happy; all sources need to be mentioned as such + in specfile + +------------------------------------------------------------------- +Thu Jul 4 16:29:09 UTC 2024 - Egbert Eich + +- To avoid issues with missing dependencies when no CUDA repo + is present make the dependecy to nvidia-compute-G06 conditional. +- CUDA is not available for Tumbleweed, exclude the build of the + cuda flavor. + +------------------------------------------------------------------- +Thu Jul 4 14:15:41 UTC 2024 - Stefan Dirsch + +- preamble: let the -cuda flavor KMP require the -cuda flavor + firmware + +------------------------------------------------------------------- +Wed Jul 3 15:39:50 UTC 2024 - Egbert Eich + +- Add a second flavor for building the kernel module versions + used by CUDA. The kmp targetting CUDA contains '-cuda' in + its name to track its versions separately from the graphics + kmp. (bsc#1227417) +- Provide the meta package nv-prefer-signed-open-driver to + make sure the latest available SUSE-build open driver is + installed - independent of the latest available open driver + version in he CUDA repository. + Rationale: + The package cuda-runtime provides the link between CUDA and + the kernel driver version through a + Requires: cuda-drivers >= %version + This implies that a CUDA version will run withany kernel driver + version equal or higher than a base version. + nvidia-compute-G06 provides the glue layer between CUDA and + a specific version of he kernel driver both by providing + a set of base libraries and by requiring a specific kernel + version. 'cuda-drivers' (provided by nvidia-compute-utils-G06) + requires an unversioned nvidia-compute-G06. With this, the + resolver will install the latest available and applicable + nvidia-compute-G06. + nv-prefer-signed-open-driver then represents the latest available + open driver version and restricts the nvidia-compute-G06 version + to it. (bsc#1227419) + +------------------------------------------------------------------- +Tue Jun 4 13:40:41 UTC 2024 - Stefan Dirsch + +- Security Update 550.90.07 (boo#1223356) [CVE-2024-0090, + CVE-2024-0091, CVE-2024-0092] + +------------------------------------------------------------------- +Mon Apr 29 08:56:15 UTC 2024 - Stefan Dirsch + +- Update to 550.78 + * addresses boo#1223454 + +------------------------------------------------------------------- +Wed Apr 17 14:24:53 UTC 2024 - Stefan Dirsch + +- Update to 550.76 + * addresses boo#1222972 + +------------------------------------------------------------------- +Tue Mar 19 21:01:46 UTC 2024 - Stefan Dirsch + +- Update to 550.67 +- rename pci_ids-unsupported* to pci_ids-supported* files + ------------------------------------------------------------------- Wed Feb 28 17:01:24 UTC 2024 - Stefan Dirsch diff --git a/nvidia-open-driver-G06-signed.spec b/nvidia-open-driver-G06-signed.spec index c7d2bbd..83cc45a 100644 --- a/nvidia-open-driver-G06-signed.spec +++ b/nvidia-open-driver-G06-signed.spec @@ -1,7 +1,7 @@ # # spec file for package nvidia-open-driver-G06-signed # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,6 +16,21 @@ # +%define gfx_version 550.142 +%define cuda_version 565.57.01 + +%global flavor @BUILD_FLAVOR@%{?nil} +%if "%{flavor}" == "cuda" + %if 0%{?suse_version} > 1600 +ExclusiveArch: do_not_build + %endif +%{bcond_without cuda} +%define mykind cuda +%define otherkind gfx +%else +%define mykind gfx +%define otherkind cuda +%endif %if %{undefined kernel_module_directory} %if 0%{?suse_version} >= 1550 %define kernel_module_directory /usr/lib/modules @@ -29,14 +44,27 @@ %else %define compress_modules xz %endif -Name: nvidia-open-driver-G06-signed -Version: 550.54.14 +Name: nvidia-open-driver-G06-signed%{?with_cuda:-cuda} +%if %{with cuda} +Version: %{cuda_version} +%else +Version: %{gfx_version} +%endif + Release: 0 -Summary: NVIDIA open kernel module driver for GeForce RTX 2000 series and newer +Summary: NVIDIA open kernel module driver for GeForce 16 series (GTX 16xx) and newer License: GPL-2.0-only AND MIT Group: System/Kernel URL: https://github.com/NVIDIA/open-gpu-kernel-modules/ -Source0: open-gpu-kernel-modules-%{version}.tar.gz +Source0: https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/%{version}.tar.gz#/open-gpu-kernel-modules-%{version}.tar.gz +# This is defined at build, not for 'osc service run download_files` or +# factory_auto. This both sources are seen outside of the build but only +# the matching one will be included in the srpm for the respective flavor. +%if %{undefined linux_arch} +Source16: https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/%{cuda_version}.tar.gz#/open-gpu-kernel-modules-%{cuda_version}.tar.gz +Source17: pci_ids-supported-%{cuda_version} +Source18: pci_ids-%{cuda_version} +%endif Source1: my-find-supplements Source2: pci_ids-%{version} Source3: kmp-filelist @@ -45,12 +73,30 @@ Source5: kmp-postun.sh Source6: modprobe.nvidia.install Source7: preamble Source8: json-to-pci-id-list.py -Source9: pci_ids-unsupported-%{version} -Source10: pci_ids-unsupported +Source9: pci_ids-supported-%{version} +# Generate: +# CUDA_VER=12.5.1; DRIVER_VER=%version; ARCH=... +# mkdir tmp +# wget https://developer.download.nvidia.com/compute/cuda//local_installers/cuda_${CUDA_VER}_${DRIVER_VER}_linux.run -P ./tmp +# sh tmp/cuda_${CUDA_VER}_${DRIVER_VER}_linux.run --extract=$(pwd)/tmp +# cd tmp; sh ./NVIDIA-Linux-$ARCH-$DRIVER_VER.run -x; cd - +# ./json-to-pci-id-list.py --skiplegacy --kernelopen tmp/NVIDIA-Linux-${ARCH}-${DRIVER_VER}/supported-gpus/supported-gpus.json pci_ids-supported-$DRIVER_VER +Source10: pci_ids-supported Source11: pesign-copy-sources Source12: pesign-spec-macros Source14: group-source-files.pl +Source15: kmp-trigger.sh Patch0: persistent-nvidia-id-string.patch +%if %{with cuda} +Patch1: set-FOP_UNSIGNED_OFFSET-for-nv_drm_fops.fop_flags.patch +%endif +%if "%{flavor}" != "cuda" +%ifarch aarch64 +%if 0%{?suse_version} >= 1600 +Patch2: aarch64-TW-buildfix.patch +%endif +%endif +%endif BuildRequires: %{kernel_module_package_buildreqs} BuildRequires: fdupes BuildRequires: gcc-c++ @@ -71,6 +117,12 @@ ExclusiveArch: x86_64 aarch64 %define kmp_template_name /usr/lib/rpm/kernel-module-subpackage %endif %(sed -e '/^%%post\>/ r %_sourcedir/kmp-post.sh' -e '/^%%postun\>/ r %_sourcedir/kmp-postun.sh' %kmp_template_name >%_builddir/nvidia-kmp-template) +%if "%{flavor}" == "cuda" +%(echo "%triggerin -p /bin/bash -n %%{-n*}-kmp-%1 -- kernel-firmware-nvidia-gspx-G06-cuda = %{version}" >> %_builddir/nvidia-kmp-template) +%(cat %_sourcedir/kmp-trigger.sh >> %_builddir/nvidia-kmp-template) +%endif +%(echo "%triggerin -p /bin/bash -n %%{-n*}-kmp-%1 -- kernel-firmware-nvidia-gspx-G06 = %{version}" >> %_builddir/nvidia-kmp-template) +%(cat %_sourcedir/kmp-trigger.sh >> %_builddir/nvidia-kmp-template) %kernel_module_package -n %{name} -t %_builddir/nvidia-kmp-template -f %_sourcedir/kmp-filelist -p %_sourcedir/preamble %{expand:%( for f in %{flavors_to_build}; do \ @@ -81,6 +133,44 @@ ExclusiveArch: x86_64 aarch64 echo "%files -n %{name}-${f}-devel -f files-${f}"; \ done)} +%package -n nv-prefer-signed-open-driver +%define version_major %(i=%{version}; echo ${i%%%%.*}) +Summary: Prefer the signed open driver when installing CUDA +Requires: nvidia-open-driver-G06-signed-cuda-kmp +# This avoids the package being uninstallable when the CUDA repo is unavaliable preventing problems in staging +# Hard code version 555.42.06 as this requires is only needed for this version +# but since this meta package should apply to all versions. +Requires: ( nvidia-compute-G06 = 555.42.06 if ( cuda-drivers = 555.42.06 or cuda-drivers-%version_major = 555.42.06) ) + +%description -n nv-prefer-signed-open-driver +By installing this package, the signed NVIDIA open driver built by SUSE will be preferred during installation +of CUDA components. +Simply run: `zypper install --no-recommends cuda-runtime- nv-prefer-signed-open-driver` + +%package -n kernel-firmware-nvidia-gspx-G06%{?with_cuda:-cuda} +Summary: Kernel firmware file for open NVIDIA kernel module driver G06 +Provides: multiversion(kernel) +# Kill version 555 with a 'Conflicts: kernel-firmware-nvidia-gspx-G06' +Obsoletes: kernel-firmware-nvidia-gspx-G06 < 560.35.03 +Obsoletes: kernel-firmware-nvidia-gsp-G06 = 535.86.05 +Obsoletes: kernel-firmware-nvidia-gspx-G06-cuda < 560.35.03 +Requires: (kernel-firmware-nvidia-gspx-G06 = %{version} if (nvidia-compute-utils-G06 = %{version} or nvidia-compute-G06 = %{version} or sle-module-NVIDIA-compute-release)) +%if 0%{?sle_version} >= 150700 +BuildArch: noarch +%endif + +%description -n kernel-firmware-nvidia-gspx-G06%{?with_cuda:-cuda} +This package fetches the versioned kernel firmware file "gsp.bin" for +the OpenSource NVIDIA kernel module driver G06 once it's available. + +# SLE16 doesn't set %sle_version; SLE Micro 6.x is already SLE16 !!! +%if (0%{?sle_version:1} || (0%{?suse_version} == 1600 && !0%{?is_opensuse})) && %{with cuda} +%files -n kernel-firmware-nvidia-gspx-G06%{?with_cuda:-cuda} +%endif + +%if %{with cuda} +%files -n nv-prefer-signed-open-driver +%endif ## create hardware supplements for manual builds %{load:%{SOURCE12}} @@ -90,7 +180,8 @@ ExclusiveArch: x86_64 aarch64 %description This package provides the open-source NVIDIA kernel module driver -for GeForce RTX 2000 series and newer GPUs. +for GeForce 16 series (GTX 16xx) and newer GPUs, i.e. Turing GPU family +and newer (Turing, Ampere, Ada Lavelace, Hopper, Blackwell, ...). %prep %autosetup -p1 -n open-gpu-kernel-modules-%{version} @@ -126,7 +217,7 @@ for flavor in %{flavors_to_build}; do export SYSSRC=/usr/src/linux fi export SYSOUT=/usr/src/linux-obj/%_target_cpu/$flavor - make %{?_smp_mflags} %{?linux_make_arch} modules + make %{?_smp_mflags} modules popd done @@ -143,7 +234,7 @@ for flavor in %{flavors_to_build}; do export SYSSRC=/usr/src/linux fi export SYSOUT=/usr/src/linux-obj/%_target_cpu/$flavor - make %{?linux_make_arch} modules_install + make modules_install popd done diff --git a/open-gpu-kernel-modules-550.142.tar.gz b/open-gpu-kernel-modules-550.142.tar.gz new file mode 100644 index 0000000..b0b125a --- /dev/null +++ b/open-gpu-kernel-modules-550.142.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09d0acc0b85e83a1976d1c2ec2a900eb07095a72a115cad5e002c8873955e380 +size 13835125 diff --git a/open-gpu-kernel-modules-550.54.14.tar.gz b/open-gpu-kernel-modules-550.54.14.tar.gz deleted file mode 100644 index 8ef51c8..0000000 --- a/open-gpu-kernel-modules-550.54.14.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:53c40182195d99bced4113d7e981444c57e9a929b73b6e10c493cb5a96b6bc28 -size 13720314 diff --git a/open-gpu-kernel-modules-565.57.01.tar.gz b/open-gpu-kernel-modules-565.57.01.tar.gz new file mode 100644 index 0000000..e49fb1f --- /dev/null +++ b/open-gpu-kernel-modules-565.57.01.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e77b90834c151af3e517071baa908494fae0531ee8667ab170ca608eaaade16e +size 15922672 diff --git a/pci_ids-550.54.14 b/pci_ids-550.142 similarity index 100% rename from pci_ids-550.54.14 rename to pci_ids-550.142 diff --git a/pci_ids-565.57.01 b/pci_ids-565.57.01 new file mode 100644 index 0000000..e69de29 diff --git a/pci_ids-unsupported b/pci_ids-supported similarity index 87% rename from pci_ids-unsupported rename to pci_ids-supported index ed3a00e..dfa136f 100644 --- a/pci_ids-unsupported +++ b/pci_ids-supported @@ -67,8 +67,17 @@ 0x1FF0 NVIDIA T1000 8GB 0x1FF2 NVIDIA T400E 0x1FF9 Quadro T1000 +0x20B0 NVIDIA A100-PG509-200 +0x20B2 NVIDIA PG509-210 +0x20B3 NVIDIA A100-SXM-64GB +0x20B5 NVIDIA A100 80GB PCIe +0x20B6 NVIDIA PG506-232 +0x20B7 NVIDIA A30 0x20BD NVIDIA A800-SXM4-40GB +0x20F1 NVIDIA A100-PCIE-40GB 0x20F3 NVIDIA A800-SXM4-80GB +0x20F5 NVIDIA A800 80GB PCIe LC +0x20F6 NVIDIA A800 40GB Active 0x20FD NVIDIA AX800 0x2182 NVIDIA GeForce GTX 1660 Ti 0x2184 NVIDIA GeForce GTX 1660 @@ -90,8 +99,20 @@ 0x2231 NVIDIA RTX A5000 0x2232 NVIDIA RTX A4500 0x2233 NVIDIA RTX A5500 +0x2235 NVIDIA A40 +0x2236 NVIDIA A10 +0x2237 NVIDIA A10G 0x2238 NVIDIA A10M +0x2321 NVIDIA H100 NVL +0x2322 NVIDIA H800 PCIe +0x2324 NVIDIA H800 0x2329 NVIDIA H20 +0x232C NVIDIA H20-3e +0x2330 NVIDIA H100 80GB HBM3 +0x2331 NVIDIA H100 PCIe +0x2335 NVIDIA H200 +0x2339 NVIDIA H100 +0x233A NVIDIA H800 NVL 0x2342 NVIDIA GH200 480GB 0x2414 NVIDIA GeForce RTX 3060 Ti 0x2420 NVIDIA GeForce RTX 3080 Ti Laptop GPU @@ -145,6 +166,9 @@ 0x25AB NVIDIA GeForce RTX 3050 4GB Laptop GPU 0x25AC NVIDIA GeForce RTX 3050 6GB Laptop GPU 0x25AD NVIDIA GeForce RTX 2050 +0x25B0 NVIDIA RTX A1000 +0x25B2 NVIDIA RTX A400 +0x25B6 NVIDIA A2 0x25B8 NVIDIA RTX A2000 Laptop GPU 0x25B9 NVIDIA RTX A1000 Laptop GPU 0x25BA NVIDIA RTX A2000 8GB Laptop GPU @@ -164,11 +188,13 @@ 0x26B1 NVIDIA RTX 6000 Ada Generation 0x26B2 NVIDIA RTX 5000 Ada Generation 0x26B3 NVIDIA RTX 5880 Ada Generation +0x26B5 NVIDIA L40 0x26B9 NVIDIA L40S 0x26BA NVIDIA L20 0x2702 NVIDIA GeForce RTX 4080 SUPER 0x2704 NVIDIA GeForce RTX 4080 0x2705 NVIDIA GeForce RTX 4070 Ti SUPER +0x2709 NVIDIA GeForce RTX 4070 0x2717 NVIDIA GeForce RTX 4090 Laptop GPU 0x2730 NVIDIA RTX 5000 Ada Generation Laptop GPU 0x2757 NVIDIA GeForce RTX 4090 Laptop GPU @@ -176,25 +202,33 @@ 0x2782 NVIDIA GeForce RTX 4070 Ti 0x2783 NVIDIA GeForce RTX 4070 SUPER 0x2786 NVIDIA GeForce RTX 4070 +0x2788 NVIDIA GeForce RTX 4060 Ti 0x27A0 NVIDIA GeForce RTX 4080 Laptop GPU 0x27B0 NVIDIA RTX 4000 SFF Ada Generation 0x27B1 NVIDIA RTX 4500 Ada Generation 0x27B2 NVIDIA RTX 4000 Ada Generation 0x27B6 NVIDIA L2 +0x27B8 NVIDIA L4 0x27BA NVIDIA RTX 4000 Ada Generation Laptop GPU 0x27BB NVIDIA RTX 3500 Ada Generation Laptop GPU 0x27E0 NVIDIA GeForce RTX 4080 Laptop GPU 0x27FB NVIDIA RTX 3500 Ada Generation Embedded GPU 0x2803 NVIDIA GeForce RTX 4060 Ti 0x2805 NVIDIA GeForce RTX 4060 Ti +0x2808 NVIDIA GeForce RTX 4060 0x2820 NVIDIA GeForce RTX 4070 Laptop GPU +0x2822 NVIDIA GeForce RTX 3050 A Laptop GPU 0x2838 NVIDIA RTX 3000 Ada Generation Laptop GPU 0x2860 NVIDIA GeForce RTX 4070 Laptop GPU 0x2882 NVIDIA GeForce RTX 4060 0x28A0 NVIDIA GeForce RTX 4060 Laptop GPU 0x28A1 NVIDIA GeForce RTX 4050 Laptop GPU -0x28B0 NVIDIA RTX 2000 Ada Generation +0x28A3 NVIDIA GeForce RTX 3050 A Laptop GPU +0x28B0 NVIDIA RTX 2000E Ada Generation 0x28B8 NVIDIA RTX 2000 Ada Generation Laptop GPU +0x28B9 NVIDIA RTX 1000 Ada Generation Laptop GPU +0x28BA NVIDIA RTX 500 Ada Generation Laptop GPU +0x28BB NVIDIA RTX 500 Ada Generation Laptop GPU 0x28E0 NVIDIA GeForce RTX 4060 Laptop GPU 0x28E1 NVIDIA GeForce RTX 4050 Laptop GPU 0x28F8 NVIDIA RTX 2000 Ada Generation Embedded GPU diff --git a/pci_ids-unsupported-550.54.14 b/pci_ids-supported-550.142 similarity index 87% rename from pci_ids-unsupported-550.54.14 rename to pci_ids-supported-550.142 index ed3a00e..dfa136f 100644 --- a/pci_ids-unsupported-550.54.14 +++ b/pci_ids-supported-550.142 @@ -67,8 +67,17 @@ 0x1FF0 NVIDIA T1000 8GB 0x1FF2 NVIDIA T400E 0x1FF9 Quadro T1000 +0x20B0 NVIDIA A100-PG509-200 +0x20B2 NVIDIA PG509-210 +0x20B3 NVIDIA A100-SXM-64GB +0x20B5 NVIDIA A100 80GB PCIe +0x20B6 NVIDIA PG506-232 +0x20B7 NVIDIA A30 0x20BD NVIDIA A800-SXM4-40GB +0x20F1 NVIDIA A100-PCIE-40GB 0x20F3 NVIDIA A800-SXM4-80GB +0x20F5 NVIDIA A800 80GB PCIe LC +0x20F6 NVIDIA A800 40GB Active 0x20FD NVIDIA AX800 0x2182 NVIDIA GeForce GTX 1660 Ti 0x2184 NVIDIA GeForce GTX 1660 @@ -90,8 +99,20 @@ 0x2231 NVIDIA RTX A5000 0x2232 NVIDIA RTX A4500 0x2233 NVIDIA RTX A5500 +0x2235 NVIDIA A40 +0x2236 NVIDIA A10 +0x2237 NVIDIA A10G 0x2238 NVIDIA A10M +0x2321 NVIDIA H100 NVL +0x2322 NVIDIA H800 PCIe +0x2324 NVIDIA H800 0x2329 NVIDIA H20 +0x232C NVIDIA H20-3e +0x2330 NVIDIA H100 80GB HBM3 +0x2331 NVIDIA H100 PCIe +0x2335 NVIDIA H200 +0x2339 NVIDIA H100 +0x233A NVIDIA H800 NVL 0x2342 NVIDIA GH200 480GB 0x2414 NVIDIA GeForce RTX 3060 Ti 0x2420 NVIDIA GeForce RTX 3080 Ti Laptop GPU @@ -145,6 +166,9 @@ 0x25AB NVIDIA GeForce RTX 3050 4GB Laptop GPU 0x25AC NVIDIA GeForce RTX 3050 6GB Laptop GPU 0x25AD NVIDIA GeForce RTX 2050 +0x25B0 NVIDIA RTX A1000 +0x25B2 NVIDIA RTX A400 +0x25B6 NVIDIA A2 0x25B8 NVIDIA RTX A2000 Laptop GPU 0x25B9 NVIDIA RTX A1000 Laptop GPU 0x25BA NVIDIA RTX A2000 8GB Laptop GPU @@ -164,11 +188,13 @@ 0x26B1 NVIDIA RTX 6000 Ada Generation 0x26B2 NVIDIA RTX 5000 Ada Generation 0x26B3 NVIDIA RTX 5880 Ada Generation +0x26B5 NVIDIA L40 0x26B9 NVIDIA L40S 0x26BA NVIDIA L20 0x2702 NVIDIA GeForce RTX 4080 SUPER 0x2704 NVIDIA GeForce RTX 4080 0x2705 NVIDIA GeForce RTX 4070 Ti SUPER +0x2709 NVIDIA GeForce RTX 4070 0x2717 NVIDIA GeForce RTX 4090 Laptop GPU 0x2730 NVIDIA RTX 5000 Ada Generation Laptop GPU 0x2757 NVIDIA GeForce RTX 4090 Laptop GPU @@ -176,25 +202,33 @@ 0x2782 NVIDIA GeForce RTX 4070 Ti 0x2783 NVIDIA GeForce RTX 4070 SUPER 0x2786 NVIDIA GeForce RTX 4070 +0x2788 NVIDIA GeForce RTX 4060 Ti 0x27A0 NVIDIA GeForce RTX 4080 Laptop GPU 0x27B0 NVIDIA RTX 4000 SFF Ada Generation 0x27B1 NVIDIA RTX 4500 Ada Generation 0x27B2 NVIDIA RTX 4000 Ada Generation 0x27B6 NVIDIA L2 +0x27B8 NVIDIA L4 0x27BA NVIDIA RTX 4000 Ada Generation Laptop GPU 0x27BB NVIDIA RTX 3500 Ada Generation Laptop GPU 0x27E0 NVIDIA GeForce RTX 4080 Laptop GPU 0x27FB NVIDIA RTX 3500 Ada Generation Embedded GPU 0x2803 NVIDIA GeForce RTX 4060 Ti 0x2805 NVIDIA GeForce RTX 4060 Ti +0x2808 NVIDIA GeForce RTX 4060 0x2820 NVIDIA GeForce RTX 4070 Laptop GPU +0x2822 NVIDIA GeForce RTX 3050 A Laptop GPU 0x2838 NVIDIA RTX 3000 Ada Generation Laptop GPU 0x2860 NVIDIA GeForce RTX 4070 Laptop GPU 0x2882 NVIDIA GeForce RTX 4060 0x28A0 NVIDIA GeForce RTX 4060 Laptop GPU 0x28A1 NVIDIA GeForce RTX 4050 Laptop GPU -0x28B0 NVIDIA RTX 2000 Ada Generation +0x28A3 NVIDIA GeForce RTX 3050 A Laptop GPU +0x28B0 NVIDIA RTX 2000E Ada Generation 0x28B8 NVIDIA RTX 2000 Ada Generation Laptop GPU +0x28B9 NVIDIA RTX 1000 Ada Generation Laptop GPU +0x28BA NVIDIA RTX 500 Ada Generation Laptop GPU +0x28BB NVIDIA RTX 500 Ada Generation Laptop GPU 0x28E0 NVIDIA GeForce RTX 4060 Laptop GPU 0x28E1 NVIDIA GeForce RTX 4050 Laptop GPU 0x28F8 NVIDIA RTX 2000 Ada Generation Embedded GPU diff --git a/pci_ids-supported-565.57.01 b/pci_ids-supported-565.57.01 new file mode 100644 index 0000000..86dcd38 --- /dev/null +++ b/pci_ids-supported-565.57.01 @@ -0,0 +1,238 @@ +0x1E02 NVIDIA TITAN RTX +0x1E04 NVIDIA GeForce RTX 2080 Ti +0x1E07 NVIDIA GeForce RTX 2080 Ti +0x1E09 NVIDIA CMP 50HX +0x1E30 Quadro RTX 8000 +0x1E36 Quadro RTX 6000 +0x1E78 Quadro RTX 6000 +0x1E81 NVIDIA GeForce RTX 2080 SUPER +0x1E82 NVIDIA GeForce RTX 2080 +0x1E84 NVIDIA GeForce RTX 2070 SUPER +0x1E87 NVIDIA GeForce RTX 2080 +0x1E89 NVIDIA GeForce RTX 2060 +0x1E90 NVIDIA GeForce RTX 2080 with Max-Q Design +0x1E91 NVIDIA GeForce RTX 2070 Super with Max-Q Design +0x1E93 NVIDIA GeForce RTX 2080 Super with Max-Q Design +0x1EB0 Quadro RTX 5000 +0x1EB1 Quadro RTX 4000 +0x1EB5 Quadro RTX 5000 with Max-Q Design +0x1EB6 Quadro RTX 4000 with Max-Q Design +0x1EC2 NVIDIA GeForce RTX 2070 SUPER +0x1EC7 NVIDIA GeForce RTX 2070 SUPER +0x1ED0 NVIDIA GeForce RTX 2080 with Max-Q Design +0x1ED1 NVIDIA GeForce RTX 2070 Super with Max-Q Design +0x1ED3 NVIDIA GeForce RTX 2080 Super with Max-Q Design +0x1EF5 Quadro RTX 5000 +0x1F02 NVIDIA GeForce RTX 2070 +0x1F03 NVIDIA GeForce RTX 2060 +0x1F06 NVIDIA GeForce RTX 2060 SUPER +0x1F07 NVIDIA GeForce RTX 2070 +0x1F08 NVIDIA GeForce RTX 2060 +0x1F0A NVIDIA GeForce GTX 1650 +0x1F0B NVIDIA CMP 40HX +0x1F10 NVIDIA GeForce RTX 2070 with Max-Q Design +0x1F11 NVIDIA GeForce RTX 2060 +0x1F12 NVIDIA GeForce RTX 2060 with Max-Q Design +0x1F14 NVIDIA GeForce RTX 2070 with Max-Q Design +0x1F15 NVIDIA GeForce RTX 2060 +0x1F36 Quadro RTX 3000 with Max-Q Design +0x1F42 NVIDIA GeForce RTX 2060 SUPER +0x1F47 NVIDIA GeForce RTX 2060 SUPER +0x1F50 NVIDIA GeForce RTX 2070 with Max-Q Design +0x1F51 NVIDIA GeForce RTX 2060 +0x1F54 NVIDIA GeForce RTX 2070 with Max-Q Design +0x1F55 NVIDIA GeForce RTX 2060 +0x1F76 Matrox D-Series D2480 +0x1F82 NVIDIA GeForce GTX 1650 +0x1F83 NVIDIA GeForce GTX 1630 +0x1F91 NVIDIA GeForce GTX 1650 with Max-Q Design +0x1F95 NVIDIA GeForce GTX 1650 Ti with Max-Q Design +0x1F96 NVIDIA GeForce GTX 1650 with Max-Q Design +0x1F97 NVIDIA GeForce MX450 +0x1F98 NVIDIA GeForce MX450 +0x1F99 NVIDIA GeForce GTX 1650 with Max-Q Design +0x1F9C NVIDIA GeForce MX450 +0x1F9D NVIDIA GeForce GTX 1650 with Max-Q Design +0x1F9F NVIDIA GeForce MX550 +0x1FA0 NVIDIA GeForce MX550 +0x1FB0 NVIDIA T1000 +0x1FB1 NVIDIA T600 +0x1FB2 NVIDIA T400 +0x1FB6 NVIDIA T600 Laptop GPU +0x1FB7 NVIDIA T550 Laptop GPU +0x1FB8 Quadro T2000 with Max-Q Design +0x1FB9 Quadro T1000 with Max-Q Design +0x1FBA NVIDIA T600 Laptop GPU +0x1FBB NVIDIA T500 +0x1FBC NVIDIA T1200 Laptop GPU +0x1FDD NVIDIA GeForce GTX 1650 +0x1FF0 NVIDIA T1000 8GB +0x1FF2 NVIDIA T400E +0x1FF9 Quadro T1000 +0x20B0 NVIDIA A100-PG509-200 +0x20B2 NVIDIA PG509-210 +0x20B3 NVIDIA A100-SXM-64GB +0x20B5 NVIDIA A100 80GB PCIe +0x20B6 NVIDIA PG506-232 +0x20B7 NVIDIA A30 +0x20BD NVIDIA A800-SXM4-40GB +0x20F1 NVIDIA A100-PCIE-40GB +0x20F3 NVIDIA A800-SXM4-80GB +0x20F5 NVIDIA A800 80GB PCIe LC +0x20F6 NVIDIA A800 40GB Active +0x20FD NVIDIA AX800 +0x2182 NVIDIA GeForce GTX 1660 Ti +0x2184 NVIDIA GeForce GTX 1660 +0x2187 NVIDIA GeForce GTX 1650 SUPER +0x2188 NVIDIA GeForce GTX 1650 +0x2189 NVIDIA CMP 30HX +0x2191 NVIDIA GeForce GTX 1660 Ti with Max-Q Design +0x2192 NVIDIA GeForce GTX 1650 Ti +0x21C4 NVIDIA GeForce GTX 1660 SUPER +0x21D1 NVIDIA GeForce GTX 1660 Ti +0x2203 NVIDIA GeForce RTX 3090 Ti +0x2204 NVIDIA GeForce RTX 3090 +0x2206 NVIDIA GeForce RTX 3080 +0x2207 NVIDIA GeForce RTX 3070 Ti +0x2208 NVIDIA GeForce RTX 3080 Ti +0x220A NVIDIA GeForce RTX 3080 +0x220D NVIDIA CMP 90HX +0x2216 NVIDIA GeForce RTX 3080 +0x2230 NVIDIA RTX A6000 +0x2231 NVIDIA RTX A5000 +0x2232 NVIDIA RTX A4500 +0x2233 NVIDIA RTX A5500 +0x2235 NVIDIA A40 +0x2236 NVIDIA A10 +0x2237 NVIDIA A10G +0x2238 NVIDIA A10M +0x2321 NVIDIA H100 NVL +0x2322 NVIDIA H800 PCIe +0x2324 NVIDIA H800 +0x2329 NVIDIA H20 +0x2330 NVIDIA H100 80GB HBM3 +0x2331 NVIDIA H100 PCIe +0x2335 NVIDIA H200 +0x2339 NVIDIA H100 +0x233A NVIDIA H800 NVL +0x233B NVIDIA H200 NVL +0x2342 NVIDIA GH200 480GB +0x2348 NVIDIA GH200 144G HBM3e +0x2414 NVIDIA GeForce RTX 3060 Ti +0x2420 NVIDIA GeForce RTX 3080 Ti Laptop GPU +0x2438 NVIDIA RTX A5500 Laptop GPU +0x2460 NVIDIA GeForce RTX 3080 Ti Laptop GPU +0x2482 NVIDIA GeForce RTX 3070 Ti +0x2484 NVIDIA GeForce RTX 3070 +0x2486 NVIDIA GeForce RTX 3060 Ti +0x2487 NVIDIA GeForce RTX 3060 +0x2488 NVIDIA GeForce RTX 3070 +0x2489 NVIDIA GeForce RTX 3060 Ti +0x248A NVIDIA CMP 70HX +0x249C NVIDIA GeForce RTX 3060 Laptop GPU +0x249D NVIDIA GeForce RTX 3070 Laptop GPU +0x24A0 NVIDIA GeForce RTX 3060 Laptop GPU +0x24B0 NVIDIA RTX A4000 +0x24B1 NVIDIA RTX A4000H +0x24B6 NVIDIA RTX A5000 Laptop GPU +0x24B7 NVIDIA RTX A4000 Laptop GPU +0x24B8 NVIDIA RTX A3000 Laptop GPU +0x24B9 NVIDIA RTX A3000 12GB Laptop GPU +0x24BA NVIDIA RTX A4500 Laptop GPU +0x24BB NVIDIA RTX A3000 12GB Laptop GPU +0x24C7 NVIDIA GeForce RTX 3060 +0x24C9 NVIDIA GeForce RTX 3060 Ti +0x24DC NVIDIA GeForce RTX 3080 Laptop GPU +0x24DD NVIDIA GeForce RTX 3070 Laptop GPU +0x24E0 NVIDIA GeForce RTX 3070 Ti Laptop GPU +0x24FA NVIDIA RTX A4500 Embedded GPU +0x2503 NVIDIA GeForce RTX 3060 +0x2504 NVIDIA GeForce RTX 3060 +0x2507 NVIDIA GeForce RTX 3050 +0x2508 NVIDIA GeForce RTX 3050 OEM +0x2520 NVIDIA GeForce RTX 3060 Laptop GPU +0x2521 NVIDIA GeForce RTX 3060 Laptop GPU +0x2523 NVIDIA GeForce RTX 3050 Ti Laptop GPU +0x2531 NVIDIA RTX A2000 +0x2544 NVIDIA GeForce RTX 3060 +0x2560 NVIDIA GeForce RTX 3060 Laptop GPU +0x2563 NVIDIA GeForce RTX 3050 Ti Laptop GPU +0x2571 NVIDIA RTX A2000 12GB +0x2582 NVIDIA GeForce RTX 3050 +0x2584 NVIDIA GeForce RTX 3050 +0x25A0 NVIDIA GeForce RTX 3060 Laptop GPU +0x25A2 NVIDIA GeForce RTX 3060 Laptop GPU +0x25A5 NVIDIA GeForce RTX 3050 Laptop GPU +0x25A6 NVIDIA GeForce MX570 +0x25A7 NVIDIA GeForce RTX 2050 +0x25A9 NVIDIA GeForce RTX 2050 +0x25AA NVIDIA GeForce MX570 A +0x25AB NVIDIA GeForce RTX 3050 4GB Laptop GPU +0x25AC NVIDIA GeForce RTX 3050 6GB Laptop GPU +0x25AD NVIDIA GeForce RTX 2050 +0x25B0 NVIDIA RTX A1000 +0x25B2 NVIDIA RTX A400 +0x25B6 NVIDIA A2 +0x25B8 NVIDIA RTX A2000 Laptop GPU +0x25B9 NVIDIA RTX A1000 Laptop GPU +0x25BA NVIDIA RTX A2000 8GB Laptop GPU +0x25BB NVIDIA RTX A500 Laptop GPU +0x25BC NVIDIA RTX A1000 6GB Laptop GPU +0x25BD NVIDIA RTX A500 Laptop GPU +0x25E0 NVIDIA GeForce RTX 3050 Ti Laptop GPU +0x25E2 NVIDIA GeForce RTX 3050 Laptop GPU +0x25E5 NVIDIA GeForce RTX 3050 Laptop GPU +0x25EC NVIDIA GeForce RTX 3050 6GB Laptop GPU +0x25ED NVIDIA GeForce RTX 2050 +0x25F9 NVIDIA RTX A1000 Embedded GPU +0x25FA NVIDIA RTX A2000 Embedded GPU +0x25FB NVIDIA RTX A500 Embedded GPU +0x2684 NVIDIA GeForce RTX 4090 +0x2685 NVIDIA GeForce RTX 4090 D +0x2689 NVIDIA GeForce RTX 4070 Ti SUPER +0x26B1 NVIDIA RTX 6000 Ada Generation +0x26B2 NVIDIA RTX 5000 Ada Generation +0x26B3 NVIDIA RTX 5880 Ada Generation +0x26B5 NVIDIA L40 +0x26B9 NVIDIA L40S +0x26BA NVIDIA L20 +0x2702 NVIDIA GeForce RTX 4080 SUPER +0x2704 NVIDIA GeForce RTX 4080 +0x2705 NVIDIA GeForce RTX 4070 Ti SUPER +0x2709 NVIDIA GeForce RTX 4070 +0x2717 NVIDIA GeForce RTX 4090 Laptop GPU +0x2730 NVIDIA RTX 5000 Ada Generation Laptop GPU +0x2757 NVIDIA GeForce RTX 4090 Laptop GPU +0x2770 NVIDIA RTX 5000 Ada Generation Embedded GPU +0x2782 NVIDIA GeForce RTX 4070 Ti +0x2783 NVIDIA GeForce RTX 4070 SUPER +0x2786 NVIDIA GeForce RTX 4070 +0x2788 NVIDIA GeForce RTX 4060 Ti +0x27A0 NVIDIA GeForce RTX 4080 Laptop GPU +0x27B0 NVIDIA RTX 4000 SFF Ada Generation +0x27B1 NVIDIA RTX 4500 Ada Generation +0x27B2 NVIDIA RTX 4000 Ada Generation +0x27B6 NVIDIA L2 +0x27B8 NVIDIA L4 +0x27BA NVIDIA RTX 4000 Ada Generation Laptop GPU +0x27BB NVIDIA RTX 3500 Ada Generation Laptop GPU +0x27E0 NVIDIA GeForce RTX 4080 Laptop GPU +0x27FB NVIDIA RTX 3500 Ada Generation Embedded GPU +0x2803 NVIDIA GeForce RTX 4060 Ti +0x2805 NVIDIA GeForce RTX 4060 Ti +0x2808 NVIDIA GeForce RTX 4060 +0x2820 NVIDIA GeForce RTX 4070 Laptop GPU +0x2822 NVIDIA GeForce RTX 3050 A Laptop GPU +0x2838 NVIDIA RTX 3000 Ada Generation Laptop GPU +0x2860 NVIDIA GeForce RTX 4070 Laptop GPU +0x2882 NVIDIA GeForce RTX 4060 +0x28A0 NVIDIA GeForce RTX 4060 Laptop GPU +0x28A1 NVIDIA GeForce RTX 4050 Laptop GPU +0x28B0 NVIDIA RTX 2000E Ada Generation +0x28B8 NVIDIA RTX 2000 Ada Generation Laptop GPU +0x28B9 NVIDIA RTX 1000 Ada Generation Laptop GPU +0x28BA NVIDIA RTX 500 Ada Generation Laptop GPU +0x28BB NVIDIA RTX 500 Ada Generation Laptop GPU +0x28E0 NVIDIA GeForce RTX 4060 Laptop GPU +0x28E1 NVIDIA GeForce RTX 4050 Laptop GPU +0x28F8 NVIDIA RTX 2000 Ada Generation Embedded GPU diff --git a/persistent-nvidia-id-string.patch b/persistent-nvidia-id-string.patch index 2b050e3..8f81254 100644 --- a/persistent-nvidia-id-string.patch +++ b/persistent-nvidia-id-string.patch @@ -2,9 +2,11 @@ utils.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---- a/utils.mk -+++ b/utils.mk -@@ -524,7 +524,7 @@ define GENERATE_NVIDSTRING +Index: open-gpu-kernel-modules-550.135/utils.mk +=================================================================== +--- open-gpu-kernel-modules-550.135.orig/utils.mk ++++ open-gpu-kernel-modules-550.135/utils.mk +@@ -544,7 +544,7 @@ define GENERATE_NVIDSTRING # g_nvid_string.c depends on all objects except g_nvid_string.o, and version.mk $(NVIDSTRING): $$(filter-out $$(call BUILD_OBJECT_LIST,$$(NVIDSTRING)), $(3)) $$(VERSION_MK) $(at_if_quiet)$$(MKDIR) $$(dir $$@) diff --git a/preamble b/preamble index 9c7d2cc..99b2c5d 100644 --- a/preamble +++ b/preamble @@ -1,6 +1,26 @@ -Requires: kernel-firmware-nvidia-gspx-G06 = %{-v*} Requires: perl-Bootloader Conflicts: nvidia-gfxG06-kmp nvidia-driver-G06-kmp nvidia-gfxG05-kmp Requires: group(video) Provides: nvidia-open-driver-G06 = %{-v*} +%if %{with cuda} +Provides: nvidia-open-driver-G06-signed-cuda-kmp-%1 = %{-v*} +# Provide plain version to simplify installation +Provides: nvidia-open-driver-G06-signed-kmp = %{-v*} +Provides: nvidia-open-driver-G06-signed-kmp-%1 = %{-v*} +# workaround for broken cuda-drivers +# resolve self conflicts of -cuda KMP during update by adding +# obsoletes pre-560/560 version due to its broad conflicts (boo#1233332) +Obsoletes: nvidia-open-driver-G06-signed-cuda-kmp-%1 <= 560.35.03 +Obsoletes: nvidia-open-driver-G06-signed-cuda-kmp <= 560.35.03 +%endif +# SLE16 doesn't set %sle_version; SLE Micro 6.x is already SLE16 !!! +%if (0%{?sle_version:1} || (0%{?suse_version} == 1600 && !0%{?is_opensuse})) && %{with cuda} +Requires: kernel-firmware-nvidia-gspx-G06-cuda = %{-v*} +%else +Requires: (kernel-firmware-nvidia-gspx-G06 = %{-v*} if nvidia-compute-utils-G06 = %{-v*}) +%endif +Provides: nvidia-open-signed-kmp = %version +Provides: nvidia-open-signed-kmp(%mykind) +Conflicts: nvidia-open-signed-kmp(%otherkind) + Obsoletes: nvidia-open-driver-G06 = %{-v*} diff --git a/set-FOP_UNSIGNED_OFFSET-for-nv_drm_fops.fop_flags.patch b/set-FOP_UNSIGNED_OFFSET-for-nv_drm_fops.fop_flags.patch new file mode 100644 index 0000000..38a12bc --- /dev/null +++ b/set-FOP_UNSIGNED_OFFSET-for-nv_drm_fops.fop_flags.patch @@ -0,0 +1,92 @@ +From 8ac26d3c66ea88b0f80504bdd1e907658b41609d Mon Sep 17 00:00:00 2001 +From: Rahul Rameshbabu +Date: Tue, 12 Nov 2024 15:01:16 -0800 +Subject: [PATCH] nvidia-drm: Set FOP_UNSIGNED_OFFSET for nv_drm_fops.fop_flags + if present + +Linux kernel commit 641bb4394f40 ("fs: move FMODE_UNSIGNED_OFFSET to +fop_flags") introduced a new .fop_flags define, FOP_UNSIGNED_OFFSET, for +struct file_operations. A check in drm_open_helper was added to ensure DRM +device drivers mark that all file offsets passed for working with DRM fs +nodes are unsigned values. If a DRM device driver fails to set this static +member, opening DRM device nodes (/dev/dri/card*) will fail. This commit +will land in Linux kernel v6.12. + +To ensure DRM clients will continue to function with kernel v6.12 and +above, set FOP_UNSIGNED_OFFSET for nv_drm_fops.fop_flags if +FOP_UNSIGNED_OFFSET is present in the linux kernel headers being built +against. Without doing so, userspace DRM clients will fail to function. An +example is being unable to launch Wayland compositors. + +KWin logs without this change: + kwin_core: Failed to open /dev/dri/card1 device (Invalid argument) + kwin_wayland_drm: failed to open drm device at "/dev/dri/card1" + kwin_core: Failed to open /dev/dri/card0 device (Invalid argument) + kwin_wayland_drm: failed to open drm device at "/dev/dri/card0" + kwin_wayland_drm: No suitable DRM devices have been found + +Linux kernel warning generated without this change: + [Oct 2 02:15] ------------[ cut here ]------------ + [ +0.000009] WARNING: CPU: 2 PID: 464 at drivers/gpu/drm/drm_file.c:312 drm_open_helper+0x134/0x150 + + [ +0.000108] Unloaded tainted modules: nvidia(OE):1 nvidia_modeset(OE):1 nvidia_drm(OE):1 [last unloaded: ttm] + [ +0.000024] CPU: 2 UID: 0 PID: 464 Comm: systemd-logind Tainted: G OE 6.12.0-rc1-next-20241001-sound+ #10 c8090f98b0209abebde89ba1e4c08c75331eef4d + [ +0.000016] Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE + [ +0.000004] Hardware name: System manufacturer PRIME Z390-A/PRIME Z390-A, BIOS 0224 08/14/2018 + [ +0.000005] RIP: 0010:drm_open_helper+0x134/0x150 + + [ +0.000005] Call Trace: + [ +0.000006] + [ +0.000004] ? drm_open_helper+0x134/0x150 + [ +0.000008] ? __warn.cold+0x93/0xf6 + [ +0.000011] ? drm_open_helper+0x134/0x150 + [ +0.000009] ? report_bug+0xff/0x140 + [ +0.000009] ? handle_bug+0x58/0x90 + [ +0.000010] ? exc_invalid_op+0x17/0x70 + [ +0.000010] ? asm_exc_invalid_op+0x1a/0x20 + [ +0.000018] ? drm_open_helper+0x134/0x150 + [ +0.000008] drm_open+0x73/0x110 + [ +0.000007] drm_stub_open+0x9b/0xd0 + [ +0.000009] chrdev_open+0xb0/0x230 + [ +0.000014] ? __pfx_chrdev_open+0x10/0x10 + [ +0.000011] do_dentry_open+0x14c/0x4a0 + [ +0.000013] vfs_open+0x2e/0xe0 + [ +0.000009] path_openat+0x82f/0x13f0 + [ +0.000016] do_filp_open+0xc4/0x170 + [ +0.000020] do_sys_openat2+0xae/0xe0 + [ +0.000010] __x64_sys_openat+0x55/0xa0 + [ +0.000009] do_syscall_64+0x82/0x190 + [ +0.000008] ? do_readlinkat+0xc5/0x180 + [ +0.000008] ? syscall_exit_to_user_mode+0x37/0x1c0 + [ +0.000010] ? do_syscall_64+0x8e/0x190 + [ +0.000007] ? do_sys_openat2+0x9c/0xe0 + [ +0.000009] ? syscall_exit_to_user_mode+0x37/0x1c0 + [ +0.000008] ? do_syscall_64+0x8e/0x190 + [ +0.000007] ? syscall_exit_to_user_mode+0x37/0x1c0 + [ +0.000007] ? do_syscall_64+0x8e/0x190 + [ +0.000006] ? do_syscall_64+0x8e/0x190 + [ +0.000007] entry_SYSCALL_64_after_hwframe+0x76/0x7e + [ +0.000012] RIP: 0033:0x7f90c1cec2e3 + + [ +0.000004] ---[ end trace 0000000000000000 ]--- + +Signed-off-by: Rahul Rameshbabu +--- + kernel-open/nvidia-drm/nvidia-drm-drv.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/kernel-open/nvidia-drm/nvidia-drm-drv.c b/kernel-open/nvidia-drm/nvidia-drm-drv.c +index 8cb942193..16f0d13e1 100644 +--- a/kernel-open/nvidia-drm/nvidia-drm-drv.c ++++ b/kernel-open/nvidia-drm/nvidia-drm-drv.c +@@ -1711,6 +1711,10 @@ static const struct file_operations nv_drm_fops = { + .read = drm_read, + + .llseek = noop_llseek, ++ ++#if defined(FOP_UNSIGNED_OFFSET) ++ .fop_flags = FOP_UNSIGNED_OFFSET, ++#endif + }; + + static const struct drm_ioctl_desc nv_drm_ioctls[] = {