问题重述
ubuntu20.04和windows10双系统中,之前ubuntu装了nvidia显卡驱动470能成功使用。后续几天没用电脑,重新开机后,命令行输入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.
尝试
根据搜索,主要有3种解决思路。
方法一:
查找已安装的驱动版本,xxx为版本号:
ls /usr/src | grep nvidia
sudo apt-get install dkms
sudo dkms install -m nvidia -v xxx
nvidia-smi
问题没有得到解决,执行 sudo dkms install -m nvidia -v xxx 时报错。
方法二:
参考:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver问题排查_hi,world的博客-CSDN博客
确认是否电脑更新了内核版本:
sudo dpkg --get-selections | grep linux-image // 查看已安装版本
uname -sr // 查看当前使用版本
重启电脑,在系统选择页面选择“ubuntu高级选项”,选择老版本进入。
问题依然没有得到解决,nvidis-smi还是未正常显示。
方法三:
参考:nvidia-smi报错 解决方法【转载】_czafrost的博客-CSDN博客
发现之前电脑装的驱动本来是470版本的,现在变成了455,考虑卸载驱动再重装:
sudo apt-get remove --purge nvidia*
sudo ubuntu-drivers autoinstall
但在执行第一句时报错,显示没有驱动,不能卸载。
问题解决
方法一时,执行 sudo dkms install -m nvidia -v xxx 命令时报错:
Error! Your kernel headers for kernel 5.15.0-41-generic cannot be found.
Please install the linux-headers-5.15.0-41-generic package,
or use the --kernelsourcedir option to tell DKMS where it's located
根据第2行,安装内核:
sudo apt-get install linux-headers-5.15.0-41-generic
报错:
根据提示打开make.log文件,有:
根据提示,进入 /usr/src下对应内核目录下,执行:
sudo make oldconfig && make prepare
如果出现权限问题则直接 sudo su,再进行后续操作。
根据报错信息:
执行:
sudo apt-get install flex
sudo apt-get install bison
再次make,有:
暂未解决上述问题,此时再次重新卸载驱动,可以卸载成功,并按推荐安装:
sudo apt-get remove --purge nvidia*
sudo ubuntu-drivers autoinstall
卸载成功!根据提示设置密码,重启电脑。
参考:ubuntu20.04安装完NVIDIA驱动后使用nvidia-smi报错_Allen-Duke的博客-CSDN博客_nvidia-smi ubuntu
,在蓝屏界面选择“enroll mok”,“contine”,“yes”,输入密码reboot。
驱动成功显示: