Ubuntu20.04更新部分软件后RTX 3080显卡无法正常调用的问题解决

  • Post author:
  • Post category:其他


硬件环境:

GPU: RTX 3080

CPU: AMD 5800 8 core 16 thread

Operating System: Ubuntu20.04



一. 问题溯源:更新软件后无法调用

1.事情起因如下,我当时使用的是Ubuntu20.04的系统,

查看系统当前使用内核:

uname -r

发现是:

5.13.0-30-generic

本以为我的问题应该不是显卡驱动的问题,我通过nvidia-smi是可以显示出显卡使用信息的,只不过显卡无法调用而已,最后证明

确实需要重装显卡驱动!


查看推荐的显卡驱动版本:

ubuntu-drivers devices

在这里插入图片描述



二. 重装显卡驱动



2.1 卸载原有显卡驱动

先删除旧驱动:

sudo apt-get remove --purge nvidia*

安装一些需要的库:

sudo apt-get update
sudo apt-get install dkms build-essential linux-headers-generic



2.2 禁用nouveau

sudo vim /etc/modprobe.d/blacklist.conf

打开配置文件,在最后加入:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off



2.3 禁用nouveau内核模块

echo options nouveau modeset=0
sudo update-initramfs -u

重启,如果运行下面的命令无报错,说明禁用成功:

lsmod | grep nouveau



2.4 关闭用户图形界面

sudo systemctl set-default multi-user.target
sudo reboot



2.5 开启用户图形界面

sudo systemctl set-default graphical.target
sudo reboot



2.6 图形化安装(对我不可行)

网上有人通过图形化选择额外驱动对显卡驱动进行安装可以成功,我试了发现不行,输入

nvidia-smi

结果还是显示找不到驱动,说明这条路走不通.



2.7 PPA源驱动安装(可行)

1.首先查看电脑最适合(推荐)的显卡驱动版本:

在这里插入图片描述

我的显示推荐510版本的驱动.

到NVIDIA官网还可以查看显卡驱动版本对应的CUDA:

在这里插入图片描述

  1. 配置PPA:
sudo add-apt-repository ppa:graphics-drivers/ppa

3.更新:

sudo apt-get update

4.安装显卡驱动:

自动安装推荐版本:

sudo ubuntu-drivers install
 sudo apt install nvidia-driver-510

提示正在安装:

在这里插入图片描述

安装块结束会提示你为Secure boot设置密码,如果前面没有

禁用secure boot

,则会在安装过程中会提示设置一个密码,在重启时需要输入密码验证以禁用secure boot,重启后

会出现蓝屏

,这时候不能直接选择comnue,而应该按下按键,选择Enroll MOK, 确认后在下一个选项中选择continue,接着输入安装驱动时设置的密码,开机。


建议在BIOS中禁用Secure boot,否则你每次都得输入密码,要不然桌面重启后都会卡进一个图标很大的Ubuntu桌面!


5.安装mesa包:

sudo apt-get install mesa-common-dev

6.完成安装后重启:

sudo reboot



三.重启后显卡驱动确认

1.如果Ubuntu显示器开启夜灯模式,夜灯如果功能正常,初步说明驱动应该是安装上了:

在这里插入图片描述

2.输入:

nvidia-smi 

发现已经可以找到:

在这里插入图片描述

3.测试pytorch-GPU是否正常工作:

import torch
flag = torch.cuda.is_available()
print(flag)

运行后发现:

在这里插入图片描述

表明一切回归正常!



四. 删除错误内核

查看所有内核版本:

dpkg --get-selections | grep linux

在这里插入图片描述

删掉这个linux-modules-5.13.0-35-generic版本的内核:

sudo apt-get remove linux-modules-5.13.0-35-generic

这样每次启动默认都是正确的内核版本了!



五.总结

1.这次还是因为手贱,点击了软件更新,虽然没有更新内核,只更新了几个lib包,结果显卡还是不能正常工作了,来来回回又是改内核,又是重装显卡驱动,最后得出了一个重要结论:

如果非必要,不要进行软件更新!


2.当然如果你疯狂地在底线边缘试探,请记得安装如上方法安装显卡驱动,一般显卡驱动重装了就好了!



版权声明:本文为m0_46339652原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。