Open DAC324 opened 2 years ago
396 series requires kernel 5.3 or older, 5.1 being the recommended version for best compatibility. 5.10 is too new.
396 series requires kernel 5.3 or older, 5.1 being the recommended version for best compatibility. 5.10 is too new.
According to PKGBUILD
, the latest kernel to work with the 396
driver series appears to be 5.7
:
if (( $(vercmp "$_kernel" "5.7") >= 0 )); then
_kernel57="1"
_whitelist57=( 396* 410* 415* 418* 430* 435* 440* )
fi
But the patches for kernels up to 5.7
also do not work flawlessly. There are many hunks rejected by patch
.
The patch used to apply on previous 396 series drivers but it didn't result in working modules afaik. It was added to the allowed list only because the patch applied (likely on some vulkan dev build that supported transform feedback, more recent than mainline .18), and while I remember getting things to work on 5.3, it was never tested successfully on initial 5.4 release and never tested at all beyond that. After 150+ revisions of 5.4 at this point, things may be even deeper frogged now than at release.. I have added some notes in the initial selector when you call makepkg to clarify what should be expected compatibility wise, especially on the older versions, but ultimately those dinosaur drivers should be removed altogether as they serve no real purpose.
but ultimately those dinosaur drivers should be removed altogether as they serve no real purpose.
I don't think so. There are quite a lot of older computers equipped with Nvidia Fermi GPUs, and why should we toss them in the bin if they are still working? I am currently writing this on an ancient Lenovo ThinkCentre M91p, equipped with a Geforce GTX 560 card.
Interestingly enough, this card runs happily with the even older driver 390
, under the latest kernel 5.16-rc6
:)
That's the thing. We're are not supporting legacy hardware because 340 and 390 are made for that, are still maintained by Nvidia, and are working well. 396 is and had been abandoned for a long while now.
The patch used to apply on previous 396 series drivers but it didn't result in working modules afaik.
Tk-Glitch gave an important hint. Indeed, it looks like some of the updates required for kernels beyond 5.4 have been applied to the 390 driver, rather than to 396. Thus, we have the somewhat weird situation that the source files for 390 are newer than those for 396 despite of their version number being higher.
I just did an experiment: Extracted the 390.147 archive, applied the usual patch to the sources to have them running with kernel 5.16, and then copied the entire kernel
directory over my 396.18 sources, overwriting all the files in the 396.18 kernel
directory.
As a result, it was possible to build 396.18 modules against the kernel 5.16 headers, and they apparently even loaded.
Unfortunately, Nvidia fails to properly maintain their online documentation. For example, the list of supported products for the 396.18 driver on https://www.nvidia.com/Download/driverResults.aspx/133571/en-us mentions the GeForce GTX 560 to be supported:
GeForce 500 Series: GeForce GTX 590, GeForce GTX 580, GeForce GTX 570, GeForce GTX 560 Ti, GeForce GTX 560 SE, GeForce GTX 560, GeForce GTX 555, GeForce GTX 550 Ti, GeForce GT 545, GeForce GT 530, GeForce GT 520, GeForce 510
But the driver itself refuses to load:
[ 30.891] (WW) NVIDIA(0): The NVIDIA GeForce GTX 560 GPU installed in this system is [ 30.891] (WW) NVIDIA(0): supported through the NVIDIA 390.xx Legacy drivers. Please [ 30.891] (WW) NVIDIA(0): visit http://www.nvidia.com/object/unix.html for more [ 30.891] (WW) NVIDIA(0): information. The 396.18 NVIDIA driver will ignore this [ 30.891] (WW) NVIDIA(0): GPU. Continuing probe... [ 30.891] (EE) No devices detected.
Hello, The heading of this package claims that it is possible to build drivers from version 396 up to the latest version. Unfortunately, compiling driver 396.18 fails: