summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorgraysky2019-10-14 16:08:54 -0400
committergraysky2019-10-14 16:08:54 -0400
commit1f2ee4632fd64310d8a22ef143a70e2cc15af9f2 (patch)
tree9d1218871649f4b28085fa926d18c05f38f25e12
parentca26bcfa5a0d8b91a797686bdf8702f3d195eadc (diff)
downloadaur-1f2ee4632fd64310d8a22ef143a70e2cc15af9f2.tar.gz
Update to 340.107-25
-rw-r--r--.SRCINFO28
-rw-r--r--PKGBUILD88
-rw-r--r--kernel-5.0.patch52
-rw-r--r--kernel-5.1.patch43
4 files changed, 175 insertions, 36 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 858c9179329f..242a5a5672e2 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,23 +1,37 @@
pkgbase = nvidia-340xx-lts
pkgdesc = NVIDIA drivers for linux-lts
pkgver = 340.107
- pkgrel = 24
+ pkgrel = 25
url = https://www.nvidia.com/
arch = x86_64
license = custom
- makedepends = linux-lts>=4.19.46
- makedepends = linux-lts-headers>=4.19.46
makedepends = nvidia-340xx-utils=340.107
- provides = nvidia-340xx
+ makedepends = linux-lts>=4.19.79
+ makedepends = linux-lts-headers>=4.19.79
conflicts = nvidia-lts
options = !strip
source = https://us.download.nvidia.com/XFree86/Linux-x86_64/340.107/NVIDIA-Linux-x86_64-340.107-no-compat32.run
source = kernel-4.11.patch
- sha512sums = 0de6f182d67bd322df7ae04e74c0cde6973c55bfea47a8f2503a29f8a899cd1b801ae4b52d066628df4a4f9c84e5e7547465bdc37d1b87df47af43fdab23466f
- sha512sums = c25d90499e1deb26129a67dd7e953be8c1e31c5770e2b8b64d03af54cf1afec1a52636e74900f8ac468692207ab8a3765a12edd581142c4d2cfd2d6e66ac7ac2
+ source = kernel-5.0.patch
+ source = kernel-5.1.patch
+ sha256sums = 6dc6f183c69c414670d8adef0286a2362eedd6e16ec6dfae811e48ea4a4505dc
+ sha256sums = 5ba7e6d5e502882c3534d1d8578f7fd29fdf3d2aeb49206efa7b3514a7e3e821
+ sha256sums = 236a1d1dc9adc1cafec828f0650d5a15f1f6d0fa27905dab58ca072a46f159fa
+ sha256sums = 2b0e69814bfaee6b227bbf15d89d056ab27d84bd325248614e27cb5fa33a63a1
pkgname = nvidia-340xx-lts
- depends = linux-lts>=4.19.46
+ pkgdesc = NVIDIA drivers for linux-lts, 340xx legacy branch.
+ depends = linux-lts>=4.19.72
depends = nvidia-340xx-utils=340.107
depends = libgl
+pkgname = nvidia-340xx-lts-dkms
+ pkgdesc = NVIDIA driver sources for linux-lts, 340xx legacy branch
+ depends = dkms
+ depends = nvidia-340xx-utils=340.107
+ depends = libgl
+ optdepends = linux-lts-headers: Build the module for lts kernel
+ provides = nvidia-340xx=340.107
+ conflicts = nvidia-lts
+ conflicts = nvidia-340xx
+
diff --git a/PKGBUILD b/PKGBUILD
index c95bf4a25515..03f1e1dde200 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,51 +1,81 @@
-# Maintainer: Giancarlo Razzolini <grazzolini@archlinux.org>
+# Maintainer: Jerry Xiao <aur@mail.jerryxiao.cc>
+# Maintainer: graysky <graysky AT archlinux DOT us>
+# Contributor: Giancarlo Razzolini <grazzolini@archlinux.org>
# Contributor: Eric BĂ©langer <eric@archlinux.org>
-pkgname=nvidia-340xx-lts
+pkgbase=nvidia-340xx-lts
+pkgname=(nvidia-340xx-lts nvidia-340xx-lts-dkms)
pkgver=340.107
-_extramodules=extramodules-4.19-lts
-pkgrel=24
+pkgrel=25
pkgdesc="NVIDIA drivers for linux-lts"
arch=('x86_64')
url="https://www.nvidia.com/"
-makedepends=('linux-lts>=4.19.46' 'linux-lts-headers>=4.19.46' "nvidia-340xx-utils=$pkgver")
-provides=('nvidia-340xx')
+makedepends=("nvidia-340xx-utils=${pkgver}" 'linux-lts>=4.19.79' 'linux-lts-headers>=4.19.79')
conflicts=('nvidia-lts')
license=('custom')
options=(!strip)
source=("https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run"
- 'kernel-4.11.patch')
-sha512sums=('0de6f182d67bd322df7ae04e74c0cde6973c55bfea47a8f2503a29f8a899cd1b801ae4b52d066628df4a4f9c84e5e7547465bdc37d1b87df47af43fdab23466f'
- 'c25d90499e1deb26129a67dd7e953be8c1e31c5770e2b8b64d03af54cf1afec1a52636e74900f8ac468692207ab8a3765a12edd581142c4d2cfd2d6e66ac7ac2')
+ 'kernel-4.11.patch' 'kernel-5.0.patch' 'kernel-5.1.patch'
+)
+sha256sums=('6dc6f183c69c414670d8adef0286a2362eedd6e16ec6dfae811e48ea4a4505dc'
+ '5ba7e6d5e502882c3534d1d8578f7fd29fdf3d2aeb49206efa7b3514a7e3e821'
+ '236a1d1dc9adc1cafec828f0650d5a15f1f6d0fa27905dab58ca072a46f159fa'
+ '2b0e69814bfaee6b227bbf15d89d056ab27d84bd325248614e27cb5fa33a63a1')
+_pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
-[[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
+# default is 'linux' substitute custom name here
+_kernelname=linux-lts
+_kernver="$(</usr/src/$_kernelname/version)"
+_extradir="/usr/lib/modules/$_kernver/extramodules"
prepare() {
- sh ${_pkg}.run --extract-only
- cd "${_pkg}"
- # patches here
- patch -Np0 < "${srcdir}/kernel-4.11.patch"
+ sh "${_pkg}.run" --extract-only
+ cd "${_pkg}"
+
+ # patches here
+ patch -Np0 < "${srcdir}/kernel-4.11.patch"
+ patch -Np0 < "${srcdir}/kernel-5.0.patch"
+ patch -Np0 < "${srcdir}/kernel-5.1.patch"
+
+ cp -a kernel kernel-dkms
}
build() {
- _kernver="$(cat /usr/lib/modules/${_extramodules}/version)"
cd "${_pkg}/kernel"
- make SYSSRC=/usr/lib/modules/${_kernver}/build module
+ make SYSSRC="/usr/src/$_kernelname" module
cd uvm
- make SYSSRC=/usr/lib/modules/${_kernver}/build module
+ make SYSSRC="/usr/src/$_kernelname" module
}
-package() {
- depends=('linux-lts>=4.19.46' "nvidia-340xx-utils=$pkgver" 'libgl')
-
- install -D -m644 "${srcdir}/${_pkg}/kernel/nvidia.ko" \
- "${pkgdir}/usr/lib/modules/${_extramodules}/kernel/drivers/video/nvidia.ko"
- install -D -m644 "${srcdir}/${_pkg}/kernel/uvm/nvidia-uvm.ko" \
- "${pkgdir}/usr/lib/modules/${_extramodules}/kernel/drivers/video/nvidia-uvm.ko"
- gzip "${pkgdir}/usr/lib/modules/${_extramodules}/kernel/drivers/video/"*.ko
- install -d -m755 "${pkgdir}/usr/lib/modprobe.d"
- echo "blacklist nouveau" >> "${pkgdir}/usr/lib/modprobe.d/nvidia-lts.conf"
- echo "blacklist nvidiafb" >> "${pkgdir}/usr/lib/modprobe.d/nvidia-lts.conf"
- install -D -m644 "${srcdir}/${_pkg}/LICENSE" "${pkgdir}/usr/share/licenses/nvidia-lts/LICENSE"
+package_nvidia-340xx-lts() {
+ pkgdesc="NVIDIA drivers for linux-lts, 340xx legacy branch."
+ depends=('linux-lts>=4.19.72' "nvidia-340xx-utils=$pkgver" 'libgl')
+
+ install -Dt "${pkgdir}${_extradir}" -m644 \
+ "${srcdir}/${_pkg}/kernel"/{nvidia,uvm/nvidia-uvm}.ko
+
+ find "${pkgdir}" -name '*.ko' -exec gzip -n {} +
+
+ echo "blacklist nouveau" |
+ install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/nvidia-340xx-ck.conf"
}
+
+package_nvidia-340xx-lts-dkms() {
+ pkgdesc="NVIDIA driver sources for linux-lts, 340xx legacy branch"
+ depends=('dkms' "nvidia-340xx-utils=$pkgver" 'libgl')
+ optdepends=('linux-lts-headers: Build the module for lts kernel')
+ provides=("nvidia-340xx=$pkgver")
+ conflicts+=('nvidia-340xx')
+
+ cd "${_pkg}"
+
+ install -dm 755 "${pkgdir}"/usr/src
+ cp -dr --no-preserve='ownership' kernel-dkms "${pkgdir}/usr/src/nvidia-${pkgver}"
+ cat "${pkgdir}"/usr/src/nvidia-${pkgver}/uvm/dkms.conf.fragment >> "${pkgdir}"/usr/src/nvidia-${pkgver}/dkms.conf
+
+ echo "blacklist nouveau" |
+ install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/kernel-5.0.patch b/kernel-5.0.patch
new file mode 100644
index 000000000000..4786b69b6265
--- /dev/null
+++ b/kernel-5.0.patch
@@ -0,0 +1,52 @@
+--- kernel/nv-drm.c 2018-05-25 04:16:20.000000000 +0000
++++ kernel/nv-drm.c 2019-03-04 20:57:40.065280734 +0000
+@@ -252,7 +252,11 @@
+ goto done;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0)
+ drm_gem_object_unreference_unlocked(&nv_obj->base);
++#else
++ drm_gem_object_put_unlocked(&nv_obj->base);
++#endif
+
+ status = RM_OK;
+
+--- kernel/os-interface.c 2018-05-25 04:16:20.000000000 +0000
++++ kernel/os-interface.c 2019-03-04 21:03:03.815854982 +0000
+@@ -14,6 +14,16 @@
+ #include "os-interface.h"
+ #include "nv-linux.h"
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
++static inline void do_gettimeofday(struct timeval *tv)
++{
++ struct timespec64 now;
++ ktime_get_real_ts64(&now);
++ tv->tv_sec = now.tv_sec;
++ tv->tv_usec = now.tv_nsec/1000;
++}
++#endif
++
+ RM_STATUS NV_API_CALL os_disable_console_access(void)
+ {
+ NV_ACQUIRE_CONSOLE_SEM();
+--- kernel/uvm/nvidia_uvm_lite.c 2019-03-04 20:57:25.815255511 +0000
++++ kernel/uvm/nvidia_uvm_lite.c 2019-03-04 21:04:25.239333050 +0000
+@@ -30,6 +30,16 @@
+ #include "nvidia_uvm_lite_counters.h"
+ #include "ctrl2080mc.h"
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
++static inline void do_gettimeofday(struct timeval *tv)
++{
++ struct timespec64 now;
++ ktime_get_real_ts64(&now);
++ tv->tv_sec = now.tv_sec;
++ tv->tv_usec = now.tv_nsec/1000;
++}
++#endif
++
+ //
+ // nvidia_uvm_lite.c
+ // This file contains code that is specific to the UVM-Lite mode of operation.
diff --git a/kernel-5.1.patch b/kernel-5.1.patch
new file mode 100644
index 000000000000..19e27a86f13a
--- /dev/null
+++ b/kernel-5.1.patch
@@ -0,0 +1,43 @@
+diff --git kernel/uvm/nvidia_uvm_lite.c kernel/uvm/nvidia_uvm_lite.c
+index 65b9a4d..f5ea5d7 100644
+--- kernel/uvm/nvidia_uvm_lite.c
++++ kernel/uvm/nvidia_uvm_lite.c
+@@ -830,8 +830,10 @@ done:
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+ int _fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+-#else
+-int _fault(struct vm_fault *vmf)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
++int _fault(struct vm_fault *vmf)
++#else
++vm_fault_t _fault(struct vm_fault *vmf)
+ #endif
+ {
+ #if defined(NV_VM_FAULT_HAS_ADDRESS)
+@@ -886,8 +888,10 @@ static struct vm_operations_struct uvmlite_vma_ops =
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+ int _sigbus_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+-#else
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
+ int _sigbus_fault(struct vm_fault *vmf)
++#else
++vm_fault_t _sigbus_fault(struct vm_fault *vmf)
+ #endif
+ {
+ vmf->page = NULL;
+diff --git kernel/nv-drm.c kernel/nv-drm.c
+index 122ba7d..1be5733 100644
+--- kernel/nv-drm.c
++++ kernel/nv-drm.c
+@@ -146,7 +146,7 @@ static const struct file_operations nv_drm_fops = {
+ };
+
+ static struct drm_driver nv_drm_driver = {
+-#if defined(DRIVER_LEGACY)
++#if defined(DRIVER_LEGACY) || LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)
+ .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_LEGACY,
+ #else
+ .driver_features = DRIVER_GEM | DRIVER_PRIME,
+