Hello @SoftExpert, @cysp74
I confirm the 6.4 patch is not required on my system (with GeForce GTX 765M / GK106M), everything works OK without it.
Edit: I'm using linux package version 6.4.1-arch1-1.
Thank you, Luc
Git Clone URL: | https://aur.archlinux.org/nvidia-470xx-utils.git (read-only, click to copy) |
---|---|
Package Base: | nvidia-470xx-utils |
Description: | OpenCL implemention for NVIDIA |
Upstream URL: | http://www.nvidia.com/ |
Keywords: | driver nvidia video |
Licenses: | custom |
Conflicts: | opencl-nvidia |
Provides: | opencl-driver, opencl-nvidia |
Submitter: | jonathon |
Maintainer: | Sinyria (cysp74, SoftExpert) |
Last Packager: | SoftExpert |
Votes: | 103 |
Popularity: | 1.98 |
First Submitted: | 2021-10-31 00:50 (UTC) |
Last Updated: | 2025-02-03 19:42 (UTC) |
« First ‹ Previous 1 .. 23 24 25 26 27 28 29 30 31 32 33 .. 44 Next › Last »
Hello @SoftExpert, @cysp74
I confirm the 6.4 patch is not required on my system (with GeForce GTX 765M / GK106M), everything works OK without it.
Edit: I'm using linux package version 6.4.1-arch1-1.
Thank you, Luc
@cysp74: On my system, I needed the 6.4 patch to have DKMS build the kernel module for 6.4.x kernel line. Not needed for 6.1.x-6.3.x ...
@SoftExpert: I don't think so *6.4.patch is necessary for having a proper build of 470.199.02. If you take a moment and look into the code, you can see since there is proper solution instead of for the problem. So, as I mentioned earlier, the PKGBUILD for 470.199.02 is quite straight. I'm still waiting for this package get orphaned....
diff --git a/PKGBUILD b/PKGBUILD
index 19037eb..fee8dfa 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,8 +6,8 @@
pkgbase=nvidia-470xx-utils
pkgname=('nvidia-470xx-utils' 'opencl-nvidia-470xx' 'nvidia-470xx-dkms')
-pkgver=470.182.03
-pkgrel=2
+pkgver=470.199.02
+pkgrel=1
arch=('x86_64')
url="http://www.nvidia.com/"
license=('custom')
@@ -16,13 +16,11 @@ _pkg="NVIDIA-Linux-x86_64-${pkgver}"
source=('nvidia-drm-outputclass.conf'
'nvidia-470xx-utils.sysusers'
'nvidia-470xx.rules'
- "https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run"
- "kernel-6.3.patch")
+ "https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run")
sha512sums=('de7116c09f282a27920a1382df84aa86f559e537664bb30689605177ce37dc5067748acf9afd66a3269a6e323461356592fdfc624c86523bf105ff8fe47d3770'
'4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499'
'e307e5fe005dfafee35c179c5f215e22a85dfd367a9b60d5092eee96f869d8ce4595fae33ce6febb74721974c6f781a53418ce1a3210768632347471ae3f5594'
- '73619d65bd3267427acaf2deee07a2c98c490df937aa13e2c95d54cfd19ce2a82a91d3a5aa886dbe88f6230251f9cf54c38f5841cfacd77e53301e8d61fa3d7d'
- 'e7343f022263690030bdcbc9b91cd775c7c8c24da4f75e6583494464d92eeeb01965bc9e628566faaf6c91fb5519881346d44c4e7d1c7fe8b7c6da89a7620036')
+ 'e1265b6266473af652e9d7bf85dcd76e312af281c5f4f158ab322e34d378738acb87c30cfff7bf1f6e1b238883e7f665d9fc5151b1e0078dd9aece5a52655405')
create_links() {
# create soname links
@@ -42,8 +40,6 @@ prepare() {
cd kernel
- patch -p1 -i "$srcdir/kernel-6.3.patch"
-
sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf
sed -i 's/__JOBS/`nproc`/' dkms.conf
sed -i 's/__DKMS_MODULES//' dkms.conf
@SoftExpert Thank you very much! I gonna do that ;)
@erickwill: you can just clone this Git repository (or create an empty directory somewhere on your home directory) and then replace the PKGBUILD file contents with what I have listed. You should also create a kernel-6.4.patch file with the content I listed. Then you run makepkg
and, if you had all the requirements in place, you can run makepkg -sicC
to install and also clean the build directories.
I was able to compile and run it with all kernels in the lines 6.1.x - 6.4.x
Here is my local version of the package:
PKGBUILD contents:
# Maintainer: Daniel Menelkir <dmenelkir@gmail.com>
# Contributor: Jonathon Fernyhough <jonathon+m2x+dev>
# Contributor: Sven-Hendrik Haase <svenstaro@gmail.com>
# Contributor: Thomas Baechler <thomas@archlinux.org>
# Contributor: James Rayner <iphitus@gmail.com>
pkgbase=nvidia-470xx-utils
pkgname=('nvidia-470xx-utils' 'opencl-nvidia-470xx' 'nvidia-470xx-dkms')
pkgver=470.199.02
pkgrel=1
arch=('x86_64')
url="http://www.nvidia.com/"
license=('custom')
options=('!strip')
_pkg="NVIDIA-Linux-x86_64-${pkgver}"
source=('nvidia-drm-outputclass.conf'
'nvidia-470xx-utils.sysusers'
'nvidia-470xx.rules'
"https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run"
"kernel-6.4.patch")
sha512sums=('de7116c09f282a27920a1382df84aa86f559e537664bb30689605177ce37dc5067748acf9afd66a3269a6e323461356592fdfc624c86523bf105ff8fe47d3770'
'4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499'
'e307e5fe005dfafee35c179c5f215e22a85dfd367a9b60d5092eee96f869d8ce4595fae33ce6febb74721974c6f781a53418ce1a3210768632347471ae3f5594'
'e1265b6266473af652e9d7bf85dcd76e312af281c5f4f158ab322e34d378738acb87c30cfff7bf1f6e1b238883e7f665d9fc5151b1e0078dd9aece5a52655405'
'c6166a664cfa3ea722796af9dbaf5fe892b41c72aa09e1b4a0ac37ffa597c24be8dac60d5dba4481b4bb6ef0b730b1b05f110baf5c33952e191abdc0f32a50cb')
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
cd kernel
patch -p1 -i "$srcdir/kernel-6.4.patch"
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"\
BUILT_MODULE_NAME[4]="nvidia-peermem"\
DEST_MODULE_LOCATION[4]="/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
}
package_opencl-nvidia-470xx() {
pkgdesc="OpenCL implemention for NVIDIA"
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 -D "libnvidia-compiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-compiler.so.${pkgver}"
install -D "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-470xx-dkms() {
pkgdesc="NVIDIA drivers - module sources"
depends=('dkms' "nvidia-470xx-utils=$pkgver" 'libglvnd')
provides=('NVIDIA-MODULE')
conflicts=('nvidia-dkms')
cd ${_pkg}
install -dm 755 "${pkgdir}"/usr/src
cp -dr --no-preserve='ownership' kernel "${pkgdir}/usr/src/nvidia-${pkgver}"
install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 "${srcdir}/${_pkg}/LICENSE"
}
package_nvidia-470xx-utils() {
pkgdesc="NVIDIA drivers utilities"
depends=('xorg-server' 'libglvnd' 'egl-wayland')
optdepends=('nvidia-470xx-settings: configuration tool'
'xorg-server-devel: nvidia-xconfig'
'opencl-nvidia-470xx: OpenCL support')
conflicts=('nvidia-libgl' 'nvidia-utils')
provides=('vulkan-driver' 'opengl-driver' 'nvidia-libgl' 'nvidia-utils')
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 -D nvidia_drv.so "${pkgdir}/usr/lib/xorg/modules/drivers/nvidia_drv.so"
# Wayland/GBM
#install -Dm755 libnvidia-egl-gbm.so.1* -t "${pkgdir}/usr/lib/"
#install -Dm644 15_nvidia_gbm.json "${pkgdir}/usr/share/egl/egl_external_platform.d/15_nvidia_gbm.json"
#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 firmware/gsp.bin "${pkgdir}/usr/lib/firmware/nvidia/${pkgver}/gsp.bin"
# GLX extension module for X
install -D "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 -D "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_nvidia.so.${pkgver}"
# OpenGL libraries
install -D "libEGL_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libEGL_nvidia.so.${pkgver}"
install -D "libGLESv1_CM_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv1_CM_nvidia.so.${pkgver}"
install -D "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 -D "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glcore.so.${pkgver}"
install -D "libnvidia-eglcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-eglcore.so.${pkgver}"
install -D "libnvidia-glsi.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glsi.so.${pkgver}"
# misc
install -D "libnvidia-ifr.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ifr.so.${pkgver}"
install -D "libnvidia-fbc.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fbc.so.${pkgver}"
install -D "libnvidia-encode.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-encode.so.${pkgver}"
install -D "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cfg.so.${pkgver}"
install -D "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ml.so.${pkgver}"
install -D "libnvidia-glvkspirv.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glvkspirv.so.${pkgver}"
install -D "libnvidia-allocator.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-allocator.so.${pkgver}"
install -D "libnvidia-vulkan-producer.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-vulkan-producer.so.${pkgver}"
# Sigh libnvidia-vulkan-producer.so has no SONAME set so create_links doesn't catch it. NVIDIA please fix!
ln -s "libnvidia-vulkan-producer.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-vulkan-producer.so.1"
ln -s "libnvidia-vulkan-producer.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-vulkan-producer.so"
# 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"
# VDPAU
install -D "libvdpau_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/vdpau/libvdpau_nvidia.so.${pkgver}"
# nvidia-tls library
install -D "libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-tls.so.${pkgver}"
# CUDA
install -D "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/libcuda.so.${pkgver}"
install -D "libnvcuvid.so.${pkgver}" "${pkgdir}/usr/lib/libnvcuvid.so.${pkgver}"
# PTX JIT Compiler (Parallel Thread Execution (PTX) is a pseudo-assembly language for CUDA)
install -D "libnvidia-ptxjitcompiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ptxjitcompiler.so.${pkgver}"
# raytracing
install -D "libnvoptix.so.${pkgver}" "${pkgdir}/usr/lib/libnvoptix.so.${pkgver}"
install -D "libnvidia-rtcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-rtcore.so.${pkgver}"
install -D "libnvidia-cbl.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cbl.so.${pkgver}"
# NGX
install -D nvidia-ngx-updater "${pkgdir}/usr/bin/nvidia-ngx-updater"
install -D "libnvidia-ngx.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ngx.so.${pkgver}"
install -D _nvngx.dll "${pkgdir}/usr/lib/nvidia/wine/_nvngx.dll"
install -D nvngx.dll "${pkgdir}/usr/lib/nvidia/wine/nvngx.dll"
# Optical flow
install -D "libnvidia-opticalflow.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-opticalflow.so.${pkgver}"
# DEBUG
install -D nvidia-debugdump "${pkgdir}/usr/bin/nvidia-debugdump"
# nvidia-xconfig
install -D 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 -D nvidia-bug-report.sh "${pkgdir}/usr/bin/nvidia-bug-report.sh"
# nvidia-smi
install -D 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 -D nvidia-cuda-mps-server "${pkgdir}/usr/bin/nvidia-cuda-mps-server"
install -D 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 -D 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"
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/nvidia-suspend.service "${pkgdir}/usr/lib/systemd/system/nvidia-suspend.service"
install -Dm644 systemd/system/nvidia-hibernate.service "${pkgdir}/usr/lib/systemd/system/nvidia-hibernate.service"
install -Dm644 systemd/system/nvidia-resume.service "${pkgdir}/usr/lib/systemd/system/nvidia-resume.service"
install -D systemd/system-sleep/nvidia "${pkgdir}/usr/lib/systemd/system-sleep/nvidia"
install -D systemd/nvidia-sleep.sh "${pkgdir}/usr/bin/nvidia-sleep.sh"
# 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-470xx-utils.sysusers" "${pkgdir}/usr/lib/sysusers.d/$pkgname.conf"
install -Dm644 "${srcdir}/nvidia-470xx.rules" "$pkgdir"/usr/lib/udev/rules.d/60-nvidia-470xx.rules
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"
create_links
}
kernel-6.4.patch content:
From 4981428cda825b415eea60313f71bf386cc9f7e1 Mon Sep 17 00:00:00 2001
From: Joan Bruguera <joanbrugueram@gmail.com>
Date: Sat, 25 Feb 2023 10:57:26 +0000
Subject: [PATCH] Tentative fix for NVIDIA 470.199.02 driver for Linux 6.4-rc1
---
nvidia-drm/nvidia-drm-drv.c | 5 +++++
1 file changed, 5 insertions(+)
--- a/nvidia-drm/nvidia-drm-drv.c
+++ b/nvidia-drm/nvidia-drm-drv.c
@@ -20,6 +20,7 @@
* DEALINGS IN THE SOFTWARE.
*/
+#include <linux/version.h>
#include "nvidia-drm-conftest.h" /* NV_DRM_AVAILABLE and NV_DRM_DRM_GEM_H_PRESENT */
#include "nvidia-drm-priv.h"
@@ -873,9 +874,13 @@
nv_drm_driver.dumb_create = nv_drm_dumb_create;
nv_drm_driver.dumb_map_offset = nv_drm_dumb_map_offset;
+// Rel. commit "drm: remove dumb_destroy callback" (Christian König, 26 Jan 2023)
+// NB: No resources are leaked, the kernel releases the same resources by default
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0)
#if defined(NV_DRM_DRIVER_HAS_DUMB_DESTROY)
nv_drm_driver.dumb_destroy = nv_drm_dumb_destroy;
#endif /* NV_DRM_DRIVER_HAS_DUMB_DESTROY */
+#endif
#endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */
}
--
2.40.1
@cysp74 hey bro, can you gimme some instructions to reinstall this driver applying this patch you mentioned? Thanks
@SoftExpert: Actually this patch made for current aur package version and implemented the patch you referred. Making patch for 470.199.02 is much easier, try to adopt this aur pack to make changes.
Pinned Comments
SoftExpert commented on 2025-02-09 10:20 (UTC)
For the beginners in need of assistance, first take a look at this recommended guide https://github.com/korvahannu/arch-nvidia-drivers-installation-guide - maybe it helps to solve the issues your are having with this version of the driver.