summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO8
-rw-r--r--0001-nvidia-beta-dkms-change-dkms-conf.patch27
-rw-r--r--0002-nvidia-beta-dkms-linux-rt-gift.patch12
-rw-r--r--FS62142.patch12
-rw-r--r--PKGBUILD53
5 files changed, 81 insertions, 31 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 656ff9eaa7a6..1120c64d6d01 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = nvidia-beta-dkms
pkgdesc = NVIDIA driver sources for linux (beta version)
pkgver = 430.14
- pkgrel = 1
+ pkgrel = 2
url = https://www.nvidia.com/
arch = x86_64
license = custom
@@ -16,7 +16,13 @@ pkgbase = nvidia-beta-dkms
provides = nvidia-beta=430.14
conflicts = nvidia
source = https://us.download.nvidia.com/XFree86/Linux-x86_64/430.14/NVIDIA-Linux-x86_64-430.14-no-compat32.run
+ source = FS62142.patch
+ source = 0001-nvidia-beta-dkms-change-dkms-conf.patch
+ source = 0002-nvidia-beta-dkms-linux-rt-gift.patch
sha256sums = 0f583a277b1731cb8327510b75dba9cf7adf5c781247e4f48bcc9f358253278f
+ sha256sums = c961006882afb691410c017c239e2c2ef61badb88f15735d37112b513ef0a99d
+ sha256sums = 066045f1e5bd25f5488ab37c2ad13e12c7827d2439569ef5c26826c92dfa4250
+ sha256sums = 25e29ee166552523366278d94ba69a7895cd50321cf402a9f69598b16a9e2827
pkgname = nvidia-beta-dkms
diff --git a/0001-nvidia-beta-dkms-change-dkms-conf.patch b/0001-nvidia-beta-dkms-change-dkms-conf.patch
new file mode 100644
index 000000000000..17174bdebbcf
--- /dev/null
+++ b/0001-nvidia-beta-dkms-change-dkms-conf.patch
@@ -0,0 +1,27 @@
+diff -Naurp a/kernel/dkms.conf b/kernel/dkms.conf
+--- a/kernel/dkms.conf 2019-04-02 04:06:42.000000000 +0000
++++ b/kernel/dkms.conf 2019-06-08 20:12:02.000000000 +0000
+@@ -1,12 +1,20 @@
+ PACKAGE_NAME="nvidia"
+-PACKAGE_VERSION="__VERSION_STRING"
++PACKAGE_VERSION="430.14"
+ AUTOINSTALL="yes"
+
+ # By default, DKMS will add KERNELRELEASE to the make command line; however,
+ # this will cause the kernel module build to infer that it was invoked via
+ # Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting
+ # the 'make' command name to suppress this behavior.
+-MAKE[0]="'make' -j__JOBS NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules"
++MAKE[0]="'make' -j`nproc` NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules"
+
+ # The list of kernel modules will be generated by nvidia-installer at runtime.
+-__DKMS_MODULES
++BUILT_MODULE_NAME[0]="nvidia"
++DEST_MODULE_LOCATION[0]="/kernel/drivers/video"
++BUILT_MODULE_NAME[1]="nvidia-uvm"
++DEST_MODULE_LOCATION[1]="/kernel/drivers/video"
++BUILT_MODULE_NAME[2]="nvidia-modeset"
++DEST_MODULE_LOCATION[2]="/kernel/drivers/video"
++BUILT_MODULE_NAME[3]="nvidia-drm"
++DEST_MODULE_LOCATION[3]="/kernel/drivers/video"
++
diff --git a/0002-nvidia-beta-dkms-linux-rt-gift.patch b/0002-nvidia-beta-dkms-linux-rt-gift.patch
new file mode 100644
index 000000000000..55cca8a03665
--- /dev/null
+++ b/0002-nvidia-beta-dkms-linux-rt-gift.patch
@@ -0,0 +1,12 @@
+diff -Naurp a/kernel/dkms.conf b/kernel/dkms.conf
+--- a/kernel/dkms.conf 2019-06-08 20:12:02.000000000 +0000
++++ b/kernel/dkms.conf 2019-06-08 20:14:45.000000000 +0000
+@@ -6,7 +6,7 @@ AUTOINSTALL="yes"
+ # this will cause the kernel module build to infer that it was invoked via
+ # Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting
+ # the 'make' command name to suppress this behavior.
+-MAKE[0]="'make' -j`nproc` NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules"
++MAKE[0]="'make' -j`nproc` IGNORE_PREEMPT_RT_PRESENCE=1 NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules"
+
+ # The list of kernel modules will be generated by nvidia-installer at runtime.
+ BUILT_MODULE_NAME[0]="nvidia"
diff --git a/FS62142.patch b/FS62142.patch
new file mode 100644
index 000000000000..887f3366723e
--- /dev/null
+++ b/FS62142.patch
@@ -0,0 +1,12 @@
+diff -Naurp a/kernel/nvidia/nv-dma.c b/kernel/nvidia/nv-dma.c
+--- a/kernel/nvidia/nv-dma.c 2019-05-08 01:37:30.000000000 +0000
++++ b/kernel/nvidia/nv-dma.c 2019-06-08 18:33:00.000000000 +0000
+@@ -613,7 +613,7 @@ static NvBool nv_dma_is_map_resource_imp
+ #endif
+ }
+
+- return (ops->map_resource != NULL);
++ return (ops && ops->map_resource);
+ #else
+ return NV_FALSE;
+ #endif
diff --git a/PKGBUILD b/PKGBUILD
index 92d47b7f8223..836e2cebee71 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -10,7 +10,7 @@
pkgname=nvidia-beta-dkms
pkgver=430.14
-pkgrel=1
+pkgrel=2
pkgdesc='NVIDIA driver sources for linux (beta version)'
arch=('x86_64')
url='https://www.nvidia.com/'
@@ -21,48 +21,41 @@ optdepends=('linux-headers: build the module for Arch kernel'
'linux-lts-headers: build the module for LTS Arch kernel')
provides=("nvidia=${pkgver}" "nvidia-dkms=${pkgver}" "nvidia-beta=${pkgver}")
conflicts=('nvidia')
-_srcname="NVIDIA-Linux-${CARCH}-${pkgver}-no-compat32"
-source=("https://us.download.nvidia.com/XFree86/Linux-${CARCH}/${pkgver}/${_srcname}.run")
-sha256sums=('0f583a277b1731cb8327510b75dba9cf7adf5c781247e4f48bcc9f358253278f')
+_pkg="NVIDIA-Linux-${CARCH}-${pkgver}-no-compat32"
+source=("https://us.download.nvidia.com/XFree86/Linux-${CARCH}/${pkgver}/${_pkg}.run"
+ 'FS62142.patch'
+ '0001-nvidia-beta-dkms-change-dkms-conf.patch'
+ '0002-nvidia-beta-dkms-linux-rt-gift.patch')
+sha256sums=('0f583a277b1731cb8327510b75dba9cf7adf5c781247e4f48bcc9f358253278f'
+ 'c961006882afb691410c017c239e2c2ef61badb88f15735d37112b513ef0a99d'
+ '066045f1e5bd25f5488ab37c2ad13e12c7827d2439569ef5c26826c92dfa4250'
+ '25e29ee166552523366278d94ba69a7895cd50321cf402a9f69598b16a9e2827')
prepare() {
# extract the source file
- [ -d "$_srcname" ] && rm -rf "$_srcname"
- printf '%s\n' " -> Self-Extracting ${_srcname}.run..."
- sh "${_srcname}.run" --extract-only
+ [ -d "$_pkg" ] && rm -rf "$_pkg"
+ printf '%s\n' " -> Self-Extracting ${_pkg}.run..."
+ sh "${_pkg}.run" --extract-only
- # update dkms.conf
- cd "${_srcname}/kernel"
- sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf
- sed -i 's/__JOBS/`nproc`/' dkms.conf
- sed -i 's/__DKMS_MODULES//' dkms.conf
- sed -i '$iBUILT_MODULE_NAME[0]="nvidia"\
-DEST_MODULE_LOCATION[0]="/kernel/drivers/video"\
-BUILT_MODULE_NAME[1]="nvidia-uvm"\
-DEST_MODULE_LOCATION[1]="/kernel/drivers/video"\
-BUILT_MODULE_NAME[2]="nvidia-modeset"\
-DEST_MODULE_LOCATION[2]="/kernel/drivers/video"\
-BUILT_MODULE_NAME[3]="nvidia-drm"\
-DEST_MODULE_LOCATION[3]="/kernel/drivers/video"' dkms.conf
-
- # gift for linux-rt guys
- sed -i 's/NV_EXCLUDE_BUILD_MODULES/IGNORE_PREEMPT_RT_PRESENCE=1 NV_EXCLUDE_BUILD_MODULES/' dkms.conf
+ cd "$_pkg"
+ patch -Np1 -i "${srcdir}/0001-nvidia-beta-dkms-change-dkms-conf.patch"
+ patch -Np1 -i "${srcdir}/0002-nvidia-beta-dkms-linux-rt-gift.patch"
+
+ # fix https://bugs.archlinux.org/task/62142
+ patch -Np1 -i "${srcdir}/FS62142.patch"
}
package() {
- cd "${_srcname}/kernel"
+ cd "$_pkg"
- # directories creation
- install -d "${pkgdir}/usr/lib/modprobe.d/"
- install -d "${pkgdir}/usr/src/nvidia-${pkgver}/"
+ mkdir -p "${pkgdir}/usr/src"
# install
- cp -dr --no-preserve='ownership' * "${pkgdir}/usr/src/nvidia-${pkgver}/"
+ cp -dr --no-preserve='ownership' kernel "${pkgdir}/usr/src/nvidia-${pkgver}"
# blacklist nouveau driver
printf '%s\n' 'blacklist nouveau' | install -D -m644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/nvidia.conf"
# license
- cd "${srcdir}/${_srcname}"
- install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -D -m644 "${srcdir}/${_pkg}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}"
}