通过 Nvidia ppa 安装和更新 Ubuntu 16.04 nvidia-304 专有驱动程序(适用于 GT 620)
该系统运行良好 6 个月,但最近由于无法构建 nvidia-304 更新而崩溃(无法通过登录屏幕)。任何有关如何解决此问题的建议将不胜感激
apt purge nvidia* && apt install nvidia-304
.........
[output truncated for clarity]
Loading new nvidia-304-304.137 DKMS files...
First Installation: checking all kernels...
Building only for 4.15.0-24-generic
Building for architecture x86_64
Building initial module for 4.15.0-24-generic
Error! Bad return status for module build on kernel: 4.15.0-24-generic (x86_64)
Consult /var/lib/dkms/nvidia-304/304.137/build/make.log for more information.
Setting up nvidia-opencl-icd-304 (304.137-0ubuntu0~gpu16.04.1) ...
Setting up nvidia-settings (396.24-0ubuntu0~gpu16.04.1) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Processing triggers for initramfs-tools (0.122ubuntu8.11) ...
update-initramfs: Generating /boot/initrd.img-4.15.0-24-generic
tail -20 /var/crash/nvidia-304.0.crash
nvl->rc_timer.data = (unsigned long) nv;
^
cc1: some warnings being treated as errors
scripts/Makefile.build:332: recipe for target '/var/lib/dkms/nvidia-304/304.137/build/nv.o' failed
make[3]: *** [/var/lib/dkms/nvidia-304/304.137/build/nv.o] Error 1
Makefile:1552: recipe for target '_module_/var/lib/dkms/nvidia-304/304.137/build' failed
make[2]: *** [_module_/var/lib/dkms/nvidia-304/304.137/build] Error 2
NVIDIA: left KBUILD.
nvidia.ko failed to build!
Makefile:261: recipe for target 'module' failed
make[1]: *** [module] Error 1
makefile:59: recipe for target 'module' failed
make: *** [module] Error 2
DKMSKernelVersion: 4.15.0-24-generic
Date: Fri Jul 6 23:06:48 2018
DuplicateSignature: dkms:nvidia-304:304.137-0ubuntu0~gpu16.04.1:/var/lib/dkms/nvidia-304/304.137/build/nv.c:3032:5: error: implicit declaration of function ‘init_timer’ [-Werror=implicit-function-declaration]
Package: nvidia-304 304.137-0ubuntu0~gpu16.04.1
PackageVersion: 304.137-0ubuntu0~gpu16.04.1
SourcePackage: nvidia-graphics-drivers-304
Title: nvidia-304 304.137-0ubuntu0~gpu16.04.1: nvidia-304 kernel module failed to build
tail -20 /var/lib/dkms/nvidia-304/304.137/build/make.log
/var/lib/dkms/nvidia-304/304.137/build/nv.c:3032:5: error: implicit declaration of function ‘init_timer’ [-Werror=implicit-function-declaration]
init_timer(&nvl->rc_timer);
^
/var/lib/dkms/nvidia-304/304.137/build/nv.c:3033:28: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
nvl->rc_timer.function = nv_kern_rc_timer;
^
/var/lib/dkms/nvidia-304/304.137/build/nv.c:3034:18: error: ‘struct timer_list’ has no member named ‘data’
nvl->rc_timer.data = (unsigned long) nv;
^
cc1: some warnings being treated as errors
scripts/Makefile.build:332: recipe for target '/var/lib/dkms/nvidia-304/304.137/build/nv.o' failed
make[3]: *** [/var/lib/dkms/nvidia-304/304.137/build/nv.o] Error 1
Makefile:1552: recipe for target '_module_/var/lib/dkms/nvidia-304/304.137/build' failed
make[2]: *** [_module_/var/lib/dkms/nvidia-304/304.137/build] Error 2
NVIDIA: left KBUILD.
nvidia.ko failed to build!
Makefile:261: recipe for target 'module' failed
make[1]: *** [module] Error 1
makefile:59: recipe for target 'module' failed
make: *** [module] Error 2
从来没有找到这个问题的答案,除了这是一个相当广泛的问题。清除 nvidia 驱动程序以依赖开源 nouveau 驱动程序使系统恢复正常运行
有类似的问题。您需要为 Bionic 打补丁的驱动程序。
事实证明,该驱动程序被标记为 20.04 fossa 的 EOL。
因此,如果您有该系列的显卡,我也建议不要使用最新的 Linux。对我来说最新的工作是内核 4.15,它与 Ubuntu Bionic Beaver 18.04 一起提供。如果您安装 18.04,则默认内核是 5.4,因此必须降级。
进一步研究的资源在这里最有帮助:
https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-304/+bug/1737750
链接对我帮助很大
创建我自己的修补二进制文件。如果您不需要太多细节就需要它 - 可以在这里找到 https://sites.google.com/view/tpanj/files/nvidia-legacy