1.问题现象
- 环境:Ubuntu 22.04
- 系统提示Software Update,更新Kernel后,重启系统,发现分辨率异常,执行nvidai-smi,提示NVIDIA-SMI
has failed because it couldn’t communicate with the NVIDIA driver.
2.问题原因
- 系统更新内核后,内核版本与Nvidia 驱动版本不兼容导致
3.解决思路
- 更新驱动,以适配新内核版本 降低内核,以适配显卡驱动
笔者因为系统部分软件对Nvidia驱动版本有要求,且不确定更新驱动后能否适配新内核版本,因此采用方案2;
因具体软硬环境和系统版本差异,此方案不具有通用性,仅供参考。
3.1 查看当前内核版本
- 终端执行 uname -a 或 uname -mrs,下图内核版本为5.19.0;
说明:此图为降低内核版本后截的,更新版本后为6.2.0,此处仅作展示
3.2 使用dkms查看更新内核前,显卡驱动与内核对应关系\
- dkms status 显卡驱动为:525.60.11 内核版本为:5.19.0
3.3 查看系统已安装内核
- dpkg --get-selections | grep linux-image 可以看到,当前install 了5.19.0 与
6.2.0两个内核版本
3.4 查看grub.cfg 文件
- gedit /boot/grub/grub.cfg
grub.cfg为系统引导文件,笔者装了双系统,可以在grub.cfg中看到5.19.0,6.2.0两个版本的启动引导配置,及Windows启动引导。
下图中,menuentry 中 ubuntu默认引导为6.2.0内核版本,但在下方submenu ‘Advanced options
for Ubuntu’ 中可以看到5.19.0的版本
3.5 重启系统
- grub引导,选择Advanced options for Ubuntu选项 选择5.19版本启动; 查看nvidia-smi
3.6 卸载高版本内核
- 目前的方法是从Advanced选项,选择低版本内核进行引导,若选择Ubuntu选项,还是进入6.2版本,因此需卸载高版本,或在grub.cfg中将5.19的引导设置为Ubuntu默认。
本文选择直接卸载高版本。 - sudo apt-get remove 内核名称
3.7 再次查看grub.cfg文件
- 默认Ubuntu引导已更新为5.19.0内核版本
参考:https://blog.youkuaiyun.com/weixin_43180456/article/details/132790058