更新内核后如何更新 nvidia 模块?

更新内核后如何更新 nvidia 模块?

每次内核更新时,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}

您现在应该能够使用新内核启动

相关内容