nvidia-smi:Failed to initialize NVML: Driver/library version mismatch
- nvidia-smi报错,驱动和库版本不对应
原因
-
之前禁用了ubuntu内核更新,忘记禁止libnvidia-compute包更新了,今天ubuntu软件更新时,没有注意到更新了libnvidia-compute,可以通过/var/log/apt/history.log文件查看更新记录
cat /var/log/apt/history.log #输出结果如下: Start-Date: 2023-08-01 08:49:29 Commandline: aptdaemon role='role-commit-packages' sender=':1.111' Install: firefox:amd64 (1:1snap1-0ubuntu2, automatic), libnvidia-compute-525:amd64 (525.125.06-0ubuntu0.22.04.1, automatic) ...
-
查看当前的驱动版本
cat /proc/driver/nvidia/version #输出结果如下: NVRM version: NVIDIA UNIX x86_64 Kernel Module 525.105.17 Tue Mar 28 18:02:59 UTC 2023 GCC version: gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)
-
可以看到驱动版本为525.105.17,lib文件升级到了525.125.06
解决办法
- 方法一没有成功,方法二没有验证,仅记录下思路,方法三成功解决问题
方法一
-
卸载掉libnvidia-compute-525.125.06,然后在把525.105.17装上去
-
可是没有找到对应的安装包,只搜索到了125的安装包 😭
jing@jing:~$ sudo apt search libnvidia-compute-525* [sudo] jing 的密码: 正在排序... 完成 全文搜索... 完成 libnvidia-compute-510/jammy-updates,jammy-security,now 525.125.06-0ubuntu0.22.04.1 amd64 [已安装,自动] Transitional package for libnvidia-compute-525 libnvidia-compute-515/jammy-updates,jammy-security 525.125.06-0ubuntu0.22.04.1 amd64 Transitional package for libnvidia-compute-525 libnvidia-compute-515-server/jammy-updates,jammy-security 525.125.06-0ubuntu0.22.04.1 amd64 Transitional package for libnvidia-compute-525-server libnvidia-compute-520/jammy-updates,jammy-security 525.125.06-0ubuntu0.22.04.1 amd64 Transitional package for libnvidia-compute-525 libnvidia-compute-525/jammy-updates,jammy-security,now 525.125.06-0ubuntu0.22.04.1 amd64 [已安装,自动] NVIDIA libcompute package libnvidia-compute-525-server/jammy-updates,jammy-security 525.125.06-0ubuntu0.22.04.1 amd64 NVIDIA libcompute package
-
去网站上有没有搜索到,到此,方法一破产
方法二
-
参考博客
sudo rmmod nvidia
-
不幸的是我看到这篇博客的时候,已经直接把驱动给卸载重装了
方法三
-
直接卸载驱动,然后重新装一下(比较费劲,如果可以还是试一下方法二)
-
sudo apt purge nvidia*
-
重启一下
-
此处下载Nvidia官方脚本
-
给脚本可执行权限
-
如果是有桌面的话,直接运行可能会报错
You appear to be running an X server; please exit X before installing
-
可以使用tty模式或者使用ssh连接进行无桌面安装
-
此处使用的是ssh连接,这样有个好处,如果进不去桌面,可以通过ssh进行操控😎,ssh连接可以参考虑这篇博客
-
ssh连接之后,首先关闭桌面
#ubuntu22.04的桌面为gdm3 sudo /etc/init.d/gdm3 stop
-
运行安装脚本,安装32位计算库,不配置Xorg
-
到此处就安装完成,nvidia-smi可完整输出
jing@jing:~$ nvidia-smi Tue Aug 1 19:09:27 2023 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 525.105.17 Driver Version: 525.105.17 CUDA Version: 12.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA GeForce ... Off | 00000000:10:00.0 Off | N/A | | 35% 59C P2 133W / 170W | 11110MiB / 12288MiB | 83% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 2241 G /usr/lib/xorg/Xorg 4MiB | | 0 N/A N/A 11629 C python 11100MiB | +-----------------------------------------------------------------------------+
-
此时再启动桌面
sudo /etc/init.d/gdm3 restart
-
到此完结🚀🚀🚀🚀🚀
后续处理
- 保留libnvidia-compute软件包,不再更新
jing@jing:~$ sudo apt-mark hold libnvidia-compute-525
[sudo] jing 的密码:
libnvidia-compute-525 设置为保留。