每次内核更新时,nvidia 图形驱动程序都会停止工作,因为没有有效的内核模块。
ubuntu 中为新内核‘重新编译’ nvidia 模块的方法是什么?
难道它不应该自动完成吗?我遇到了错误?
答案1
如果您已将 NVIDIA 驱动程序安装为 ubuntu 包,则每次内核升级后它都会自动更新。
您可以使用仪表板中的工具来安装打包的驱动程序Additional Drivers
,或者安装程序包nvidia-current
。
如果您直接从其网站安装了 nvidia 驱动程序,那么在安装此软件包之前将其删除可能是明智的 - 我不确定它在检测冲突方面有多好。
如果您已从 ubuntu 存储库安装了该软件包,则可以尝试使用 重新配置它,dpkg-reconfigure
但我怀疑构建 nvidia 模块是通过安装新内核触发的,否则我不确定如何触发它。传统的卸载和重新安装可能会有效(sudo apt-get remove nvidia-current; sudo apt-get install nvidia-current
)。
答案2
对我来说,dpkg-reconfigure 会使用最新内核重建 Nvidia 驱动程序。然后需要重新启动才能生效。下面的示例使用较旧的 nvidia-304-updates。
sudo dpkg-reconfigure nvidia-304-updates
zz-dkpg-reconfigure-nvidia
编辑:我设法通过编写在内核更新后运行的脚本来实现自动化
#!/bin/bash
#
# Reconfigure nvidia driver
DRIVER=nvidia-304-updates
dpkg-reconfigure $DRIVER > /var/log/dpkg-reconfigure-nvidia.log 2>&1
exit 0
我通过运行安装了上述脚本
sudo install zz-dkpg-reconfigure-nvidia /etc/kernel/postinst.d
适用于我的 Ubuntu 14.04 内核 3.13.0-29 至 3.13.0-36 更新。
答案3
当您安装了 NVIDIA 二进制驱动程序时,您可能尚未安装 dkms 包。陣容确保每次更新内核时,支持它的模块都会重新编译:
sudo apt-get install dkms
您可能需要随后重新安装 NVIDIA 二进制驱动程序,并允许在设置期间使用 DKMS,因为它需要在其中注册。
答案4
使用“Ubuntu Mainline Kernel Installer”安装新内核时,它不会自动为 nvidia 专有驱动程序重建内核模块。
首先确保您已为 nvidia 驱动程序安装了 dkms 包。包名称为nvidia-dkms-{DRIVER VERSION}
(即:对于版本,530
其名称为nvidia-dkms-530
)。
从主线安装程序安装新内核后,运行以下命令来重建 nvidia 内核模块。
sudo dpkg-reconfigure nvidia-dkms-{DRIVER VERSION}
您现在应该能够使用新内核启动