diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 76 |
1 files changed, 43 insertions, 33 deletions
@@ -1,14 +1,14 @@ # $Id$ -# Maintainer: jcstryker <inbox at jasonstryker dot com> +# Maintainer: jcstryker <public at jasonstryker dot com> # Contributor: Sven-Hendrik Haase <sh@lutzhaase.com> # Contributor: Felix Yan <felixonmars@archlinux.org> # Contributor: Thomas Baechler <thomas@archlinux.org> # Contributor: James Rayner <iphitus@gmail.com> +# Contributor: Alex Luberg <alex@luberg.me> pkgbase=nvidia-vulkan pkgname=('nvidia-vulkan' 'nvidia-vulkan-dkms' 'nvidia-vulkan-utils' 'opencl-nvidia-vulkan' 'lib32-nvidia-vulkan-utils' 'lib32-opencl-nvidia-vulkan') -pkgver=418.52.18 -_extramodules=extramodules-ARCH +pkgver=535.43.09 pkgrel=1 pkgdesc="NVIDIA drivers for linux (vulkan developer branch)" arch=('x86_64') @@ -17,12 +17,14 @@ makedepends=('libglvnd' 'linux' 'linux-headers') license=('custom') options=('!strip') _pkg="NVIDIA-Linux-x86_64-${pkgver}" -source=("${_pkg}.run::https://developer.nvidia.com/vulkan-beta-4185218-linux" +source=("${_pkg}.run::https://developer.nvidia.com/downloads/vulkan-beta-${pkgver//.}-linux" 'nvidia-drm-outputclass.conf' - 'nvidia-vulkan-utils.sysusers') -sha512sums=('04d17f39321adb4b901e5ebfc04467c0474996c73c908de6dd46cfe4184bc183a53907ddcb972b34302b74bb4b3442b682d56fae2577e373517aaf0b8a55e6fe' - 'c49d246a519731bfab9d22afa5c2dd2d366db06d80182738b84881e93cd697c783f16ee04819275c05597bb063451a5d6102fbc562cd078d2a374533a23cea48' - '4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499') + 'nvidia-vulkan-utils.sysusers' + 'nvidia.rules') +sha512sums=('790ad0f39f5f34ba28ee028601d60e28d1e17a8cc0ef64e06e5b3570d661d15404bce7a835e75464023e3b8a8154a9f22de592518016bfc5e137b6d09215f7ba' + 'de7116c09f282a27920a1382df84aa86f559e537664bb30689605177ce37dc5067748acf9afd66a3269a6e323461356592fdfc624c86523bf105ff8fe47d3770' + '4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499' + '68c9ac6444cdb3c637eee4135cf1a5a137a233ab12e682e3dbe5b3db6e704907b2759567e99f13026f1e33d8ccc78f3dad12d471cc2ddf9c3d4370697dc169e9') create_links() { # create soname links @@ -37,10 +39,15 @@ create_links() { prepare() { sh "${_pkg}.run" --extract-only cd "${_pkg}" - bsdtar -xf nvidia-persistenced-init.tar.bz2 - sed -i 's/__NV_VK_ICD__/libGLX_nvidia.so.0/' nvidia_icd.json.template + # Thanks frogs - https://github.com/Frogging-Family/nvidia-all/blob/master/patches + #patch -Np1 -i ../kernel-5.16-std.diff + #patch -Np1 -i ../kernel-5.17.patch + + # Fixing regex pattern for Module.symvers + sed -i "s/${TAB}vmlinux/${TAB}*vmlinux/g" kernel/conftest.sh + sed -i "s/TAB=' '/TAB='\\\t'/g" kernel/conftest.sh sed -i "s/static int nv_drm_vma_fault(struct vm_fault \*vmf)/#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)\nstatic int nv_drm_vma_fault(struct vm_fault \*vmf)\n#else\nstatic vm_fault_t nv_drm_vma_fault(struct vm_fault \*vmf)\n#endif/g" kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c @@ -63,24 +70,24 @@ DEST_MODULE_LOCATION[3]="/kernel/drivers/video"' 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/linux module } package_nvidia-vulkan() { pkgdesc="NVIDIA drivers for linux (vulkan developer branch)" depends=('linux' "nvidia-vulkan-utils=${pkgver}" 'libglvnd') - provides=("nvidia=$pkgver") + provides=("NVIDIA-MODULE" "nvidia=$pkgver") conflicts+=('nvidia') - - install -Dt "${pkgdir}/usr/lib/modules/${_extramodules}" -m644 \ + + _extradir="/usr/lib/modules/$(</usr/src/linux/version)/extramodules" + install -Dt "${pkgdir}${_extradir}" -m644 \ "${srcdir}/${_pkg}/kernel"/nvidia{,-modeset,-drm,-uvm}.ko 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" } @@ -88,9 +95,7 @@ package_nvidia-vulkan() { package_nvidia-vulkan-dkms() { pkgdesc="NVIDIA driver sources for linux (vulkan developer branch)" depends=('dkms' "nvidia-vulkan-utils=${pkgver}" 'libglvnd') - optdepends=('linux-headers: Build the module for Arch kernel' - 'linux-lts-headers: Build the module for LTS Arch kernel') - provides=("nvidia=$pkgver") + provides=("NVIDIA-MODULE" "nvidia=$pkgver") conflicts+=('nvidia') cd ${_pkg} @@ -114,7 +119,6 @@ package_opencl-nvidia-vulkan() { # OpenCL install -D -m644 nvidia.icd "${pkgdir}/etc/OpenCL/vendors/nvidia.icd" - install -D -m755 "libnvidia-compiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-compiler.so.${pkgver}" install -D -m755 "libnvidia-opencl.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-opencl.so.${pkgver}" create_links @@ -160,15 +164,17 @@ package_nvidia-vulkan-utils() { install -D -m755 "libnvidia-glsi.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glsi.so.${pkgver}" # misc - install -D -m755 "libnvidia-ifr.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ifr.so.${pkgver}" install -D -m755 "libnvidia-fbc.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fbc.so.${pkgver}" install -D -m755 "libnvidia-encode.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-encode.so.${pkgver}" install -D -m755 "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cfg.so.${pkgver}" install -D -m755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ml.so.${pkgver}" install -D -m755 "libnvidia-glvkspirv.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glvkspirv.so.${pkgver}" + install -D -m755 "libnvidia-allocator.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-allocator.so.${pkgver}" + # Vulkan ICD - install -D -m644 "nvidia_icd.json.template" "${pkgdir}/usr/share/vulkan/icd.d/nvidia_icd.json" + install -D -m644 "nvidia_icd.json" "${pkgdir}/usr/share/vulkan/icd.d/nvidia_icd.json" + install -D -m644 "nvidia_layers.json" "${pkgdir}/usr/share/vulkan/implicit_layer.d/nvidia_layers.json" # VDPAU install -D -m755 "libvdpau_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/vdpau/libvdpau_nvidia.so.${pkgver}" @@ -183,13 +189,10 @@ package_nvidia-vulkan-utils() { # PTX JIT Compiler (Parallel Thread Execution (PTX) is a pseudo-assembly language for CUDA) install -D -m755 "libnvidia-ptxjitcompiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ptxjitcompiler.so.${pkgver}" - # Fat (multiarchitecture) binary loader - install -D -m755 "libnvidia-fatbinaryloader.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fatbinaryloader.so.${pkgver}" - # raytracing install -D -m755 "libnvoptix.so.${pkgver}" "${pkgdir}/usr/lib/libnvoptix.so.${pkgver}" install -D -m755 "libnvidia-rtcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-rtcore.so.${pkgver}" - install -D -m755 "libnvidia-cbl.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cbl.so.${pkgver}" + #install -D -m755 "libnvidia-cbl.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cbl.so.${pkgver}" # Optical Flow install -D -m755 "libnvidia-opticalflow.so.${pkgver}" -t "${pkgdir}/usr/lib" @@ -247,11 +250,20 @@ package_nvidia-vulkan-utils() { cp -r html "${pkgdir}/usr/share/doc/nvidia/" ln -s nvidia "${pkgdir}/usr/share/doc/nvidia-vulkan-utils" + # new power management support + install -D -m644 systemd/system/nvidia-suspend.service "${pkgdir}/usr/lib/systemd/system/nvidia-suspend.service" + install -D -m644 systemd/system/nvidia-hibernate.service "${pkgdir}/usr/lib/systemd/system/nvidia-hibernate.service" + install -D -m644 systemd/system/nvidia-resume.service "${pkgdir}/usr/lib/systemd/system/nvidia-resume.service" + install -D -m755 systemd/system-sleep/nvidia "${pkgdir}/usr/lib/systemd/system-sleep/nvidia" + install -D -m755 systemd/nvidia-sleep.sh "${pkgdir}/usr/bin/nvidia-sleep.sh" + # distro specific files must be installed in /usr/share/X11/xorg.conf.d install -D -m644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf" 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 } @@ -265,7 +277,6 @@ package_lib32-opencl-nvidia-vulkan() { cd "${_pkg}"/32 # OpenCL - install -D -m755 "libnvidia-compiler.so.${pkgver}" "${pkgdir}/usr/lib32/libnvidia-compiler.so.${pkgver}" install -D -m755 "libnvidia-opencl.so.${pkgver}" "${pkgdir}/usr/lib32/libnvidia-opencl.so.${pkgver}" create_links @@ -297,11 +308,13 @@ package_lib32-nvidia-vulkan-utils() { install -D -m755 "libnvidia-glsi.so.${pkgver}" "${pkgdir}/usr/lib32/libnvidia-glsi.so.${pkgver}" # misc - install -D -m755 "libnvidia-ifr.so.${pkgver}" "${pkgdir}/usr/lib32/libnvidia-ifr.so.${pkgver}" + # install -D -m755 "libnvidia-ifr.so.${pkgver}" "${pkgdir}/usr/lib32/libnvidia-ifr.so.${pkgver}" install -D -m755 "libnvidia-fbc.so.${pkgver}" "${pkgdir}/usr/lib32/libnvidia-fbc.so.${pkgver}" install -D -m755 "libnvidia-encode.so.${pkgver}" "${pkgdir}/usr/lib32/libnvidia-encode.so.${pkgver}" install -D -m755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib32/libnvidia-ml.so.${pkgver}" + #install -D -m755 "libnvidia-ngx.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ngx.so.${pkgver}" install -D -m755 "libnvidia-glvkspirv.so.${pkgver}" "${pkgdir}/usr/lib32/libnvidia-glvkspirv.so.${pkgver}" + install -D -m755 "libnvidia-allocator.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-allocator.so.${pkgver}" # Optical Flow install -D -m755 "libnvidia-opticalflow.so.${pkgver}" -t "${pkgdir}/usr/lib32" @@ -318,10 +331,7 @@ package_lib32-nvidia-vulkan-utils() { # PTX JIT Compiler (Parallel Thread Execution (PTX) is a pseudo-assembly language for CUDA) install -D -m755 "libnvidia-ptxjitcompiler.so.${pkgver}" "${pkgdir}/usr/lib32/libnvidia-ptxjitcompiler.so.${pkgver}" - - # Fat (multiarchitecture) binary loader - install -D -m755 "libnvidia-fatbinaryloader.so.${pkgver}" "${pkgdir}/usr/lib32/libnvidia-fatbinaryloader.so.${pkgver}" - + create_links rm -rf "${pkgdir}"/usr/{include,share,bin} |