Date: Sunday, November 19, 2017 @ 00:02:48 Author: heftig Revision: 310412
304.137-6 Added: nvidia-304xx/trunk/kernel-4.14.patch Modified: nvidia-304xx/trunk/PKGBUILD Deleted: nvidia-304xx/trunk/nvidia-304xx.install ----------------------+ PKGBUILD | 58 ++++++++++++++++++++++++------------------------- kernel-4.14.patch | 29 ++++++++++++++++++++++++ nvidia-304xx.install | 13 ---------- 3 files changed, 58 insertions(+), 42 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2017-11-18 23:55:38 UTC (rev 310411) +++ PKGBUILD 2017-11-19 00:02:48 UTC (rev 310412) @@ -5,31 +5,32 @@ pkgbase=nvidia-304xx pkgname=(nvidia-304xx nvidia-304xx-dkms) pkgver=304.137 -_extramodules=extramodules-4.13-ARCH -pkgrel=5 +_extramodules=extramodules-4.14-ARCH +pkgrel=6 +pkgdesc="NVIDIA drivers for linux, 304xx legacy branch" arch=('x86_64') url="http://www.nvidia.com/" -makedepends=('linux' 'linux-headers>=4.13' 'linux-headers<4.14') +makedepends=("nvidia-304xx-utils=${pkgver}" 'linux' 'linux-headers>=4.14' 'linux-headers<4.15') conflicts=('nvidia') license=('custom') options=('!strip') -source=('disable-mtrr.patch') -source_i686+=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run") -source_x86_64+=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run") -sha512sums=('54e8825e523f11706890e09e476498f3a30f75ce4e350ff2ff8a1e1c3af574d9ccfb8903543766b6863d94cdfbf46e68cd3d33380867dd976cafc8dd2dd78774') -sha512sums_i686=('021c5a88d50489aa0a1c7eac14259e23542b93578ae339995a2e38b786d06d239968c07933cab3fb78a922cffc7e213d6fa3fe07e34065a9c7f03e24f8729370') -sha512sums_x86_64=('4ab648647e4f3e2c352b2eab6454c264fe4728d8eb1264fafee2a4ab1a4ce59516abcf8490044d31e35309ea951e564cc217e13f7139a48bbf650a4238c5b87c') +source=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run" + 'disable-mtrr.patch' 'kernel-4.14.patch') +sha512sums=('4ab648647e4f3e2c352b2eab6454c264fe4728d8eb1264fafee2a4ab1a4ce59516abcf8490044d31e35309ea951e564cc217e13f7139a48bbf650a4238c5b87c' + '54e8825e523f11706890e09e476498f3a30f75ce4e350ff2ff8a1e1c3af574d9ccfb8903543766b6863d94cdfbf46e68cd3d33380867dd976cafc8dd2dd78774' + 'ccaa40e085d985ec4280003e36dd06e60958ed1408867379fd21a68a18d48aa4be311bf9ad1e804f7a7245c90be98e919d2ec30f45d290f1cdb19c866bdb8a8d') -[[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}" -[[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32" +_pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32" prepare() { - cd "${srcdir}" sh "${_pkg}.run" --extract-only cd "${_pkg}" + # patches here + patch -Np1 --no-backup-if-mismatch < "${srcdir}/kernel-4.14.patch" + # FS#47092 - #(cd kernel; patch -p1 --no-backup-if-mismatch -i "$srcdir"/disable-mtrr.patch) + #patch -d kernel -Np1 --no-backup-if-mismatch < "${srcdir}/disable-mtrr.patch" cp -a kernel kernel-dkms } @@ -36,36 +37,35 @@ build() { _kernver="$(cat /usr/lib/modules/${_extramodules}/version)" - cd "${_pkg}/kernel" + cd "${_pkg}"/kernel make SYSSRC=/usr/lib/modules/"${_kernver}/build" module } package_nvidia-304xx() { pkgdesc="NVIDIA drivers for linux, 304xx legacy branch" - depends=('linux>=4.13' 'linux<4.14' 'libgl' "nvidia-304xx-utils=${pkgver}") - conflicts+=('nvidia-304xx-dkms') - install=nvidia-304xx.install + depends=('linux>=4.14' 'linux<4.15' "nvidia-304xx-utils=${pkgver}" 'libgl') - install -D -m644 "${srcdir}/${_pkg}/kernel/nvidia.ko" \ - "${pkgdir}/usr/lib/modules/${_extramodules}/nvidia.ko" - install -d -m755 "${pkgdir}/usr/lib/modprobe.d" - echo "blacklist nouveau" >> "${pkgdir}/usr/lib/modprobe.d/nvidia.conf" - sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "${startdir}/${pkgname}.install" - gzip "${pkgdir}/usr/lib/modules/${_extramodules}/nvidia.ko" + install -Dt "${pkgdir}/usr/lib/modules/${_extramodules}" -m644 \ + "${srcdir}/${_pkg}/kernel"/nvidia.ko - # the license file is part of nvidia-304xx-utils - the module depends on it, so we don't ship it another time. + find "${pkgdir}" -name '*.ko' -exec gzip -n {} + + + echo "blacklist nouveau" | + install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/nvidia.conf" } package_nvidia-304xx-dkms() { pkgdesc="NVIDIA driver sources for linux, 304xx legacy branch" - depends=('dkms' "nvidia-304xx-utils=$pkgver") + depends=('dkms' "nvidia-304xx-utils=$pkgver" 'libgl') optdepends=('linux-headers: Build the module for Arch kernel' 'linux-lts-headers: Build the module for LTS Arch kernel') conflicts+=('nvidia-304xx') cd ${_pkg} - make -C kernel clean - install -dm 755 "${pkgdir}"/usr/{lib/modprobe.d,src} - cp -dr --no-preserve='ownership' kernel-dkms "${pkgdir}"/usr/src/nvidia-${pkgver} - echo 'blacklist nouveau' > "${pkgdir}"/usr/lib/modprobe.d/nvidia.conf + + 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/nvidia.conf" } Added: kernel-4.14.patch =================================================================== --- kernel-4.14.patch (rev 0) +++ kernel-4.14.patch 2017-11-19 00:02:48 UTC (rev 310412) @@ -0,0 +1,29 @@ +diff -u -r NVIDIA-Linux-x86_64-340.104-no-compat32/kernel/nv-drm.c NVIDIA-Linux-x86_64-340.104-no-compat32-kernel4.14/kernel/nv-drm.c +--- NVIDIA-Linux-x86_64-340.104-no-compat32/kernel/nv-drm.c 2017-09-15 01:16:51.000000000 +0200 ++++ NVIDIA-Linux-x86_64-340.104-no-compat32-kernel4.14/kernel/nv-drm.c 2017-11-19 00:51:45.006654148 +0100 +@@ -173,8 +173,12 @@ + { + int ret = 0; + #if defined(NV_DRM_AVAILABLE) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) ++ ret = drm_legacy_pci_init(&nv_drm_driver, pci_driver); ++#else + ret = drm_pci_init(&nv_drm_driver, pci_driver); + #endif ++#endif + return ret; + } + +@@ -183,8 +187,12 @@ + ) + { + #if defined(NV_DRM_AVAILABLE) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) ++ drm_legacy_pci_exit(&nv_drm_driver, pci_driver); ++#else + drm_pci_exit(&nv_drm_driver, pci_driver); + #endif ++#endif + } + + RM_STATUS NV_API_CALL nv_alloc_os_descriptor_handle( Deleted: nvidia-304xx.install =================================================================== --- nvidia-304xx.install 2017-11-18 23:55:38 UTC (rev 310411) +++ nvidia-304xx.install 2017-11-19 00:02:48 UTC (rev 310412) @@ -1,13 +0,0 @@ -post_install() { - EXTRAMODULES='extramodules-4.13-ARCH' - depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) - echo 'In order to use nvidia module, reboot the system.' -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -}