diff options
-rw-r--r-- | .SRCINFO | 35 | ||||
-rw-r--r-- | PKGBUILD | 84 | ||||
-rw-r--r-- | kernel-5.1.patch | 130 |
3 files changed, 82 insertions, 167 deletions
@@ -1,25 +1,34 @@ pkgbase = nvidia-390xx-ck pkgdesc = NVIDIA drivers for linux-ck, 390xx legacy branch. - pkgver = 390.116 - pkgrel = 30 - url = http://www.nvidia.com/ + pkgver = 390.129 + pkgrel = 11 + url = https://www.nvidia.com/ arch = x86_64 license = custom - makedepends = nvidia-390xx-utils=390.116 + makedepends = nvidia-390xx-utils=390.129 makedepends = libglvnd + makedepends = linux-ck makedepends = linux-ck-headers - depends = linux-ck - depends = libglvnd - depends = nvidia-390xx-utils=390.116 - conflicts = nvidia-340xx-ck - conflicts = nvidia-ck + conflicts = nvidia options = !strip - source = http://us.download.nvidia.com/XFree86/Linux-x86_64/390.116/NVIDIA-Linux-x86_64-390.116-no-compat32.run + source = https://us.download.nvidia.com/XFree86/Linux-x86_64/390.129/NVIDIA-Linux-x86_64-390.129-no-compat32.run source = kernel-4.16.patch - source = kernel-5.1.patch - sha256sums = de85a2eea39ca16e25645b345259b01fbe858b833286b7e6785afa273009ef6f + sha256sums = a7925a327cab828d1eb9e74f8943623c5dbc9a5e376a4c0184065d4a319696c1 sha256sums = 622ac792ec200b2239cb663c0010392118b78c9904973d82cd261165c16d6385 - sha256sums = d92899d4f7a40e2c3cad92d067f2f53c3a18c49b34e62e707a93b125aa37640f pkgname = nvidia-390xx-ck + pkgdesc = NVIDIA drivers for linux-ck, 390xx legacy branch. + depends = linux-ck + depends = nvidia-390xx-utils=390.129 + depends = libglvnd + +pkgname = nvidia-390xx-ck-dkms + pkgdesc = NVIDIA driver sources for linux-ck, 390xx legacy branch + depends = dkms + depends = nvidia-390xx-utils=390.129 + depends = libglvnd + optdepends = linux-ck-headers: Build the module for ck kernel + provides = nvidia-390xx=390.129 + conflicts = nvidia + conflicts = nvidia-390xx @@ -2,46 +2,64 @@ # Contributor: Sven-Hendrik Haase <sh@lutzhaase.com> # Contrubutor: Thomas Baechler <thomas@archlinux.org> -pkgname=nvidia-390xx-ck -pkgver=390.116 -pkgrel=30 -_extramodules=extramodules-ck -_pkgdesc="NVIDIA drivers for linux-ck, 390xx legacy branch." -pkgdesc="$_pkgdesc" +pkgbase=nvidia-390xx-ck +pkgname=(nvidia-390xx-ck nvidia-390xx-ck-dkms) +pkgver=390.129 +pkgrel=11 +pkgdesc="NVIDIA drivers for linux-ck, 390xx legacy branch." arch=('x86_64') -url="http://www.nvidia.com/" -makedepends=("nvidia-390xx-utils=${pkgver}" 'libglvnd' 'linux-ck-headers') -depends=('linux-ck' 'libglvnd' "nvidia-390xx-utils=${pkgver}") -conflicts=('nvidia-340xx-ck' 'nvidia-ck') -#groups=('ck-generic') -#replaces=() +url="https://www.nvidia.com/" +makedepends=("nvidia-390xx-utils=${pkgver}" 'libglvnd' 'linux-ck' 'linux-ck-headers') +conflicts=('nvidia') license=('custom') options=('!strip') -source=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run" -'kernel-4.16.patch' 'kernel-5.1.patch') -sha256sums=('de85a2eea39ca16e25645b345259b01fbe858b833286b7e6785afa273009ef6f' - '622ac792ec200b2239cb663c0010392118b78c9904973d82cd261165c16d6385' - 'd92899d4f7a40e2c3cad92d067f2f53c3a18c49b34e62e707a93b125aa37640f') - _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32" +source=("https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run" + 'kernel-4.16.patch') +sha256sums=('a7925a327cab828d1eb9e74f8943623c5dbc9a5e376a4c0184065d4a319696c1' + '622ac792ec200b2239cb663c0010392118b78c9904973d82cd261165c16d6385') + +# default is 'linux' substitute custom name here +_kernelname=linux-ck +_kernver="$(</usr/src/$_kernelname/version)" +_extradir="/usr/lib/modules/$_kernver/extramodules" prepare() { sh "${_pkg}.run" --extract-only cd "${_pkg}" - # patches here + # Restore phys_to_dma support (still needed for 396.18) + # https://bugs.archlinux.org/task/58074 patch -Np1 -i ../kernel-4.16.patch - patch -Np1 -i ../kernel-5.1.patch + + cp -a kernel kernel-dkms + cd kernel-dkms + 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 } 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 } -package() { - install -Dt "${pkgdir}/usr/lib/modules/${_extramodules}" -m644 \ +package_nvidia-390xx-ck() { + pkgdesc="NVIDIA drivers for linux-ck, 390xx legacy branch." + depends=('linux-ck' "nvidia-390xx-utils=${pkgver}" 'libglvnd') + + install -Dt "${pkgdir}${_extradir}" -m644 \ "${srcdir}/${_pkg}/kernel"/nvidia{,-modeset,-drm,-uvm}.ko find "${pkgdir}" -name '*.ko' -exec gzip -n {} + @@ -52,4 +70,22 @@ package() { install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 "${srcdir}/${_pkg}/LICENSE" } +package_nvidia-390xx-ck-dkms() { + pkgdesc="NVIDIA driver sources for linux-ck, 390xx legacy branch" + depends=('dkms' "nvidia-390xx-utils=$pkgver" 'libglvnd') + optdepends=('linux-ck-headers: Build the module for ck kernel') + provides=("nvidia-390xx=$pkgver") + conflicts+=('nvidia-390xx') + + cd "${_pkg}" + + install -dm 755 "${pkgdir}"/usr/src + cp -dr --no-preserve='ownership' kernel-dkms "${pkgdir}/usr/src/nvidia-${pkgver}" + + echo "blacklist nouveau" | + install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf" + + install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 "${srcdir}/${_pkg}/LICENSE" +} + # vim:set ts=2 sw=2 et: diff --git a/kernel-5.1.patch b/kernel-5.1.patch deleted file mode 100644 index 172ff48e9b96..000000000000 --- a/kernel-5.1.patch +++ /dev/null @@ -1,130 +0,0 @@ -diff --git a/kernel/common/inc/nv-list-helpers.h b/kernel/common/inc/nv-list-helpers.h -index 0aed851..d6304c9 100644 ---- a/kernel/common/inc/nv-list-helpers.h -+++ b/kernel/common/inc/nv-list-helpers.h -@@ -26,6 +26,8 @@ - #include <linux/list.h> - #include "conftest.h" - -+#include <linux/version.h> -+ - #if !defined (list_for_each) - #define list_for_each(pos, head) \ - for (pos = (head)->next; pos != (head); pos = (pos)->next) -@@ -91,10 +93,12 @@ - list_entry((pos)->member.next, typeof(*(pos)), member) - #endif - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) - static inline int list_is_first(const struct list_head *list, - const struct list_head *head) - { - return list->prev == head; - } -+#endif - - #endif // __NV_LIST_HELPERS_H__ -diff --git a/kernel/nvidia-drm/nvidia-drm-connector.c b/kernel/nvidia-drm/nvidia-drm-connector.c -index 24631c0..ba1497c 100644 ---- a/kernel/nvidia-drm/nvidia-drm-connector.c -+++ b/kernel/nvidia-drm/nvidia-drm-connector.c -@@ -30,7 +30,12 @@ - #include "nvidia-drm-utils.h" - #include "nvidia-drm-encoder.h" - -+#include <linux/version.h> -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) - #include <drm/drm_crtc_helper.h> -+#else -+#include <drm/drm_probe_helper.h> -+#endif - - #include <drm/drm_atomic.h> - #include <drm/drm_atomic_helper.h> -diff --git a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c -index 1c2db68..d524d51 100644 ---- a/kernel/nvidia-drm/nvidia-drm-drv.c -+++ b/kernel/nvidia-drm/nvidia-drm-drv.c -@@ -41,7 +41,12 @@ - - #include <drm/drmP.h> - -+#include <linux/version.h> -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) - #include <drm/drm_crtc_helper.h> -+#else -+#include <drm/drm_probe_helper.h> -+#endif - - #if defined(NV_DRM_DRM_GEM_H_PRESENT) - #include <drm/drm_gem.h> -diff --git a/kernel/nvidia-drm/nvidia-drm-encoder.c b/kernel/nvidia-drm/nvidia-drm-encoder.c -index f66bbd7..df38042 100644 ---- a/kernel/nvidia-drm/nvidia-drm-encoder.c -+++ b/kernel/nvidia-drm/nvidia-drm-encoder.c -@@ -31,7 +31,12 @@ - #include "nvidia-drm-crtc.h" - #include "nvidia-drm-helper.h" - -+#include <linux/version.h> -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) - #include <drm/drm_crtc_helper.h> -+#else -+#include <drm/drm_probe_helper.h> -+#endif - - #include <drm/drm_atomic.h> - #include <drm/drm_atomic_helper.h> -diff --git a/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c b/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c -index 8636eff..fd0c8da 100644 ---- a/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c -+++ b/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c -@@ -29,6 +29,8 @@ - - #include "nv-mm.h" - -+#include <linux/version.h> -+ - static void __nv_drm_gem_nvkms_memory_free(struct nv_drm_gem_object *nv_gem) - { - struct nv_drm_device *nv_dev = nv_gem->nv_dev; -@@ -268,7 +270,11 @@ static int __nv_drm_vma_fault(struct vm_area_struct *vma, - */ - - #if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) - static int nv_drm_vma_fault(struct vm_fault *vmf) -+#else -+static vm_fault_t nv_drm_vma_fault(struct vm_fault *vmf) -+#endif - { - return __nv_drm_vma_fault(vmf->vma, vmf); - } -diff --git a/kernel/nvidia-uvm/uvm8.c b/kernel/nvidia-uvm/uvm8.c -index e00923d..2e01e3c 100644 ---- a/kernel/nvidia-uvm/uvm8.c -+++ b/kernel/nvidia-uvm/uvm8.c -@@ -172,7 +172,11 @@ static int uvm_vm_fault_sigbus(struct vm_area_struct *vma, struct vm_fault *vmf) - return VM_FAULT_SIGBUS; - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) - static int uvm_vm_fault_sigbus_wrapper(struct vm_fault *vmf) -+#else -+static vm_fault_t uvm_vm_fault_sigbus_wrapper(struct vm_fault *vmf) -+#endif - { - #if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG) - return uvm_vm_fault_sigbus(vmf->vma, vmf); -@@ -507,7 +511,11 @@ convert_error: - } - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) - static int uvm_vm_fault_wrapper(struct vm_fault *vmf) -+#else -+static vm_fault_t uvm_vm_fault_wrapper(struct vm_fault *vmf) -+#endif - { - #if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG) - return uvm_vm_fault(vmf->vma, vmf); |