在 18.04 中每次内核升级后都缺少 nvidia 模块

s.i*_*s79 6 nvidia kernel 18.04

每次内核升级后,当我重新启动时,我只会看到一个空白屏幕

看起来专有的 nvidia 内核模块不会自动重新编译

我必须启动到恢复模式并执行

dpkg-reconfigure nvidia-dkms-415
Run Code Online (Sandbox Code Playgroud)

之后一切都很好,直到下一次升级。

我猜系统中有些东西搞砸了,最初我尝试从 nvidia 安装 nvidia 驱动程序,但最终将其删除并只使用了 ubuntu 驱动程序。

任何提示如何整理我的系统?我不想重新安装。

须藤 dkms 状态:

Error! Could not locate dkms.conf file.  
File:  does not exist.
Run Code Online (Sandbox Code Playgroud)

ls /var/lib/dkms

dkms_dbversion  nvidia
Run Code Online (Sandbox Code Playgroud)

ls /var/lib/dkms/nvidia/

410.78  415.27  kernel-4.15.0-39-generic-x86_64  kernel-4.15.0-45-generic-x86_64
Run Code Online (Sandbox Code Playgroud)

须藤 ubuntu 驱动程序设备

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==  
modalias : pci:v000010DEd00001B81sv00001028sd00003301bc03sc00i00  
vendor   : NVIDIA Corporation  
model    : GP104 [GeForce GTX 1070]  
driver   : nvidia-driver-390 - third-party free  
driver   : nvidia-driver-415 - third-party free recommended  
driver   : nvidia-driver-396 - third-party free  
driver   : nvidia-driver-410 - third-party free  
driver   : xserver-xorg-video-nouveau - distro free builtin
Run Code Online (Sandbox Code Playgroud)

我正在使用这个ppa:

deb-src http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic main  
Run Code Online (Sandbox Code Playgroud)

后

sudo apt purge 'nvidia.*'
sudo apt install nvidia-driver-415

output:   
...
Setting up nvidia-dkms-415 (415.27-0ubuntu0~gpu18.04.2) ...
update-initramfs: deferring update (trigger activated)
INFO:Enable nvidia
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/lenovo_thinkpad
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/dell_latitude
Loading new nvidia-415.27 DKMS files...
Building for 4.15.0-45-generic
Building for architecture x86_64
Building initial module for 4.15.0-45-generic
Secure Boot not enabled on this system.
Done.

nvidia:
Running module version sanity check.

Good news! Module version 415.27 for nvidia.ko
exactly matches what is already found in kernel 4.15.0-45-generic.
DKMS will not replace this module.
You may override by specifying --force.

nvidia-modeset.ko:
Running module version sanity check.

Good news! Module version 415.27 for nvidia-modeset.ko
exactly matches what is already found in kernel 4.15.0-45-generic.
DKMS will not replace this module.
You may override by specifying --force.

nvidia-drm.ko:
Running module version sanity check.

Good news! Module version 415.27 for nvidia-drm.ko
exactly matches what is already found in kernel 4.15.0-45-generic.
DKMS will not replace this module.
You may override by specifying --force.

nvidia-uvm.ko:
Running module version sanity check.

Good news! Module version  for nvidia-uvm.ko
exactly matches what is already found in kernel 4.15.0-45-generic.
DKMS will not replace this module.
You may override by specifying --force.

depmod...

DKMS: install completed.
Setting up nvidia-driver-415 (415.27-0ubuntu0~gpu18.04.2) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for initramfs-tools (0.130ubuntu3.6) ...
update-initramfs: Generating /boot/initrd.img-4.15.0-45-generic
Run Code Online (Sandbox Code Playgroud)

现在:

dkms 状态

nvidia, 415.27, 4.15.0-45-generic, x86_64: installed
Run Code Online (Sandbox Code Playgroud)

Pil*_*ot6 9

你dkms的坏了。我建议以这种方式修复它:

sudo rm -r /var/lib/dkms/nvidia
sudo apt install --reinstall dkms
sudo apt purge 'nvidia.*'
sudo apt install nvidia-driver-415
Run Code Online (Sandbox Code Playgroud)

这将清理 dkms 目录,dkms.conf正确创建和安装驱动程序。