summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Stryker2022-01-25 23:52:48 -0500
committerJason Stryker2022-01-25 23:52:48 -0500
commitf998e0cb58412cfd724f5c1480254beb2de22884 (patch)
tree83632bcc4712b4e52fb895e74f428c2f2c17cf79
parent6e8ce288bc842f06d32c6f0ca8628f916a8a4bba (diff)
downloadaur-f998e0cb58412cfd724f5c1480254beb2de22884.tar.gz
update to driver version 470.62.22
-rw-r--r--.SRCINFO26
-rw-r--r--PKGBUILD22
-rw-r--r--kernel-5.16-std.diff172
-rw-r--r--nvidia.rules6
4 files changed, 207 insertions, 19 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 6ba9947b6353..12c09f0cb9ba 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = nvidia-vulkan
pkgdesc = NVIDIA drivers for linux (vulkan developer branch)
- pkgver = 470.62.12
+ pkgver = 470.62.22
pkgrel = 1
url = https://developer.nvidia.com/vulkan-driver
arch = x86_64
@@ -9,27 +9,31 @@ pkgbase = nvidia-vulkan
makedepends = linux
makedepends = linux-headers
options = !strip
- source = NVIDIA-Linux-x86_64-470.62.12.run::https://developer.nvidia.com/vulkan-beta-4706212-linux
+ source = NVIDIA-Linux-x86_64-470.62.22.run::https://developer.nvidia.com/vulkan-beta-4706222-linux
source = nvidia-drm-outputclass.conf
source = nvidia-vulkan-utils.sysusers
- sha512sums = e7d21ce7bf4cf034cb7e6162dfc8b7cfb9bb3144fbb70c0c2e6b8aeaf6379665f15117edbb685ea7d97f0956f89d2a58f4c77645af967d33072cbc3186d5e503
+ source = nvidia.rules
+ source = kernel-5.16-std.diff
+ sha512sums = 9e9f6a665034495bbfd438567fb9a0998adbfcc979fd1e0370d355b4f312e4c1fb5162b15e5264cc89d3aca6dcaf84ce7ebfff0885ac783dfcd8be3b99b3b96f
sha512sums = de7116c09f282a27920a1382df84aa86f559e537664bb30689605177ce37dc5067748acf9afd66a3269a6e323461356592fdfc624c86523bf105ff8fe47d3770
sha512sums = 4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499
+ sha512sums = 68c9ac6444cdb3c637eee4135cf1a5a137a233ab12e682e3dbe5b3db6e704907b2759567e99f13026f1e33d8ccc78f3dad12d471cc2ddf9c3d4370697dc169e9
+ sha512sums = 2c86a2a1f8c9fd48b0fbcdfdf0d53efd28d31a411dfb5d9ac5aba84014cdd77df898ab1b9669edafa248f85c88d478a5454165567e3c8a5c40b803a2c8861e84
pkgname = nvidia-vulkan
pkgdesc = NVIDIA drivers for linux (vulkan developer branch)
depends = linux
- depends = nvidia-vulkan-utils=470.62.12
+ depends = nvidia-vulkan-utils=470.62.22
depends = libglvnd
- provides = nvidia=470.62.12
+ provides = nvidia=470.62.22
conflicts = nvidia
pkgname = nvidia-vulkan-dkms
pkgdesc = NVIDIA driver sources for linux (vulkan developer branch)
depends = dkms
- depends = nvidia-vulkan-utils=470.62.12
+ depends = nvidia-vulkan-utils=470.62.22
depends = libglvnd
- provides = nvidia=470.62.12
+ provides = nvidia=470.62.22
conflicts = nvidia
pkgname = nvidia-vulkan-utils
@@ -42,7 +46,7 @@ pkgname = nvidia-vulkan-utils
optdepends = gtk3: nvidia-settings (GTK+ v3)
optdepends = xorg-server-devel: nvidia-xconfig
optdepends = opencl-nvidia-vulkan: OpenCL support
- provides = nvidia-utils=470.62.12
+ provides = nvidia-utils=470.62.22
provides = vulkan-driver
provides = opengl-driver
provides = nvidia-libgl
@@ -57,7 +61,7 @@ pkgname = opencl-nvidia-vulkan
depends = zlib
optdepends = opencl-headers: headers necessary for OpenCL development
provides = opencl-driver
- provides = opencl-nvidia=470.62.12
+ provides = opencl-nvidia=470.62.22
conflicts = opencl-nvidia
pkgname = lib32-nvidia-vulkan-utils
@@ -67,7 +71,7 @@ pkgname = lib32-nvidia-vulkan-utils
depends = lib32-libglvnd
depends = nvidia-vulkan-utils
optdepends = lib32-opencl-nvidia-vulkan
- provides = lib32-nvidia-utils=470.62.12
+ provides = lib32-nvidia-utils=470.62.22
provides = lib32-vulkan-driver
provides = lib32-opengl-driver
provides = lib32-nvidia-libgl
@@ -81,6 +85,6 @@ pkgname = lib32-opencl-nvidia-vulkan
depends = lib32-gcc-libs
optdepends = opencl-headers: headers necessary for OpenCL development
provides = lib32-opencl-driver
- provides = lib32-opencl-nvidia=470.62.12
+ provides = lib32-opencl-nvidia=470.62.22
conflicts = lib32-opencl-nvidia
conflicts = lib32-opencl-nvidia-390xx
diff --git a/PKGBUILD b/PKGBUILD
index 44f5239e7b36..0b83fcd23de5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,7 +8,7 @@
pkgbase=nvidia-vulkan
pkgname=('nvidia-vulkan' 'nvidia-vulkan-dkms' 'nvidia-vulkan-utils' 'opencl-nvidia-vulkan' 'lib32-nvidia-vulkan-utils' 'lib32-opencl-nvidia-vulkan')
-pkgver=470.62.12
+pkgver=470.62.22
pkgrel=1
pkgdesc="NVIDIA drivers for linux (vulkan developer branch)"
arch=('x86_64')
@@ -19,10 +19,14 @@ options=('!strip')
_pkg="NVIDIA-Linux-x86_64-${pkgver}"
source=("${_pkg}.run::https://developer.nvidia.com/vulkan-beta-${pkgver//.}-linux"
'nvidia-drm-outputclass.conf'
- 'nvidia-vulkan-utils.sysusers')
-sha512sums=('e7d21ce7bf4cf034cb7e6162dfc8b7cfb9bb3144fbb70c0c2e6b8aeaf6379665f15117edbb685ea7d97f0956f89d2a58f4c77645af967d33072cbc3186d5e503'
+ 'nvidia-vulkan-utils.sysusers'
+ 'nvidia.rules'
+ 'kernel-5.16-std.diff')
+sha512sums=('9e9f6a665034495bbfd438567fb9a0998adbfcc979fd1e0370d355b4f312e4c1fb5162b15e5264cc89d3aca6dcaf84ce7ebfff0885ac783dfcd8be3b99b3b96f'
'de7116c09f282a27920a1382df84aa86f559e537664bb30689605177ce37dc5067748acf9afd66a3269a6e323461356592fdfc624c86523bf105ff8fe47d3770'
- '4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499')
+ '4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499'
+ '68c9ac6444cdb3c637eee4135cf1a5a137a233ab12e682e3dbe5b3db6e704907b2759567e99f13026f1e33d8ccc78f3dad12d471cc2ddf9c3d4370697dc169e9'
+ '2c86a2a1f8c9fd48b0fbcdfdf0d53efd28d31a411dfb5d9ac5aba84014cdd77df898ab1b9669edafa248f85c88d478a5454165567e3c8a5c40b803a2c8861e84')
create_links() {
# create soname links
@@ -39,8 +43,8 @@ prepare() {
cd "${_pkg}"
bsdtar -xf nvidia-persistenced-init.tar.bz2
- #patch -Np1 -i ../kernel-5.11.patch
- #patch -Np1 -i ../kernel-5.12.patch
+ # Thanks frogs - https://github.com/Frogging-Family/nvidia-all/blob/master/patches/kernel-5.16-std.diff
+ patch -Np1 -i ../kernel-5.16-std.diff
# Fixing regex pattern for Module.symvers
sed -i "s/${TAB}vmlinux/${TAB}*vmlinux/g" kernel/conftest.sh
@@ -83,8 +87,8 @@ package_nvidia-vulkan() {
find "${pkgdir}" -name '*.ko' -exec gzip -n {} +
- echo "blacklist nouveau" |
- install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf"
+ echo "blacklist nouveau" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf"
+ echo "nvidia-uvm" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 "${srcdir}/${_pkg}/LICENSE"
}
@@ -259,6 +263,8 @@ package_nvidia-vulkan-utils() {
install -Dm644 "${srcdir}/nvidia-vulkan-utils.sysusers" "${pkgdir}/usr/lib/sysusers.d/$pkgname.conf"
+ install -Dm644 "${srcdir}/nvidia.rules" "$pkgdir"/usr/lib/udev/rules.d/60-nvidia.rules
+
create_links
}
diff --git a/kernel-5.16-std.diff b/kernel-5.16-std.diff
new file mode 100644
index 000000000000..a86e48defb12
--- /dev/null
+++ b/kernel-5.16-std.diff
@@ -0,0 +1,172 @@
+diff --git a/kernel/common/inc/nv.h a/kernel/common/inc/nv.h
+index 2ddaa25..40a3fd5 100644
+--- a/kernel/common/inc/nv.h
++++ a/kernel/common/inc/nv.h
+@@ -17,13 +17,15 @@
+ #include <nvlimits.h>
+
+ #if defined(NV_KERNEL_INTERFACE_LAYER) && defined(__FreeBSD__)
+- #include <sys/stddef.h> // NULL
++ #include <sys/stddef.h> // NULL
++#elif defined(NV_KERNEL_INTERFACE_LAYER) && defined(NV_LINUX)
++ #include <linux/stddef.h> // NULL
+ #else
+- #include <stddef.h> // NULL
++ #include <stddef.h> // NULL
+ #endif
+
+ #include <nvstatus.h>
+-#include <stdarg.h>
++#include "nv_stdarg.h"
+ #include <nv-caps.h>
+ #include <nv-ioctl.h>
+ #include <nvmisc.h>
+diff --git a/kernel/common/inc/nv_stdarg.h a/kernel/common/inc/nv_stdarg.h
+new file mode 100644
+index 0000000..4b63340
+--- /dev/null
++++ a/kernel/common/inc/nv_stdarg.h
+@@ -0,0 +1,39 @@
++/*
++ * SPDX-FileCopyrightText: Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
++ * SPDX-License-Identifier: MIT
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ */
++
++
++#ifndef _NV_STDARG_H_
++#define _NV_STDARG_H_
++
++#if defined(NV_KERNEL_INTERFACE_LAYER) && defined(NV_LINUX)
++ #include "conftest.h"
++ #if defined(NV_LINUX_STDARG_H_PRESENT)
++ #include <linux/stdarg.h>
++ #else
++ #include <stdarg.h>
++ #endif
++#else
++ #include <stdarg.h>
++#endif
++
++#endif // _NV_STDARG_H_
+diff --git a/kernel/common/inc/os-interface.h a/kernel/common/inc/os-interface.h
+index b615773..dd3e7a8 100644
+--- a/kernel/common/inc/os-interface.h
++++ a/kernel/common/inc/os-interface.h
+@@ -24,7 +24,7 @@
+
+ #include <nvtypes.h>
+ #include <nvstatus.h>
+-#include <stdarg.h>
++#include "nv_stdarg.h"
+ #include <nv-kernel-interface-api.h>
+ #include <os/nv_memory_type.h>
+
+diff --git a/kernel/common/inc/rm-gpu-ops.h a/kernel/common/inc/rm-gpu-ops.h
+index 67b252e..3302e72 100644
+--- a/kernel/common/inc/rm-gpu-ops.h
++++ a/kernel/common/inc/rm-gpu-ops.h
+@@ -16,7 +16,7 @@
+
+ #include <nvtypes.h>
+ #include <nvCpuUuid.h>
+-#include <stdarg.h>
++#include "nv_stdarg.h"
+ #include <nv-caps.h>
+ #include <nv-ioctl.h>
+ #include <nvmisc.h>
+diff --git a/kernel/conftest.sh a/kernel/conftest.sh
+index 1a1f89c..4ae52c7 100755
+--- a/kernel/conftest.sh
++++ a/kernel/conftest.sh
+@@ -163,6 +163,7 @@ test_headers() {
+ FILES="$FILES sound/hda_codec.h"
+ FILES="$FILES linux/dma-buf.h"
+ FILES="$FILES linux/time.h"
++ FILES="$FILES linux/stdarg.h"
+
+ translate_and_preprocess_header_files $FILES
+ }
+diff --git a/kernel/nvidia-modeset/nvidia-modeset-os-interface.h a/kernel/nvidia-modeset/nvidia-modeset-os-interface.h
+index 65130fd..720e0d2 100644
+--- a/kernel/nvidia-modeset/nvidia-modeset-os-interface.h
++++ a/kernel/nvidia-modeset/nvidia-modeset-os-interface.h
+@@ -16,8 +16,14 @@
+ #if !defined(_NVIDIA_MODESET_OS_INTERFACE_H_)
+ #define _NVIDIA_MODESET_OS_INTERFACE_H_
+
+-#include <stddef.h> /* size_t */
+-#include <stdarg.h> /* va_list */
++#if defined(NV_KERNEL_INTERFACE_LAYER) && defined(__FreeBSD__)
++ #include <sys/stddef.h> // NULL
++#elif defined(NV_KERNEL_INTERFACE_LAYER) && defined(NV_LINUX)
++ #include <linux/stddef.h> // NULL
++#else
++ #include <stddef.h> // NULL
++#endif
++#include "nv_stdarg.h" /* va_list */
+
+ #include "nvtypes.h" /* NvU8 */
+
+diff --git a/kernel/nvidia-modeset/nvkms.h a/kernel/nvidia-modeset/nvkms.h
+index d46f97d..4180ed6 100644
+--- a/kernel/nvidia-modeset/nvkms.h
++++ a/kernel/nvidia-modeset/nvkms.h
+@@ -9,7 +9,13 @@
+ #define __NV_KMS_H__
+
+ #include "nvtypes.h"
+-#include <stddef.h> /* size_t */
++#if defined(NV_KERNEL_INTERFACE_LAYER) && defined(__FreeBSD__)
++ #include <sys/stddef.h> // NULL
++#elif defined(NV_KERNEL_INTERFACE_LAYER) && defined(NV_LINUX)
++ #include <linux/stddef.h> // NULL
++#else
++ #include <stddef.h> // NULL
++#endif
+
+ #include "nvkms-kapi.h"
+
+diff --git a/kernel/nvidia-uvm/uvm_mmu.c a/kernel/nvidia-uvm/uvm_mmu.c
+index 68c77be..333da8b 100644
+--- a/kernel/nvidia-uvm/uvm_mmu.c
++++ a/kernel/nvidia-uvm/uvm_mmu.c
+@@ -32,7 +32,7 @@
+ #include "uvm_push.h"
+ #include "uvm_mem.h"
+ #include "uvm_va_space.h"
+-#include <stdarg.h>
++#include "nv_stdarg.h"
+
+
+
+diff --git a/kernel/nvidia/export_nvswitch.h a/kernel/nvidia/export_nvswitch.h
+index e45666c..618a3e7 100644
+--- a/kernel/nvidia/export_nvswitch.h
++++ a/kernel/nvidia/export_nvswitch.h
+@@ -28,7 +28,7 @@
+ extern "C" {
+ #endif
+
+-#include <stdarg.h>
++#include "nv_stdarg.h"
+ #include "nvlink_common.h"
+ #include "ioctl_common_nvswitch.h"
+
diff --git a/nvidia.rules b/nvidia.rules
new file mode 100644
index 000000000000..557f69c21351
--- /dev/null
+++ b/nvidia.rules
@@ -0,0 +1,6 @@
+# Make sure device nodes are present even when the DDX is not started for the Wayland/EGLStream case
+KERNEL=="nvidia", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidiactl c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'"
+KERNEL=="nvidia", RUN+="/usr/bin/bash -c 'for i in $$(cat /proc/driver/nvidia/gpus/*/information | grep Minor | cut -d \ -f 4); do /usr/bin/mknod -Z -m 666 /dev/nvidia$${i} c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) $${i}; done'"
+KERNEL=="nvidia_modeset", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-modeset c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254'"
+KERNEL=="nvidia_uvm", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
+KERNEL=="nvidia_uvm", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 1'" \ No newline at end of file