And by the way, the build triggered by a dpkg-reconfigure nvidia-kernel-dkms
is failing for kernel 5.14.0-1-amd64
:
Building initial module for 5.14.0-1-amd64
Error! Bad return status for module build on kernel: 5.14.0-1-amd64 (x86_64)
Consult /var/lib/dkms/nvidia-current/470.57.02/build/make.log for more information.
After a look at /var/lib/dkms/nvidia-current/470.57.02/build/make.log it seems we have a recurring error:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h: In function ‘nv_sleep_ms’:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h:217:18: error: ‘struct task_struct’ has no member named ‘state’; did you mean ‘__state’?
217 | current->state = TASK_INTERRUPTIBLE;
| ^~~~~
| __state
In file included from /var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-linux.h:25,
from /var/lib/dkms/nvidia-current/470.57.02/build/nvidia/nv-pat.c:14:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h: In function ‘nv_sleep_ms’:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h:217:18: error: ‘struct task_struct’ has no member named ‘state’; did you mean ‘__state’?
217 | current->state = TASK_INTERRUPTIBLE;
| ^~~~~
| __state
In file included from /var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-linux.h:25,
from /var/lib/dkms/nvidia-current/470.57.02/build/nvidia/nv-p2p.c:14:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h: In function ‘nv_sleep_ms’:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h:217:18: error: ‘struct task_struct’ has no member named ‘state’; did you mean ‘__state’?
217 | current->state = TASK_INTERRUPTIBLE;
| ^~~~~
| __state
In file included from /var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-linux.h:25,
from /var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-pci.h:15,
from /var/lib/dkms/nvidia-current/470.57.02/build/nvidia/nv-pci.c:13:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h: In function ‘nv_sleep_ms’:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h:217:18: error: ‘struct task_struct’ has no member named ‘state’; did you mean ‘__state’?
217 | current->state = TASK_INTERRUPTIBLE;
| ^~~~~
| __state
In file included from /var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-linux.h:25,
from /var/lib/dkms/nvidia-current/470.57.02/build/nvidia/nv-usermap.c:14:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h: In function ‘nv_sleep_ms’:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h:217:18: error: ‘struct task_struct’ has no member named ‘state’; did you mean ‘__state’?
217 | current->state = TASK_INTERRUPTIBLE;
| ^~~~~
| __state
In file included from /var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-linux.h:25,
from /var/lib/dkms/nvidia-current/470.57.02/build/nvidia/nv-i2c.c:16:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h: In function ‘nv_sleep_ms’:
/var/lib/dkms/nvidia-current/470.57.02/build/common/inc/nv-time.h:217:18: error: ‘struct task_struct’ has no member named ‘state’; did you mean ‘__state’?
217 | current->state = TASK_INTERRUPTIBLE;
| ^~~~~
I had to make the change in /usr/src/nvidia-current-470.57.02/common/inc/nv-time.h
but of course, it breaks the build for the old 5.10 kernel unless using some #ifdef. And taking into account the fact that there is no pci_dev pointer anymore in struct drm_device
(check file /usr/src/linux-headers-5.14.0-1-common/include/drm/drm_device.h
). I can provide a patch if you want, it allows building Nvidia drivers from sources but still, the issue reported above remains.