Package Details: opencl-nvidia-470xx 470.256.02-7

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: 100
Popularity: 1.18
First Submitted: 2021-10-31 00:50 (UTC)
Last Updated: 2024-11-10 08:39 (UTC)

Dependencies (2)

Required by (67)

Sources (11)

Latest Comments

1 2 3 4 5 6 .. 41 Next › Last »

Facni commented on 2024-12-03 16:21 (UTC)

nvidia-drm.modeset=1 isn't the only thing you need to add to /etc/default/grub when using kernel 6.12. You need to add too nvidia-drm.fbdev=1. This guide may be helpful https://github.com/korvahannu/arch-nvidia-drivers-installation-guide

plasmadrive commented on 2024-11-28 08:53 (UTC)

@SoftExpert @Sinyria @Joan Bruguera your efforts are very much appreciated.

SoftExpert commented on 2024-11-10 08:50 (UTC) (edited on 2024-11-11 16:38 (UTC) by SoftExpert)

@lighterowl - Thanks for the heads-up, you really brightened our days !

@all: The good news is that :

  1. the patch kindly provided by Joan Bruguera allows to compile the kernel modules with 6.12-RC6 and 6.12-RC7; hopefully there will be no breaking changes in the final release !

  2. the Nvidia modules 470xx work just fine when booting in 6.12-RC6 and 6.12-RC7

What you need to know and do: in the kernel boot parameters you need to make sure there is nvidia-drm.modeset=1; this is done usually in the /etc/default/grub file. Joan has expressly stated it is necessary to set the flag.

So, a big and warm thank you to Joan Bruguera, Philip Müller and all the others that have contributed so that we can have this version of the driver a bit longer with us !

Please test thoroughly and share with us your findings !

  • edited to add RC7, it's fresh out.

lighterowl commented on 2024-11-05 21:50 (UTC) (edited on 2024-11-05 21:54 (UTC) by lighterowl)

The patches in https://github.com/NVIDIA/open-gpu-kernel-modules/issues/708#issuecomment-2377038258 and https://gist.github.com/joanbm/a6d3f7f873a60dec0aa4a734c0f1d64e have been reported as fixing the compile error with Linux 6.12.

Haven't tried them myself but the comments are rather hopeful.

Sinyria commented on 2024-11-05 01:38 (UTC)

@Sithuk: I would recommend using the linux-lts 6.6 kernel until December 2026 if you need 470xx to keep working. After that, you must either continue without security updates or upgrade your hardware, sadly.

Sithuk commented on 2024-11-03 07:16 (UTC)

@Softexpert @Sinyria :

Thank you for your efforts on maintaining this driver. Given the comment about 6.12 not working with the driver, what is the recommended approach to stop system updates resulting in a conflict in future?

There seem to be the following options.

  1. Use linux-lts. Currently on 6.6, but will be gradually updated so will eventually result in a conflict? Currently received security updated until 31st December 2026.

  2. Use one of the specific long term kernels in AUR, so the version is locked in, e.g. linux-lts61. No longer receives security updates. https://wiki.archlinux.org/title/Kernel#kernel.org_kernels

  3. Pin either the current kernel (6.11) or pin linux-lts?

What option or approach would you recommend?

Would pinning be done by putting the following in the "/etc/pacman.conf"?

To pin the currently installed non-lts kernel, e.g. 6.11:

pacman.conf

IgnorePkg = linux IgnorePkg = linux-headers

To pin the lts kernel, if installed:

pacman.conf

IgnorePkg = linux-lts IgnorePkg = linux-lts-headers

Thanks

SoftExpert commented on 2024-11-02 10:10 (UTC)

Heads-up : the upcoming kernel 6.12 does not spare this version of the driver; I just tested the RC5 and DKMS is not able to build the kernel module.

If you feel motivated to help other, please try to find patches that might make it work; we will test them and include them in a new release of the package if they are reliable enough...

...

 CC [M]  /var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-fb.o
  CC [M]  /var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-modeset.o
/var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-drv.c:171:6: error: ‘const struct drm_mode_config_funcs’ has no member named ‘output_poll_changed’
  171 |     .output_poll_changed = nv_drm_output_poll_changed,
      |      ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-drv.c:171:28: error: initialization of ‘struct drm_atomic_state * (*)(struct drm_device *)’ from incompatible pointer type ‘void (*)(struct drm_device *)’ [-Wincompatible-pointer-types]
  171 |     .output_poll_changed = nv_drm_output_poll_changed,
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-drv.c:171:28: note: (near initialization for ‘nv_mode_config_funcs.atomic_state_alloc’)
make[3]: *** [scripts/Makefile.build:229: /var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-drv.o] Error 1
make[3]: *** Waiting for unfinished jobs....
/var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-crtc.c: In function ‘plane_req_config_update’:
/var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-crtc.c:89:9: warning: unused variable ‘ret’ [-Wunused-variable]
   89 |     int ret = 0;
      |         ^~~
/var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-crtc.c: In function ‘nv_drm_plane_atomic_set_property’:
/var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-crtc.c:371:32: warning: unused variable ‘nv_drm_plane_state’ [-Wunused-variable]
  371 |     struct nv_drm_plane_state *nv_drm_plane_state =
      |                                ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-modeset.c: In function ‘__will_generate_flip_event’:
/var/lib/dkms/nvidia/470.256.02/build/nvidia-drm/nvidia-drm-modeset.c:96:23: warning: unused variable ‘primary_plane’ [-Wunused-variable]
   96 |     struct drm_plane *primary_plane = crtc->primary;
      |                       ^~~~~~~~~~~~~
make[2]: *** [/usr/lib/modules/6.12.0-rc5-1-MANJARO/build/Makefile:1936: /var/lib/dkms/nvidia/470.256.02/build] Error 2
make[1]: *** [Makefile:224: __sub-make] Error 2
make[1]: Leaving directory '/usr/lib/modules/6.12.0-rc5-1-MANJARO/build'
make: *** [Makefile:80: modules] Error 2

Sinyria commented on 2024-10-19 13:45 (UTC) (edited on 2024-10-19 13:46 (UTC) by Sinyria)

judging from comments by SoftExpert and Alexey104, your best bet of running this stably and without many freezes are the LTS kernels. as of writing, there are 2, 6.1 and 6.6, that both see their support end at Dec 31st 2026. So unless things get bricked in other regions of your distro, in systemd for example, thats probably the EoL date for your old nvidia hardware then. I have since moved on to an older AMD gpu, and like SoftExpert, it has been a smooth and flawless experience so far.

Sinyria commented on 2024-10-19 13:41 (UTC)

@cotton: the only thing that matters is the version number of the kernel used. lts is just an older kernel version that was decided to receive longer support of certain security and other fixes than the others.

so in short: yea, until the support for any lts kernel with low enough version number runs out, you will be able to use this driver with those old kernels.

after that, it will be the same as using an old windows or android beyond support end: you will have the risk of being attacked through unfixed bugs and security issues if your device has any outside contact. for certain devices, that you use isolated and offline, that might not even be an issue.

cotton commented on 2024-10-19 10:46 (UTC)

So, will switching to nvidia-lts and linux-lts work, at least in the near term? Or is switching to nouveau the only option? [I'm using a GTX 650 Ti card]