运行nvidia-smi后发现’NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver’,原因是linux内核自动更新导致的驱动版本和内核版本不匹配。
个人系统:
- ubuntu22.04
1. 解决驱动问题
1. 查看已安装内核:
dpkg --get-selections |grep linux-image
2. 查看正在使用的内核
uname -a
显示出来的这个内核版本和原本正确的不匹配,应该安装正确的。
3. 查找自己安装的显卡驱动版本号
ll /usr/src/
最后一行看到显卡驱动的版本是 535.146.02
4. 安装和显卡驱动匹配的内核
使用dkms工具
sudo apt-get install dkms
sudo dkms install -m nvidia -v 535.146.02
安装完成后运行
nvidia-smi
应该成功了
5.禁用ubuntu 的自动更新
5.1 文件修改
sudo gedit /etc/apt/apt.conf.d/10periodic
将其中的1都改为0
5.2 图形界面禁用,打开software & updates
,如下修改
5.3 命令行关闭内核更新
sudo apt-mark hold linux-image-generic linux-headers-generic
显示
linux-image-generic set on hold.
linux-headers-generic set on hold.
即正确
2.卸载不用的内核
2.1 查看当前内核
uname -a
2.2 查看所有内核
dpkg --get-selections |grep linux
install
是已经安装的内核deinstall
是已经移除但是没有完全删除的
2.3 移除无用内核
sudo apt-get remove linux-xxx-xxx
这样会让内核后边的install
变成deinstall
2.4 删除无用内核(已移除,但是还有显示)
- 想彻底移除但是不显示就:
sudo apt-get purge linux-xxx-xxx
2.5 更新所有内核版本
sudo update-grub