NVIDIA – New 580.xx driver OK with Kernel 6.19..
NVIDIA have just released a new version of the 580.xx driver – 580.126.09 – and details etc. are here: https://www.nvidia.com/en-us/drivers/details/261243/
This now compiles/loads/runs OK with Kernel 6.19 (tested with 6.19-rc5):
…………………….
CC [M] .module-common.o
LD [M] nvidia.ko
CC [M] nvidia-uvm.mod.o
LD [M] nvidia-uvm.ko
CC [M] nvidia-modeset.mod.o
LD [M] nvidia-modeset.ko
CC [M] nvidia-drm.mod.o
LD [M] nvidia-drm.ko
CC [M] nvidia-peermem.mod.o
LD [M] nvidia-peermem.ko
make[2]: Leaving directory ‘/home/rgadsdon/NVIDIA-Linux-x86_64-580.126.09/kernel’
make[1]: Leaving directory ‘/usr/src/linux-6.19-rc5’
# nvidia-smi
Wed Jan 14 00:38:56 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.126.09 Driver Version: 580.126.09 CUDA Version: 13.0 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce GTX 980M Off | 00000000:01:00.0 On | N/A |
| N/A 37C P0 25W / 1000W | 16MiB / 8192MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
So, GTX cards are still supported – for the time being… During previous testing, I had noticed that warning/error messages were already referring to the 580 series of drivers as ‘legacy’…
It should be noted that the older 470 series ‘legacy’ driver was last updated in June 2024… I have also found the old Nouveau driver to be of unpredictable quality, and the new Nova driver does not support the ‘old’ GTX cards..
I have moved almost all my GTX systems to RTX now, apart from the HP8770W which still has a GTX980M… Hardware compatibility is an issue here, but there do seem to be some MXM 3.0b RTX3000 cards available, but – so far – untested…? It might well be less of a problem to just get a newer RTX-equipped laptop, but I see this as a challenge…
Robert Gadsdon. January 13th 2026..

