今天,我安装了 Ubuntu 的软件更新。然后重启时,我始终没有进入登录屏幕。屏幕上有东西一直在闪烁,但速度太快,看不清它在说什么。
能够从另一台计算机进行 ssh,dmesg 显示:“API 不匹配:客户端的版本为 384.111,但此内核模块的版本为 384.90。请确保此内核模块和所有 NVIDIA 驱动程序组件具有相同的版本。”
既然我的更新是通过软件更新程序进行的,怎么会发生这种不匹配的情况?似乎有人发布了内核未预料到的驱动程序,或者发生了其他错误。
我该如何解决?
谢谢。
答案1
我能够解决这个问题。
事实证明,虽然我通过“软件更新程序”更新了系统,但我实际上仍在运行旧版 4.8 版内核。uname -r 向我显示了我正在运行的版本。安装较新的内核 4.13 并重新启动后,它忽略了新版本,继续在 4.8 下启动。更新 grub,然后重新启动,并在 grub 菜单上看到 4.13 版本,所以我选择了它。然后,在它出现后,我像以前一样应用了 NVIDIA 安全更新,这次成功了。
答案2
这种情况很常见,尤其是在安装新的 Nvidia 驱动程序时遇到错误时。
基本原因是,每当您安装新的 nvidia 驱动器(通过“sudo apt-get install nvidia-xxxx”)时,DKMS 都应该启动并更新 initrd 文件。并且它只会更新最新的“uname -r”版本。如果遇到错误,initrd 将不会更新,您必须自己手动执行此操作。
您可以通过查看 /lib/modules 并搜索新安装的 nvidia 驱动程序来验证这一点,旧的驱动程序仍然存在于 initrd 文件中(通过 lsinitramfs 命令),显然版本会有差异。
有关详细信息,请参阅本文:
答案3
我遇到了同样的问题,我在这里发布了我的解决方案。
在我的情况下,NVRM 版本是440.100
,驱动程序版本是460.32.03
。我的驱动程序已更新 sudo apt install caffe-cuda
,我没有注意到那个时间,但我从 进行了检查/var/log/apt/history.log
。按照我刚刚使用的 NVRM 版本sudo apt install nvidia-driver-440
,但它安装了 450.102,我不知道为什么它安装了其他版本并nvidia-smi
显示450.102.04
。
无论如何,重新启动我的电脑后,包括 cuda 在内的一切都运行正常。
我没有移除/清除任何与 nvidia 驱动程序相关的内容。版本460.32.03
已通过运行自动卸载sudo apt install nvidia-driver-440