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


16

每次有内核更新时,nvidia图形驱动程序都会停止工作,因为没有有效的内核模块。

为新内核“重新编译” nvidia模块的ubuntu方法是什么?

不应该自动完成吗?我正在遇到错误?

Answers:


5

如果已将NVIDIA驱动程序作为ubuntu软件包安装,则应在每次内核升级后自动更新。

您可以使用Additional Drivers仪表板上的工具来安装打包的驱动程序,也可以安装软件包nvidia-current

如果您直接从他们的网站上安装了nvidia驱动程序,则在安装此软件包之前将其删除可能是明智的选择-我不确定它在检测冲突方面的性能如何。

如果您是从ubuntu信息库中安装了该软件包,则可以尝试使用它进行重新配置,dpkg-reconfigure但是我怀疑构建nvidia模块是通过安装新内核来触发的,否则我不知道如何触发它。传统的卸载和重新安装可能会很好地工作(sudo apt-get remove nvidia-current; sudo apt-get install nvidia-current)。


我通过Ubuntu软件包安装了nvidia驱动程序。但是更新内核并没有触发我的nvidia模块的重新编译。无论如何,谢谢您的提示。
fazineroso 2012年

4

对我来说,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更新。


4

安装NVIDIA二进制驱动程序后,可能尚未安装dkms软件包。Dkms确保每次更新内核时,都会重新编译支持该内核的模块:

sudo apt-get install dkms

之后,您可能需要重新安装NVIDIA二进制驱动程序,并允许在安装过程中使用DKMS,因为它需要向其注册。


我遇到了相同的问题,只是dkms在阅读此答案后才意识到自己尚未安装。
yaobin

3

如果您只想重建内核模块,那么您可能只想执行

sudo apt-get install --reinstall nvidia-current

如果您已安装nvidia-current,或已安装nvidia-331,则此工作可以完成:

sudo apt-get install --reinstall nvidia-331

无需添加存储库或安装新软件:-)


1

请注意,既不建议安装内核升级,也不建议从官方不支持的存储库中安装驱动程序!仅当您知道自己在做什么时,请按照以下说明自行承担风险!

如果您安装的内核比当前的官方Ubuntu存储库(例如内核3.4或3.5)更早,则仅重新安装nvidia驱动程序可能不会成功。

到目前为止,我发现让nvidia驱动程序再次工作的唯一方法是在存储库中添加以下ppa。在终端中输入:

sudo add-apt-repository ppa:xorg-edgers/ppa

之后,执行sudo apt-get updatesudo apt-get install nvidia-current

这应该够了吧。如果不是,请再运行一次sudo apt-get upgrade

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.