Hello, I’m also testing this new 580 driver. It installed fine on kernel 6.19-rc5, but I can’t start the X server. “startx” throws an error. I have a computer with two graphics cards, one Intel and the other Nvidia GTX 1050Ti. Well, for now I’ve reverted to kernel 6.17.13, that’s the situation. Regards.
Both NVIDIA driver versions 580.126.09 and 590.48.01 run normally on various preview builds of kernel 6.19 under Fedora. However, they completely fail to compile and install on various versions of kernel 6.19 under Ubuntu. I really don’t know what the Ubuntu administrator is thinking!
This is the reason I always use the standard kernel.org version of the Kernel on all my systems – the distros always have their own patches, sometimes backported from later versions, that can cause issues, and make it impossible to verify everything..
Failing to build on Debian Sid / kernel.org version with following error :
nvidia/nv-imp.c: In function ‘nv_imp_get_import_data’:
nvidia/nv-imp.c:77:5: warning: this use of ‘defined’ may not be portable [-Wexpansion-to-defined]
77 | #if IMP_SUPPORT_FUNCTIONS_PRESENT
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-imp.c:77:1: warning: this use of ‘defined’ may not be portable [-Wexpansion-to-defined]
77 | #if IMP_SUPPORT_FUNCTIONS_PRESENT
| ^~~~~~~~~~~~~~~~~~~
nvidia/nv-imp.c: In function ‘nv_imp_enable_disable_rfl’:
nvidia/nv-imp.c:115:5: warning: this use of ‘defined’ may not be portable [-Wexpansion-to-defined]
115 | #if IMP_SUPPORT_FUNCTIONS_PRESENT
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-imp.c:115:1: warning: this use of ‘defined’ may not be portable [-Wexpansion-to-defined]
115 | #if IMP_SUPPORT_FUNCTIONS_PRESENT
| ^~~~~~~~~~~~~~~~~~~
nvidia/nv-imp.c: In function ‘nv_imp_icc_get’:
nvidia/nv-imp.c:174:5: warning: this use of ‘defined’ may not be portable [-Wexpansion-to-defined]
174 | #if ICC_SUPPORT_FUNCTIONS_PRESENT && NV_SUPPORTS_PLATFORM_DEVICE
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-imp.c: In function ‘nv_imp_icc_put’:
nvidia/nv-imp.c:249:5: warning: this use of ‘defined’ may not be portable [-Wexpansion-to-defined]
249 | #if ICC_SUPPORT_FUNCTIONS_PRESENT
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-imp.c: In function ‘nv_imp_icc_set_bw’:
nvidia/nv-imp.c:308:5: warning: this use of ‘defined’ may not be portable [-Wexpansion-to-defined]
308 | #if ICC_SUPPORT_FUNCTIONS_PRESENT && NV_SUPPORTS_PLATFORM_DEVICE
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] nvidia/nv-mmap.o
CC [M] nvidia/nv-p2p.o
CC [M] nvidia/nv-pat.o
CC [M] nvidia/nv-procfs.o
CC [M] nvidia/nv-usermap.o
CC [M] nvidia/nv-vm.o
CC [M] nvidia/nv-vtophys.o
CC [M] nvidia/os-interface.o
CC [M] nvidia/os-mlock.oCC [M] nvidia/os-pci.o
CC [M] nvidia/os-registry.o
CC [M] nvidia/os-usermap.o
CC [M] nvidia/nv-modeset-interface.o
CC [M] nvidia/nv-pci-table.o
CC [M] nvidia/nv-kthread-q.o
nvidia/nv-vm.c:412:11: warning: no previous prototype for ‘nv_init_page_pools’ [-Wmissing-prototypes]
412 | NV_STATUS nv_init_page_pools(void) { return NV_OK; }
| ^~~~~~~~~~~~~~~~~~
nvidia/nv-vm.c:413:6: warning: no previous prototype for ‘nv_destroy_page_pools’ [-Wmissing-prototypes]
413 | void nv_destroy_page_pools(void) {}
| ^~~~~~~~~~~~~~~~~~~~~
nvidia/nv-vm.c:414:14: warning: no previous prototype for ‘nv_mem_pool_alloc_pages’ [-Wmissing-prototypes]
414 | unsigned int nv_mem_pool_alloc_pages(nv_page_pool_t *mem_pool, nv_alloc_t *at) { return 0; }
| ^~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-vm.c:415:11: warning: no previous prototype for ‘nv_mem_pool_free_pages’ [-Wmissing-prototypes]
415 | NV_STATUS nv_mem_pool_free_pages(nv_page_pool_t *mem_pool, nv_alloc_t *at) { return NV_OK; }
| ^~~~~~~~~~~~~~~~~~~~~~
CC [M] nvidia/nv-memdbg.o
CC [M] nvidia/nv-report-err.o
nvidia/nv-mmap.c: In function ‘nv_vma_enter_locked’:
nvidia/nv-mmap.c:867:24: error: ‘VMA_LOCK_OFFSET’ undeclared (first use in this function); did you mean ‘VGA_CRTC_OFFSET’?
867 | NvU32 tgt_refcnt = VMA_LOCK_OFFSET;
| ^~~~~~~~~~~~~~~
VGA_CRTC_OFFSET
nvidia/nv-mmap.c:867:24: note: each undeclared identifier is reported only once for each function it appears in
nvidia/nv-mmap.c: In function ‘nv_vma_start_write’:
nvidia/nv-mmap.c:919:9: error: too many arguments to function ‘__is_vma_write_locked’; expected 1, have 2
919 | if (__is_vma_write_locked(vma, &mm_lock_seq))
| ^~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
In file included from /usr/src/linux-headers-6.19.0-amd64/arch/x86/include/asm/uaccess.h:12,
from /usr/src/linux-headers-6.19.0-amd64/include/linux/uaccess.h:13,
from /usr/src/linux-headers-6.19.0-amd64/include/linux/sched/task.h:13,
from /usr/src/linux-headers-6.19.0-amd64/include/linux/sched/signal.h:9,
from ././common/inc/nv-lock.h:33,
from ././common/inc/nv-linux.h:32,
from nvidia/nv-mmap.c:27:
/usr/src/linux-headers-6.19.0-amd64/include/linux/mmap_lock.h:282:20: note: declared here
282 | static inline bool __is_vma_write_locked(struct vm_area_struct *vma)
| ^~~~~~~~~~~~~~~~~~~~~
CC [M] nvidia/nv-rsync.o
CC [M] nvidia/nv-msi.o
nvidia/nv-mmap.c:928:42: error: ‘VMA_LOCK_OFFSET’ undeclared (first use in this function); did you mean ‘VGA_CRTC_OFFSET’?
928 | detached = refcount_sub_and_test(VMA_LOCK_OFFSET, &vma->vm_refcnt);
| ^~~~~~~~~~~~~~~
| VGA_CRTC_OFFSET
CC [M] nvidia/nv-caps.o
CC [M] nvidia/nv-caps-imex.o
make[4]: *** [/usr/src/linux-headers-6.19.0-amd64/scripts/Makefile.build:289: nvidia/nv-mmap.o] Error 1
make[4]: *** Attente des tâches non terminées….
make[3]: *** [/usr/src/linux-headers-6.19.0-amd64/Makefile:2092: .] Error 2
make[2]: *** [/usr/src/linux-headers-6.19.0-amd64/Makefile:248: __sub-make] Error 2
make[2] : on quitte le répertoire « /var/lib/dkms/nvidia/590.48.01/build »
make[1]: *** [Makefile:248: __sub-make] Error 2
make[1] : on quitte le répertoire « /usr/src/linux-headers-6.19.0-amd64 »
make: *** [Makefile:138: modules] Error 2
# exit code: 2
# elapsed time: 00:00:08
Driver nvidia/590.48.01 …..