nvidia-580xx-utils

This commit is contained in:
Ryan Hughes committed 2026-05-08 01:04:51 -04:00
1 parent 519a2ed95c
commit 6928ced994
15 files changed
+3

No files matched your search

@@ -1,64 +0,0 @@
pkgbase = nvidia-580xx-utils
pkgver = 580.159.03
pkgrel = 1
url = http://www.nvidia.com/
arch = x86_64
license = custom
options = !strip
source = nvidia-drm-outputclass.conf
source = nvidia-utils.sysusers
source = nvidia.rules
source = systemd-homed-override.conf
source = systemd-suspend-override.conf
source = nvidia-sleep.conf
source = https://download.nvidia.com/XFree86/Linux-x86_64/580.159.03/NVIDIA-Linux-x86_64-580.159.03.run
source = 0001-Enable-atomic-kernel-modesetting-by-default.patch
source = 0002-Fix-hardware-cursor-crash.patch
source = limit-vram-usage
sha256sums = be99ff3def641bb900c2486cce96530394c5dc60548fc4642f19d3a4c784134d
sha256sums = f77a5247a3ba63e9fad3a3b2822d0fcfa51e0f79b5a90bd79bf08ea34b64ab07
sha256sums = 0e54249a7754b668b436f0f7aa7e95fff68edbb12a93dbee4660e09a8c695f84
sha256sums = c5aa7b8abe69e72bfdc6b9ee8afbfd350bcc557e894558f2e6e4087fa9aa0dd8
sha256sums = 1d053c5078387021338cfc3a732bed61be1a20a549775573788e9134775c8149
sha256sums = 12d31a5425aba66be9e9129012cde82755ad4d5b7ce9933df8fc398c4fa8d631
sha256sums = 32c85d99b0f640c9501f61b39ddad208fd0288d015c4fbc5fd0435c07783fa77
sha256sums = 163c57160cc1033020680f638b44ebd94b496152dcd8951e87d5077d4d5c2009
sha256sums = c1a1cf05dd12efd67858180461ad97a6ebe206b55b56df207854b322ce734613
sha256sums = b14f7a65359c05c373ddfc750cd4cf086a48e815489d93ad5cbe1dbf84bf8f5a
pkgname = nvidia-580xx-utils
pkgdesc = NVIDIA drivers utilities (580xx)
install = nvidia-580xx-utils.install
depends = libglvnd
depends = egl-wayland
depends = egl-gbm
depends = egl-x11
optdepends = nvidia-580xx-settings: configuration tool
optdepends = xorg-server: Xorg support
optdepends = xorg-server-devel: nvidia-xconfig
provides = vulkan-driver
provides = nvidia-utils
provides = opengl-driver
provides = nvidia-libgl
conflicts = nvidia-libgl
conflicts = nvidia-utils
replaces = nvidia-libgl
pkgname = opencl-nvidia-580xx
pkgdesc = OpenCL implemention for NVIDIA (580xx)
depends = zlib
optdepends = opencl-headers: headers necessary for OpenCL development
provides = opencl-driver
provides = opencl-nvidia
conflicts = opencl-nvidia
pkgname = nvidia-580xx-dkms
pkgdesc = NVIDIA kernel modules - module sources (580xx)
depends = dkms
depends = nvidia-580xx-utils=580.159.03
depends = libglvnd
provides = NVIDIA-MODULE
provides = nvidia
conflicts = NVIDIA-MODULE
conflicts = nvidia
conflicts = nvidia-open-dkms
@@ -1,43 +0,0 @@
From 60d1ddc17835226ec67ed1bc1c28524e3bb6e151 Mon Sep 17 00:00:00 2001
From: Peter Jung <admin@ptr1337.dev>
Date: Sun, 20 Apr 2025 18:13:22 +0200
Subject: [PATCH 1/8] Enable atomic kernel modesetting by default
This is required for proper functionality under Wayland. fbdev has been default enabled since 570 so that
hunk can be removed from this patch.
Signed-off-by: Peter Jung <admin@ptr1337.dev>
---
nvidia-drm/nvidia-drm-linux.c | 2 +-
nvidia-drm/nvidia-drm-os-interface.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git an/nvidia-drm/nvidia-drm-linux.c b/nvidia-drm/nvidia-drm-linux.c
index 3cb1815d..209cb469 100644
--- a/nvidia-drm/nvidia-drm-linux.c
+++ b/nvidia-drm/nvidia-drm-linux.c
@@ -31,7 +31,7 @@
MODULE_PARM_DESC(
modeset,
- "Enable atomic kernel modesetting (1 = enable, 0 = disable (default))");
+ "Enable atomic kernel modesetting (1 = enable (default), 0 = disable)");
module_param_named(modeset, nv_drm_modeset_module_param, bool, 0400);
#if defined(NV_DRM_FBDEV_AVAILABLE)
diff --git a/nvidia-drm/nvidia-drm-os-interface.c b/nvidia-drm/nvidia-drm-os-interface.c
index 7617476d..f22afd77 100644
--- a/nvidia-drm/nvidia-drm-os-interface.c
+++ b//nvidia-drm/nvidia-drm-os-interface.c
@@ -41,7 +41,7 @@
#include <drm/drmP.h>
#endif
-bool nv_drm_modeset_module_param = false;
+bool nv_drm_modeset_module_param = true;
bool nv_drm_fbdev_module_param = true;
void *nv_drm_calloc(size_t nmemb, size_t size)
--
2.49.0.391.g4bbb303af6
@@ -1,28 +0,0 @@
From 82f3c2441c636c59550201b9f2ee3c4cbecbb886 Mon Sep 17 00:00:00 2001
From: Peter Jung <admin@ptr1337.dev>
Date: Mon, 9 Feb 2026 17:10:25 +0100
Subject: [PATCH] nvidia-uvm: Add fix for 6.19 Kernel
Signed-off-by: Peter Jung <admin@ptr1337.dev>
---
kernel-open/nvidia-uvm/uvm_hmm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel-open/nvidia-uvm/uvm_hmm.c b/kernel-open/nvidia-uvm/uvm_hmm.c
index 2ddf64b7..9f045ccf 100644
--- a/kernel-open/nvidia-uvm/uvm_hmm.c
+++ b/kernel-open/nvidia-uvm/uvm_hmm.c
@@ -78,7 +78,9 @@ module_param(uvm_disable_hmm, bool, 0444);
// Pass 0 as the order, when actual large order support is added this
// function will need to be revisited
//
-#if defined(NV_ZONE_DEVICE_PAGE_INIT_HAS_ORDER_ARG)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0)
+#define ZONE_DEVICE_PAGE_INIT(page) zone_device_page_init(page, page_pgmap(page), 0)
+#elif defined(NV_ZONE_DEVICE_PAGE_INIT_HAS_ORDER_ARG)
#define ZONE_DEVICE_PAGE_INIT(page) zone_device_page_init(page, 0)
#else
#define ZONE_DEVICE_PAGE_INIT(page) zone_device_page_init(page)
--
2.53.0
@@ -1,43 +0,0 @@
diff --git a/nvidia-drm/nvidia-drm-fb.c b/nvidia-drm/nvidia-drm-fb.c
index 05506435..d6f38ee8 100644
--- a/nvidia-drm/nvidia-drm-fb.c
+++ b/nvidia-drm/nvidia-drm-fb.c
@@ -141,7 +141,6 @@ static int nv_drm_framebuffer_init(struct drm_device *dev,
struct NvKmsKapiCreateSurfaceParams params = { };
struct nv_drm_gem_object *nv_gem;
struct drm_framebuffer *fb = &nv_fb->base;
- bool non_scanout_mem_backed = false;
uint32_t i;
int ret;
@@ -163,10 +162,6 @@ static int nv_drm_framebuffer_init(struct drm_device *dev,
params.planes[i].memory = nv_gem->pMemory;
params.planes[i].offset = fb->offsets[i];
params.planes[i].pitch = fb->pitches[i];
-
- if (!nvKms->isVidmem(nv_gem->pMemory) && nv_dev->hasVideoMemory) {
- non_scanout_mem_backed = true;
- }
}
}
params.height = fb->height;
@@ -233,15 +228,10 @@ static int nv_drm_framebuffer_init(struct drm_device *dev,
/* Create NvKmsKapiSurface */
- if (non_scanout_mem_backed) {
- /* Do not register drm_framebuffer against nvkms */
- nv_fb->pSurface = NULL;
- } else {
- nv_fb->pSurface = nvKms->createSurface(nv_dev->pDevice, &params);
- if (nv_fb->pSurface == NULL) {
- NV_DRM_DEV_DEBUG_DRIVER(nv_dev, "Failed to create NvKmsKapiSurface");
- goto fail;
- }
+ nv_fb->pSurface = nvKms->createSurface(nv_dev->pDevice, &params);
+ if (nv_fb->pSurface == NULL) {
+ NV_DRM_DEV_DEBUG_DRIVER(nv_dev, "Failed to create NvKmsKapiSurface");
+ goto fail;
}
return 0;
@@ -1,35 +0,0 @@
From 1ab454e3114dbe6bc61e35be9b6cbcbfe119bfaf Mon Sep 17 00:00:00 2001
From: Peter Jung <admin@ptr1337.dev>
Date: Thu, 26 Feb 2026 16:53:26 +0100
Subject: [PATCH] kernel-open/Makefile: Fix PAHOLE_VARIABLES for kernels using
gen-btf.sh, fix for 7.0rc1
Signed-off-by: Peter Jung <admin@ptr1337.dev>
---
kernel-open/Makefile | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a//Makefile b/Makefile
index f7a8db69f..9a3fc281e 100644
--- a/Makefile
+++ b/Makefile
@@ -92,10 +92,15 @@ else
# system(pahole_cmd)
# }
PAHOLE_AWK_PROGRAM = BEGIN { pahole_cmd = \"pahole\"; for (i = 1; i < ARGC; i++) { if (ARGV[i] ~ /--lang_exclude=/) { pahole_cmd = pahole_cmd sprintf(\" %s,c++\", ARGV[i]); } else { pahole_cmd = pahole_cmd sprintf(\" %s\", ARGV[i]); } } system(pahole_cmd); }
- # If scripts/pahole-flags.sh is not present in the kernel tree, add PAHOLE and
- # PAHOLE_AWK_PROGRAM assignments to PAHOLE_VARIABLES; otherwise assign the
- # empty string to PAHOLE_VARIABLES.
- PAHOLE_VARIABLES=$(if $(wildcard $(KERNEL_SOURCES)/scripts/pahole-flags.sh),,"PAHOLE=$(AWK) '$(PAHOLE_AWK_PROGRAM)'")
+ # If scripts/pahole-flags.sh is not present AND scripts/gen-btf.sh is not
+ # present in the kernel tree, add PAHOLE and PAHOLE_AWK_PROGRAM assignments
+ # to PAHOLE_VARIABLES; otherwise assign the empty string to PAHOLE_VARIABLES.
+ #
+ # scripts/gen-btf.sh was introduced in kernel 7.0 (formerly 6.17) when
+ # scripts/pahole-flags.sh was removed. The gen-btf.sh-based BTF generation
+ # calls ${PAHOLE} inside a shell script, so the awk wrapper used here is
+ # incompatible (shell word-splitting breaks the single-quoted awk program).
+ PAHOLE_VARIABLES=$(if $(or $(wildcard $(KERNEL_SOURCES)/scripts/pahole-flags.sh),$(wildcard $(KERNEL_SOURCES)/scripts/gen-btf.sh)),,"PAHOLE=$(AWK) '$(PAHOLE_AWK_PROGRAM)'")
ifndef ARCH
ARCH := $(shell uname -m | sed -e 's/i.86/i386/' \
-309
View File
@@ -1,309 +0,0 @@
# Maintainer: Vasiliy Stelmachenok <ventureo@cachyos.org>
# Contributor: Sven-Hendrik Haase <svenstaro@archlinux.org>
# Contributor: Peter Jung <ptr1337@archlinux.org>
# Contributor: James Rayner <iphitus@gmail.com>
# Contributor: Vasiliy Stelmachenok <ventureo@yandex.ru>
# Contributor: Thomas Baechler <thomas@archlinux.org>
pkgbase=nvidia-580xx-utils
pkgname=('nvidia-580xx-utils' 'opencl-nvidia-580xx' 'nvidia-580xx-dkms')
pkgver=580.159.03
pkgrel=1
arch=('x86_64')
url="http://www.nvidia.com/"
license=('custom')
options=('!strip')
_pkg="NVIDIA-Linux-x86_64-${pkgver}"
_pkg_open="NVIDIA-kernel-module-source-${pkgver}"
source=('nvidia-drm-outputclass.conf'
'nvidia-utils.sysusers'
'nvidia.rules'
'systemd-homed-override.conf'
'systemd-suspend-override.conf'
'nvidia-sleep.conf'
"https://download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run"
'0001-Enable-atomic-kernel-modesetting-by-default.patch'
'0002-Fix-hardware-cursor-crash.patch'
'limit-vram-usage')
sha256sums=(
'be99ff3def641bb900c2486cce96530394c5dc60548fc4642f19d3a4c784134d'
'f77a5247a3ba63e9fad3a3b2822d0fcfa51e0f79b5a90bd79bf08ea34b64ab07'
'0e54249a7754b668b436f0f7aa7e95fff68edbb12a93dbee4660e09a8c695f84'
'c5aa7b8abe69e72bfdc6b9ee8afbfd350bcc557e894558f2e6e4087fa9aa0dd8'
'1d053c5078387021338cfc3a732bed61be1a20a549775573788e9134775c8149'
'12d31a5425aba66be9e9129012cde82755ad4d5b7ce9933df8fc398c4fa8d631'
'32c85d99b0f640c9501f61b39ddad208fd0288d015c4fbc5fd0435c07783fa77'
'163c57160cc1033020680f638b44ebd94b496152dcd8951e87d5077d4d5c2009'
'c1a1cf05dd12efd67858180461ad97a6ebe206b55b56df207854b322ce734613'
'b14f7a65359c05c373ddfc750cd4cf086a48e815489d93ad5cbe1dbf84bf8f5a'
)
create_links() {
# create soname links
find "$pkgdir" -type f -name '*.so*' ! -path '*xorg/*' -print0 | while read -d $'\0' _lib; do
_soname=$(dirname "${_lib}")/$(readelf -d "${_lib}" | grep -Po 'SONAME.*: \[\K[^]]*' || true)
_base=$(echo ${_soname} | sed -r 's/(.*)\.so.*/\1.so/')
[[ -e "${_soname}" ]] || ln -s $(basename "${_lib}") "${_soname}"
[[ -e "${_base}" ]] || ln -s $(basename "${_soname}") "${_base}"
done
}
prepare() {
sh "${_pkg}.run" --extract-only
cd "${_pkg}"
bsdtar -xf nvidia-persistenced-init.tar.bz2
# Enable modeset by default
# This avoids various issue, when Simplefb is used
# https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/issues/14
# https://github.com/rpmfusion/nvidia-kmod/blob/master/make_modeset_default.patch
patch -Np1 -i "${srcdir}/0001-Enable-atomic-kernel-modesetting-by-default.patch" -d "${srcdir}/${_pkg}/kernel"
# Fixes KDE Plasma Wayland crash without using KWIN_FORCE_SW_CURSOR=1
# Author: thesword53
# https://forums.developer.nvidia.com/t/580-release-feedback-discussion/341205/1058
patch -Np1 -i "${srcdir}/0002-Fix-hardware-cursor-crash.patch" -d "${srcdir}/${_pkg}/kernel"
shopt -s globstar
for conf in "${srcdir}"/**/dkms.conf; do
sed -i "s/__VERSION_STRING/${pkgver}/" "$conf"
sed -i 's/__JOBS/`nproc`/' "$conf"
sed -i 's/__EXCLUDE_MODULES//' "$conf"
sed -i 's/__DKMS_MODULES//' "$conf"
sed -i 's/NV_EXCLUDE_BUILD_MODULES/IGNORE_PREEMPT_RT_PRESENCE=1 NV_EXCLUDE_BUILD_MODULES/' "$conf"
sed -i '$i\
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"\
BUILT_MODULE_NAME[4]="nvidia-peermem"\
DEST_MODULE_LOCATION[4]="/kernel/drivers/video"' "$conf"
done
shopt -u globstar
}
package_opencl-nvidia-580xx() {
pkgdesc="OpenCL implemention for NVIDIA (580xx)"
depends=('zlib')
optdepends=('opencl-headers: headers necessary for OpenCL development')
provides=('opencl-driver' 'opencl-nvidia')
conflicts=('opencl-nvidia')
cd "${_pkg}"
# OpenCL
install -Dm644 nvidia.icd "${pkgdir}/etc/OpenCL/vendors/nvidia.icd"
install -Dm755 "libnvidia-opencl.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-opencl.so.${pkgver}"
create_links
mkdir -p "${pkgdir}/usr/share/licenses"
ln -s nvidia-utils "${pkgdir}/usr/share/licenses/opencl-nvidia"
}
package_nvidia-580xx-dkms() {
pkgdesc="NVIDIA kernel modules - module sources (580xx)"
depends=('dkms' "nvidia-580xx-utils=${pkgver}" 'libglvnd')
provides=('NVIDIA-MODULE' 'nvidia')
conflicts=('NVIDIA-MODULE' 'nvidia' 'nvidia-open-dkms')
cd ${_pkg}
install -dm 755 "${pkgdir}/usr/src"
cp -dr --no-preserve='ownership' kernel "${pkgdir}/usr/src/nvidia-${pkgver}"
install -Dm644 "${srcdir}/${_pkg}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
package_nvidia-580xx-utils() {
pkgdesc="NVIDIA drivers utilities (580xx)"
depends=('libglvnd' 'egl-wayland' 'egl-gbm' 'egl-x11')
optdepends=(
'nvidia-580xx-settings: configuration tool'
'xorg-server: Xorg support'
'xorg-server-devel: nvidia-xconfig'
)
conflicts=('nvidia-libgl' 'nvidia-utils')
provides=('vulkan-driver' 'nvidia-utils' 'opengl-driver' 'nvidia-libgl')
replaces=('nvidia-libgl')
install="${pkgname}.install"
cd "${_pkg}"
# Check http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/README/installedcomponents.html
# for hints on what needs to be installed where.
# X driver
install -Dm755 nvidia_drv.so "${pkgdir}/usr/lib/xorg/modules/drivers/nvidia_drv.so"
# Wayland/GBM
mkdir -p "${pkgdir}/usr/lib/gbm"
ln -sr "${pkgdir}/usr/lib/libnvidia-allocator.so.${pkgver}" "${pkgdir}/usr/lib/gbm/nvidia-drm_gbm.so"
# firmware
install -Dm644 -t "${pkgdir}/usr/lib/firmware/nvidia/${pkgver}/" firmware/*.bin
# GLX extension module for X
install -Dm755 "libglxserver_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglxserver_nvidia.so.${pkgver}"
# Ensure that X finds glx
ln -s "libglxserver_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglxserver_nvidia.so.1"
ln -s "libglxserver_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglxserver_nvidia.so"
install -Dm755 "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_nvidia.so.${pkgver}"
# OpenGL libraries
install -Dm755 "libEGL_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libEGL_nvidia.so.${pkgver}"
install -Dm755 "libGLESv1_CM_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv1_CM_nvidia.so.${pkgver}"
install -Dm755 "libGLESv2_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv2_nvidia.so.${pkgver}"
install -Dm644 "10_nvidia.json" "${pkgdir}/usr/share/glvnd/egl_vendor.d/10_nvidia.json"
# OpenGL core library
install -Dm755 "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glcore.so.${pkgver}"
install -Dm755 "libnvidia-eglcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-eglcore.so.${pkgver}"
install -Dm755 "libnvidia-glsi.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glsi.so.${pkgver}"
# misc
install -Dm755 "libnvidia-api.so.1" "${pkgdir}/usr/lib/libnvidia-api.so.1"
install -Dm755 "libnvidia-fbc.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fbc.so.${pkgver}"
install -Dm755 "libnvidia-encode.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-encode.so.${pkgver}"
install -Dm755 "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cfg.so.${pkgver}"
install -Dm755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ml.so.${pkgver}"
install -Dm755 "libnvidia-glvkspirv.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glvkspirv.so.${pkgver}"
install -Dm755 "libnvidia-allocator.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-allocator.so.${pkgver}"
install -Dm755 "libnvidia-gpucomp.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-gpucomp.so.${pkgver}"
# Vulkan ICD
install -Dm644 "nvidia_icd.json" "${pkgdir}/usr/share/vulkan/icd.d/nvidia_icd.json"
install -Dm644 "nvidia_layers.json" "${pkgdir}/usr/share/vulkan/implicit_layer.d/nvidia_layers.json"
# VulkanSC
install -D -m755 nvidia-pcc -t "${pkgdir}/usr/bin"
install -D -m755 "libnvidia-vksc-core.so.${pkgver}" -t "${pkgdir}/usr/lib"
install -D -m644 nvidia_icd_vksc.json -t "${pkgdir}/usr/share/vulkansc/icd.d"
# VDPAU
install -Dm755 "libvdpau_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/vdpau/libvdpau_nvidia.so.${pkgver}"
# nvidia-tls library
install -Dm755 "libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-tls.so.${pkgver}"
# CUDA
install -Dm755 "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/libcuda.so.${pkgver}"
install -Dm755 "libnvcuvid.so.${pkgver}" "${pkgdir}/usr/lib/libnvcuvid.so.${pkgver}"
install -Dm755 "libcudadebugger.so.${pkgver}" "${pkgdir}/usr/lib/libcudadebugger.so.${pkgver}"
# NVVM Compiler library loaded by the CUDA driver to do JIT link-time-optimization
install -Dm644 "libnvidia-nvvm.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-nvvm.so.${pkgver}"
install -Dm755 "libnvidia-nvvm70.so.4" "${pkgdir}/usr/lib/libnvidia-nvvm70.so.4"
# PTX JIT Compiler (Parallel Thread Execution (PTX) is a pseudo-assembly language for CUDA)
install -Dm755 "libnvidia-ptxjitcompiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ptxjitcompiler.so.${pkgver}"
# raytracing
install -Dm755 "nvoptix.bin" "${pkgdir}/usr/share/nvidia/nvoptix.bin"
install -Dm755 "libnvoptix.so.${pkgver}" "${pkgdir}/usr/lib/libnvoptix.so.${pkgver}"
install -Dm755 "libnvidia-rtcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-rtcore.so.${pkgver}"
# NGX
install -Dm755 nvidia-ngx-updater "${pkgdir}/usr/bin/nvidia-ngx-updater"
install -Dm755 "libnvidia-ngx.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ngx.so.${pkgver}"
install -Dm755 _nvngx.dll "${pkgdir}/usr/lib/nvidia/wine/_nvngx.dll"
install -Dm755 nvngx.dll "${pkgdir}/usr/lib/nvidia/wine/nvngx.dll"
install -Dm755 nvngx_dlssg.dll "${pkgdir}/usr/lib/nvidia/wine/nvngx_dlssg.dll"
# Optical flow
install -Dm755 "libnvidia-opticalflow.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-opticalflow.so.${pkgver}"
# Cryptography library wrapper
ls libnvidia-pkcs*
ls *openssl*
install -Dm755 "libnvidia-pkcs11.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-pkcs11.so.${pkgver}"
install -Dm755 "libnvidia-pkcs11-openssl3.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-pkcs11-openssl3.so.${pkgver}"
# Sandboxhelper
install -Dm755 "libnvidia-sandboxutils.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-sandboxutils.so.${pkgver}"
# Present Helper
install -Dm755 "libnvidia-present.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-present.so.${pkgver}"
# Debug
install -Dm755 nvidia-debugdump "${pkgdir}/usr/bin/nvidia-debugdump"
# nvidia-xconfig
install -Dm755 nvidia-xconfig "${pkgdir}/usr/bin/nvidia-xconfig"
install -Dm644 nvidia-xconfig.1.gz "${pkgdir}/usr/share/man/man1/nvidia-xconfig.1.gz"
# nvidia-bug-report
install -Dm755 nvidia-bug-report.sh "${pkgdir}/usr/bin/nvidia-bug-report.sh"
# nvidia-smi
install -Dm755 nvidia-smi "${pkgdir}/usr/bin/nvidia-smi"
install -Dm644 nvidia-smi.1.gz "${pkgdir}/usr/share/man/man1/nvidia-smi.1.gz"
# nvidia-cuda-mps
install -Dm755 nvidia-cuda-mps-server "${pkgdir}/usr/bin/nvidia-cuda-mps-server"
install -Dm755 nvidia-cuda-mps-control "${pkgdir}/usr/bin/nvidia-cuda-mps-control"
install -Dm644 nvidia-cuda-mps-control.1.gz "${pkgdir}/usr/share/man/man1/nvidia-cuda-mps-control.1.gz"
# nvidia-modprobe
# This should be removed if nvidia fixed their uvm module!
install -Dm4755 nvidia-modprobe "${pkgdir}/usr/bin/nvidia-modprobe"
install -Dm644 nvidia-modprobe.1.gz "${pkgdir}/usr/share/man/man1/nvidia-modprobe.1.gz"
# nvidia-persistenced
install -Dm755 nvidia-persistenced "${pkgdir}/usr/bin/nvidia-persistenced"
install -Dm644 nvidia-persistenced.1.gz "${pkgdir}/usr/share/man/man1/nvidia-persistenced.1.gz"
install -Dm644 nvidia-persistenced-init/systemd/nvidia-persistenced.service.template "${pkgdir}/usr/lib/systemd/system/nvidia-persistenced.service"
sed -i 's/__USER__/nvidia-persistenced/' "${pkgdir}/usr/lib/systemd/system/nvidia-persistenced.service"
# application profiles
install -Dm644 "nvidia-application-profiles-${pkgver}-rc" "${pkgdir}/usr/share/nvidia/nvidia-application-profiles-${pkgver}-rc"
install -Dm644 "nvidia-application-profiles-${pkgver}-key-documentation" "${pkgdir}/usr/share/nvidia/nvidia-application-profiles-${pkgver}-key-documentation"
# Application profiles to fix vram usage at electron applications
install -Dm644 "$srcdir"/limit-vram-usage "${pkgdir}/etc/nvidia/nvidia-application-profiles-rc.d/limit-vram-usage"
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/nvidia-utils/LICENSE"
install -Dm644 README.txt "${pkgdir}/usr/share/doc/nvidia/README"
install -Dm644 NVIDIA_Changelog "${pkgdir}/usr/share/doc/nvidia/NVIDIA_Changelog"
cp -r html "${pkgdir}/usr/share/doc/nvidia/"
ln -s nvidia "${pkgdir}/usr/share/doc/nvidia-utils"
# new power management support
install -Dm644 systemd/system/*.service -t "${pkgdir}/usr/lib/systemd/system"
install -Dm755 systemd/system-sleep/nvidia "${pkgdir}/usr/lib/systemd/system-sleep/nvidia"
install -Dm755 systemd/nvidia-sleep.sh "${pkgdir}/usr/bin/nvidia-sleep.sh"
install -Dm755 nvidia-powerd "${pkgdir}/usr/bin/nvidia-powerd"
install -Dm644 nvidia-dbus.conf "${pkgdir}/usr/share/dbus-1/system.d/nvidia-dbus.conf"
install -Dm644 "${srcdir}/systemd-homed-override.conf" "${pkgdir}/usr/lib/systemd/system/systemd-homed.service.d/10-nvidia-no-freeze-session.conf"
install -Dm644 "${srcdir}/systemd-suspend-override.conf" "${pkgdir}/usr/lib/systemd/system/systemd-suspend.service.d/10-nvidia-no-freeze-session.conf"
install -Dm644 "${srcdir}/systemd-suspend-override.conf" "${pkgdir}/usr/lib/systemd/system/systemd-suspend-then-hibernate.service.d/10-nvidia-no-freeze-session.conf"
install -Dm644 "${srcdir}/systemd-suspend-override.conf" "${pkgdir}/usr/lib/systemd/system/systemd-hibernate.service.d/10-nvidia-no-freeze-session.conf"
install -Dm644 "${srcdir}/systemd-suspend-override.conf" "${pkgdir}/usr/lib/systemd/system/systemd-hybrid-sleep.service.d/10-nvidia-no-freeze-session.conf"
# distro specific files must be installed in /usr/share/X11/xorg.conf.d
install -Dm644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf"
install -Dm644 "${srcdir}/nvidia-utils.sysusers" "${pkgdir}/usr/lib/sysusers.d/$pkgname.conf"
install -Dm644 "${srcdir}/nvidia.rules" "$pkgdir"/usr/lib/udev/rules.d/60-nvidia.rules
# Blacklist nouveau and nova
install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf" <<END
blacklist nouveau
blacklist nova_core
blacklist nova_drm
END
echo "nvidia-uvm" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
# Enable PreserveVideoMemoryAllocations and TemporaryFilePath
# Fixes Wayland Sleep, when restoring the session
install -Dm644 "${srcdir}/nvidia-sleep.conf" "${pkgdir}/usr/lib/modprobe.d/nvidia-sleep.conf"
# Lists NVIDIA driver files for container runtimes like nvidia-container-toolkit
install -Dm644 sandboxutils-filelist.json "${pkgdir}/usr/share/nvidia/files.d/sandboxutils-filelist.json"
create_links
}
@@ -1,27 +0,0 @@
{
"rules": [
{
"pattern": {
"op": "or",
"sub": [
{ "feature": "procname", "matches": "Proton Pass" },
{ "feature": "procname", "matches": "Proton Mail" },
{ "feature": "procname", "matches": "vesktop" },
{ "feature": "procname", "matches": "discord" },
{ "feature": "procname", "matches": "DiscordCanary" },
{ "feature": "procname", "matches": "spotify" },
{ "feature": "procname", "matches": "chromium" },
{ "feature": "procname", "matches": "chrome" },
{ "feature": "procname", "matches": "ghostty" },
{ "feature": "procname", "matches": "webcord" },
{ "feature": "procname", "matches": "brave" },
{ "feature": "procname", "matches": "firefox" },
{ "feature": "procname", "matches": "alacritty" },
{ "feature": "procname", "matches": "konsole" },
{ "feature": "procname", "matches": "niri" }
]
},
"profile": "No VidMem Reuse"
}
]
}
@@ -1,26 +0,0 @@
post_install() {
# Enable NVIDIA Services at first installation
# The services are mandatory, see under systemd configuration
# https://download.nvidia.com/XFree86/Linux-x86_64/560.35.03/README/powermanagement.html#SystemdConfigur74e29
# This is also an requirement to have sleep working together with PreserveAllocations
# https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/55644f78820fd382fbdf283b1fd7f08e6b7c22d7
# https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/merge_requests/16
systemctl enable nvidia-resume nvidia-hibernate nvidia-suspend
}
post_upgrade() {
# Only enable the services for the 560.35.03-16 version
# This avoids, that the services are automatically enabled in every upgrade
if (( $(vercmp $2 560.35.03-16) < 0)); then
for service in nvidia-resume nvidia-hibernate nvidia-suspend; do
if ! systemctl is-enabled --quiet $service; then
echo "Enabling $service..."
systemctl enable $service
fi
done
fi
}
post_remove() {
systemctl disable nvidia-resume nvidia-hibernate nvidia-suspend
}
@@ -1,8 +0,0 @@
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
ModulePath "/usr/lib/nvidia/xorg"
ModulePath "/usr/lib/xorg/modules"
EndSection
@@ -1 +0,0 @@
options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp
@@ -1 +0,0 @@
u! nvidia-persistenced 143 'NVIDIA Persistence Daemon'
@@ -1,9 +0,0 @@
# Device nodes are created by nvidia-modprobe, which is called by the nvidia DDX.
# In case the DDX is not started, the device nodes are never created, so call
# nvidia-modprobe in the udev rules to cover the Wayland/EGLStream and compute
# case without a started display. In the case where vfio-pci is used
# nvidia-modprobe should not be invoked.
ACTION=="add|bind", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", \
DRIVER=="nvidia", TEST!="/dev/nvidia-uvm", \
RUN+="/usr/bin/nvidia-modprobe", \
RUN+="/usr/bin/nvidia-modprobe -c0 -u"
@@ -1,2 +0,0 @@
[Service]
Environment="SYSTEMD_HOME_LOCK_FREEZE_SESSION=false"
@@ -1,2 +0,0 @@
[Service]
Environment="SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false"