1. 问题描述
今天跑程序时,像往常一样输入
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.
经检索,利用一篇博文中的方法可解决大多数人的问题。遇到相同问题的,还没试过的可以试试:
https://blog.youkuaiyun.com/wjinjie/article/details/108997692
我试了之后,报了如下错误:
Error! Could not find module source directory.
咋办嘞,继续查原因吧,发现是系统内核自动更新,回退系统内核版本,以下是主要步骤:
2. 回退系统内核版本
2.1 查看当前系统内核
uname -a
2.2 查看系统现存的内核版本
grep menuentry /boot/grub/grub.cfg
2.3 查看显卡驱动对应的内核驱动
ls /var/lib/dkms/nvidia/
可以发现系统上有两个内核版本,一个是5.15.0-105
,一个是5.15.0-107
,而当前的显卡驱动需要的内核版本是5.15.0-105
,所以将内核版本从5.15.0-107
回退到5.15.0-105
即可。
2.4 更改系统内核版本
使用vim,修改文件:
sudo vim /etc/default/grub
将GRUB_DEFAULT=0
修改为GRUB_DEFAULT="1> 2"
(不同的机器,修改的内容不同)
为什么我的机器需要这么改呢?
可以看步骤2.2中的图,5.15.0-105
的序号(从0开始)位于一级目录(两个蓝框表示2个1级目录)的1
,二级目录的2
,所以需要改为"1> 2"
2.5 更新grub并重启系统
# 更新
sudo update-grub
# 重启
sudo reboot
2.6 重启后,查看当前系统内核
uname -a
我们发现,系统内核已更改
2.7 查看显卡详情
nvidia-smi
大功告成!!!
此时,最好同时禁止系统内核自动更新
、显卡自动更新
,详见另一篇博文https://blog.youkuaiyun.com/sdbyp/article/details/139606901