(自用)记录一次历时三个月在Ubuntu20.04上安装显卡驱动的踩坑经历

1 篇文章 0 订阅
1 篇文章 0 订阅
本文详细记录了在Ubuntu系统中针对A100显卡进行驱动安装的全过程,包括卸载原有驱动、禁用nouveau、自动化安装、官方驱动安装、Ubuntu自带方法以及内核版本切换等步骤。尽管尝试多种方法,但作者仍遇到NVIDIA-SMI通信失败的问题,提示驱动未正确安装和运行。此外,文章还提到了RTX6000显卡的安装成功经验。
摘要由CSDN通过智能技术生成

对于A100显卡

1. 首先进行原有的驱动的卸载干净

sudo apt-get purge nvidia-cuda*
sudo apt-get purge nvidia-*
sudo apt-get purge remove "*cublas*" "cuda*" #卸载CUDA Toolkit

2. 彻底卸载干净驱动

sudo apt autoremove *nvidia*  #卸载所有和nvidia相关
sudo reboot

3. 进行以下操作,没有输出即可

如果是nouveau导致的失败,则禁用nouveau。如果电脑接着显示器,这个肯定失败。

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

在blacklist.conf末尾添加如下内容:

blacklist nouveau
options nouveau modeset=0

然后输入下面命令后,重启电脑:

sudo update-initramfs -u
lsmod | grep nouveau  #查询不到任何东西,就是对的

重启后,查询:

lsmod | grep nouveau  #查询不到任何东西,就是对的

4. 自动安装的方法
首先,你需要先查看一下系统的版本信息,Ubuntu的命令是

uname -a

接下来,检查是否有显卡驱动,方法是输入下面命令,看看是否出现GPU状态界面:

nvidia-smi

在这里插入图片描述
如果没有,就是自动化安装显卡,很快捷:

#自动化安装显卡驱动
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall
sudo reboot

不过对我而言,出现:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

5. 官方驱动安装的方法

先去官网查找对应的版本。
在这里插入图片描述

然后给驱动run文件赋予执行权限

sudo chmod a+x NVIDIA-Linux-x86_64-535.54.03.run

进行安装

sudo ./NVIDIA-Linux-x86_64-535.54.03.run -no-opengl-files -no-x-check -no-nouveau-check

只有禁用opengl这样安装才不会出现循环登陆的问题

-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件

但是我按照以上方法进行了安装,出现了问题,发表在了NVIDIA论坛。

6. Ubuntu自带的安装方法1

首先输入以下命令:

# 查看推荐版本
ubuntu-drivers devices

得到以下输出:

linux505@linux505-2288H-V5:~$ ubuntu-drivers devices
== /sys/devices/pci0000:64/0000:64:00.0/0000:65:00.0 ==
modalias : pci:v000010DEd000020B0sv000010DEsd0000134Fbc03sc02i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-470 - distro non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-525-server - distro non-free
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-525 - distro non-free
driver   : nvidia-driver-525-open - distro non-free
driver   : nvidia-driver-535 - distro non-free
driver   : nvidia-driver-535-server-open - distro non-free recommended
driver   : nvidia-driver-470-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

可以看到,这里我们不选用recommended的,且不选用open的,容易出现bug,我们选用这个进行安装:

# 安装
sudo apt-get install nvidia-driver-535-server nvidia-settings nvidia-prime
sudo apt-get install dkms
# 查看是否安装,会输出一个列表,找到类似nvidia-530.41.03
ll /usr/src/
# 版本号来自于列表中
sudo dkms install -m nvidia -v srv-535.54.03
# 重启
reboot

7. Ubuntu自带的方法2

在Ubuntu附加驱动中查看:
在这里插入图片描述
如图,我们直接选用535-server即可!
点击应用更改后reboot即可。
不过很遗憾,我上述方法都出现:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

8. 对于以上现象的解决尝试:

前提是已经bios已经关闭了安全启动

安装驱动程序后不重新启动

相关文章:
https://deeptalk.lambdalabs.com/t/nvidia-smi-has-failed-because-it-can-can-communication-with-the-nvidia-driver/148/8 是的,它确实需要重新启动才能启用驱动程序。但这对我不起作用。重新启动后出现相同的错误。

重新安装驱动程序或 CUDA 库

我脑海中浮现的另一个想法是无与伦比的驱动程序版本。也许驱动程序对于旧设备来说太新了,反之亦然。当您在网上搜索问题时,您可以找到许多声称这一点的帖子。
然后我尝试安装不同版本的驱动程序。 440 450 460
它们都不起作用,当您安装和卸载如此多版本的驱动程序时,系统可能会搞砸。
快速说明:不要在同一台计算机上安装和一起,否则会出现依赖问题,导致您在安装或卸载 Nvidia
相关软件包时都失败。nvidia-drivers-440nvidia-drivers-440-server

更新的内核与旧的 Nvidia 驱动程序不匹配

许多其他帖子说,如果您更新 Linux 内核,在旧内核期间安装的 Nvidia 驱动程序将与更新的内核不兼容。 解决方案是使用
use(动态内核模块支持)为驱动程序安装新的内核兼容文件,如下所示:dkms
sudo apt-get install dkms
sudo dkms install -m nvidia -v <driver_version>
可以通过命令找到驱动程序版本。whereis nvidia
但是,此解决方案也对我不起作用,因为即使是我的驱动程序也是在内核更新后安装的。

其他解决方案在我的情况下不起作用

有些人通过在BIOS中禁用“安全启动”来解决此问题。 安装仅适用于较旧的 CUDA 版本 (<=9.2)。
nvidia-cuda-toolkit

9. 更改版本内核(变成旧的)

首先查看当前内核版本:

`uname -r`

我的输出是:
5.4.0-148-generic

然后查看服务器启动内核的顺序

grep menuentry /boot/grub/grub.cfg

在这里插入图片描述
红色字体就是ubuntu系统目前所拥有的内核版本与启动顺序,menuentry起始的就是每一条。

比如我们要切换成 5.15.0-69-generic 这个,它在上图中的启动顺序是第3个。
终端运行命令 :

sudo gedit /etc/default/grub

在这里插入图片描述

GRUB_DEFAULT=0 修改为 GRUB_DEFAULT="1> 3"

注意:> 与7之间有个空格,接着保存并退出。

最后更新grub

sudo update-grub

接着重启服务器

sudo reboot

最后,重启后查看内核版本(uname -r)已修改成5.15.0-69-generic了。再运行nvidia-smi就正常了。

10. 可是,以上方法仍然对我不起作用,我还抓取了相关NVIDIA的安装日志,并把问题发布在了NVIDIA论坛这里。

希望能有大佬帮忙解决!

感激不尽!

对于RTX 6000显卡

使用上述方法7,即可成功安装!

在这里插入图片描述
在这里插入图片描述

参考博客:
https://blog.csdn.net/Thanours/article/details/104834536
https://blog.csdn.net/weixin_44124632/article/details/130471902?spm=1001.2014.3001.5506
https://blog.csdn.net/Thanlon/article/details/106125738
https://blog.csdn.net/weixin_44842237/article/details/127958306
https://blog.csdn.net/xulingling516/article/details/130675218?spm=1001.2014.3001.5506
https://en.dlyang.me/fixing-nvidia-smi-communication-error/

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值