admin管理员组

文章数量:1566992

问题情形:某天一如既往地打开电脑,突然发现笔记本双屏幕失效,屏幕亮度也无法调节。输入nvidia-smi后输出如下,判定为显卡驱动失效

NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

问题原因:Ubuntu在更新内核后不会自动切换到Nvidia显卡驱动,导致

	ls /usr/src | grep nvidia

可以正常显示显卡驱动版本号,而nvidia-smi无法识别显卡驱动。


解决办法(一):

  1. ls /usr/src | grep nvidia

输出

	nvidia-xxx.xxx.xx
	
	例如:nvidia-525.105.17

525.105.17即为本机的驱动版本

  1. 依次输入如下命令,重新载入nvidia驱动
	sudo dkms remove nvidia/xxx.xxx.xx --all
	sudo dkms install nvidia/xxx.xxx.xx -k $(uname -r)
	sudo update-initramfs -u

注意:如果内核更新了,需要输入命令uname -r并与sudo update-initramfs -u输出的结果核对,需要两个内核版本相同。

  1. 输入nvidia-smi,显卡驱动被成功识别

    重启后发现显卡功能恢复

解决办法(二):

  1. 输入dkms

如果显示命令不存在,则根据上面查到的nvidia版本号安装dkms

sudo apt install nvidia-utils-xxx

例如在上面查到的版本号是nvidia-525.105.17,则输入

sudo apt install nvidia-utils-525
  1. 查看nvidia是否被禁用
grep -r nvidia /etc/modprobe.d/* /lib/modprobe.d/*

查看输出有没有/lib/modprobe.d/blacklist-nvidia.conf这个文件。如果有,删掉

sudo mv /lib/modprobe.d/blacklist-nvidia.conf ~/
  1. 手动安装模块
sudo modprobe nvidia

到这没有问题的话,模块会自动加载,显卡也就自动生效辣

参考资料:https://forums.developer.nvidia/t/nvidia-smi-has-failed-because-it-couldn-t-communicate-with-the-nvidia-driver-after-updating-ubuntu-20-04/170985

本文标签: 显卡驱动双系统UbuntuNVIDIA