我正在尝试从我的电脑上彻底删除 nvidia 驱动程序,但我不知所措。我想我一定是以奇怪的方式安装了它们,因为似乎什么都不起作用。
要删除 nvidia 驱动程序,我运行:
sudo apt-get remove --purge nvidia-*
接下来我卸载了所有 nvidia 模块:
sudo rmmod nvidia_uvm
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia
效果很好。
为了检查 nvidia 是否消失,我运行了以下命令:
dpkg -l | grep -i nvidia
dkms status | grep nvidia
apt list --installed | grep nvidia
所有这些都没有返回任何结果,到目前为止一切都很好。
但是当我重新启动并运行时:
lsmod | grep nvidia
我得到:
nvidia_drm 45056 0
nvidia_modeset 860160 1 nvidia_drm
nvidia 13139968 1 nvidia_modeset
这是一个严重的问题,因为这些“幻影”模块妨碍了我使用 nvidia。每当我安装新版本的 nvidia 时,它似乎都会加载这些旧模块。然后当我运行时,/usr/bin/nvidia-srm
我收到错误Failed to initialize NVML: Driver/library version mismatch
。
由于此问题,xorg 无法加载
答案1
我找到了解决方案。简而言之:我正在启动一个旧内核。
我使用一个名为 Grub Customizer 的程序,它允许我输入自定义启动项。我忘记了我启动的主 grub 项有一个对内核版本的硬编码引用4.13.0-36-generic
。一旦我将该引用更新为最新版本4.13.0-43-generic
并重新启动,我的问题就解决了。