背景
以Ubuntu20.04为例,Linux内核版本被自动升级至5.15.0-122-generic,原Linux内核版本5.15.0-105-generic,Nvidia驱动版本535.154.05。
1、查看当前已安装的linux内核
查看当前正在使用的内核版本
uname -r
查看已安装的系统内核引导
dpkg --get-selections | grep linux-headers
dpkg --list|grep linux-headers
查看已安装的系统内核镜像
dpkg --get-selections | grep linux-image
dpkg --list|grep linux-image
2、查看显卡驱动版本
nvidia-smi
3、原因分析
linux联网后,会不定期自动更新内核,所以才会存在nvidia驱动版本与linux内核版本不一致,这时要么安装最新版本的nvidia驱动、要么降低linux内核版本。
4、方法一:安装最新版本的nvidia驱动
到nvidia官网自行下载最新驱动:下载最新官方 NVIDIA 驱动
5、方法二:降低linux内核版本
5.1 安装旧版linux内核
在有网环境下,可使用以下步骤安装旧版内核
sudo apt-get install linux-image-5.15.0-105-generic
sudo apt-get install linux-headers-5.15.0-105-generic
无网环境,请从有网的相同配置备机下载相关离线包后传入本机安装(离线包下载及安装参考此链接 ubuntu apt一键下载所有依赖包-CSDN博客),离线包如下:
linux-headers-5.15.0-105-generic_5.15.0-105.115~20.04.1_amd64.deb
linux-image-5.15.0-105-generic_5.15.0-105.115~20.04.1_amd64.deb
可能需要的依赖包:
linux-hwe-5.15-headers-5.15.0-105_5.15.0-105.115~20.04.1_all.deb
linux-image-unsigned-5.15.0-105-generic_5.15.0-105.115~20.04.1_amd64.deb
linux-modules-5.15.0-105-generic_5.15.0-105.115~20.04.1_amd64.deb
5.2 切换默认内核,更新一下启动引导
查看引导名称
cat /boot/grub/grub.cfg |grep menuentry
修改引导
vi /etc/default/grub
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-105-generic"
更新引导
sudo update-grub
重启电脑生效
sudo reboot
查看内核变更是否生效
uname -r
5.3 禁止内核更新
sudo apt-mark hold linux-image-5.15.0-105
sudo apt-mark hold linux-image-5.15.0-105-generic
echo "linux-image-5.15.0-105-generic hold" | dpkg --set-selections
5.4 删除高版本内核
删除不需要的内核,注意不要删除当前正在使用的内核,否则会导致系统无法登录。
sudo apt-get purge linux-image-5.15.0-122
sudo apt-get purge linux-image-5.15.0-116
...
5.5 卸载驱动,重新安装
卸载旧驱动
sudo /usr/bin/nvidia-uninstall
sudo apt-get --purge remove nvidia-*
sudo apt-get purge nvidia*
sudo apt-get purge libnvidia*
查看是否卸载干净
sudo dpkg --list | grep nvidia-*
重新安装驱动
sh NVIDIA-Linux-x86_64-535.154.05.run
参考链接:
GPU驱动安装,CUDA安装相关问题_there appears to already be a driver installed on -CSDN博客