最新更新后,我的 Nvidia 驱动程序出现问题。现在,每次我重新启动机器时,两个不同版本之间都会出现一些冲突,我必须在 X 启动之前重新安装驱动程序。以下是日志文件中的消息:
Jun 11 20:28:20 localhost kernel: [ 73.033810] NVRM: API mismatch: the client has the version 270.41.19, but
Jun 11 20:28:20 localhost kernel: [ 73.033811] NVRM: this kernel module has the version 270.29. Please
Jun 11 20:28:20 localhost kernel: [ 73.033812] NVRM: make sure that this kernel module and all NVIDIA driver
Jun 11 20:28:20 localhost kernel: [ 73.033813] NVRM: components have the same version.
有任何想法吗?
答案1
Nvidia 驱动程序有两个部分,内核部分和用户空间部分。他们必须匹配。通常,当您安装 Nividia 驱动程序时,它会将内核部分构建为模块。您可能没有安装两个版本的 Nvidia 驱动程序,但存在旧模块,或者您正在从 grub 启动旧内核。查看是否有可以从 grub 中选择的较新内核,该内核可能具有较新的内核部分。
答案2
内核模块和用户态驱动程序部分之间发生这种不匹配的一种方式是当您的发行版使用 ramdisk 启动时。如果是这种情况,您需要重新运行grub-install
(或类似操作),以便在系统启动时加载新的内核模块。
答案3
我同意上面 Keith 的观点 - 随着时间的推移,您可能已经安装了两个不同的 nvidia 驱动程序。我建议的补救措施是:
- 确保您已更新到您的发行版的最新内核
- 确保您已经安装了 nvidia 内核模块编译所需的内核头文件和任何其他依赖包
- 重新启动(到最新的内核)
- 安装“dkms”软件包(如果适用于您的发行版)
- 下载最新稳定的 nvidia 驱动程序,对其进行“完整”安装(安装用户空间驱动程序和内核模块),并在回答安装程序问题时启用对 dkms 的支持
- 确保安装报告“成功”,然后重新启动
此过程将为您提供最新的内核、最新的 nvidia 驱动程序,并将启用 dkms 自动重建功能,以允许系统在未来的内核升级中自动构建和部署适当的 nvidia 内核模块。