当我运行nvidia-smi时,我得到以下消息:

初始化NVML失败:驱动程序/库版本不匹配

一小时前,我收到了同样的消息,卸载了我的CUDA库,我能够运行nvidia-smi,得到以下结果:

之后,我从NVIDIA官方页面下载了cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb,然后简单地:

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

现在我已经安装了CUDA,但我得到了前面提到的不匹配错误。


一些可能有用的信息:

运行cat /proc/driver/nvidia/version得到:

NVRM version: NVIDIA UNIX x86_64 Kernel Module  378.13  Tue Feb  7 20:10:06 PST 2017
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)

我正在运行Ubuntu 16.04.2 LTS (Xenial Xerus)。

内核发行版是4.4.0-66-generic。


当前回答

对我来说,有一个更简单的解决办法。在Fedora 33上,尝试以下操作:

rpm -qa | grep -i nvidia | grep f32

您应该有两个从以前版本的Fedora OpenGL列出的包。删除这些并重新启动。

删除并重新安装整个Nvidia软件包集是多余的。

其他回答

我有这个问题,其他的治疗方法都不管用。错误消息是不透明的,但是检查dmesg的输出是关键:

[   10.118255] NVRM: API mismatch: the client has the version 410.79, but
           NVRM: this kernel module has the version 384.130.  Please
           NVRM: make sure that this kernel module and all NVIDIA driver
           NVRM: components have the same version.

然而,我已经完全删除了384版本,并删除了所有剩余的内核驱动程序nvidia-384*。但即使重启后,我还是收到了这个。看到这一点意味着内核仍然编译到384号引用,但它只找到410号。所以我重新编译了内核:

uname -a # Find the kernel it's using

Linux blah 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu May 17 12:56:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux


update-initramfs -c -k 4.13.0-43-generic # Recompile it
reboot

然后就成功了。

在删除384个文件后,我仍然有384个文件: /var/lib/dkms/nvidia-XXX/XXX.YY/4.13.0-43-generic / x86_64 /模块 /lib/modules/4.13.0-43-generic /内核/驱动程序

我建议使用locate命令(默认没有安装),而不是每次都搜索文件系统。

这些答案对我不起作用:

我的回答 Comzyh的回答 user9170的回答

dmesg

NVRM: API mismatch: the client has the version 418.67, but
NVRM: this kernel module has the version 430.26.  Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.

卸载旧驱动程序418.67,安装新驱动程序430.26(下载NVIDIA-Linux-x86_64-430.26.run):

sudo apt-get --purge remove "*nvidia*"
sudo /usr/bin/nvidia-uninstall
chmod +x NVIDIA-Linux-x86_64-430.26.run
sudo ./NVIDIA-Linux-x86_64-430.26.run
[ignore abort]

cat / proc /司机/ nvidia /版本

NVRM version: NVIDIA UNIX x86_64 Kernel Module  430.26  Tue Jun  4 17:40:52 CDT 2019
GCC version:  gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)

我必须重新启动内核并删除之前安装的所有包(在第一次安装期间)。请确保删除所有的包,即使在删除包后使用下面的命令:

sudo apt-get --purge remove "*nvidia*"

像“libtinfo6:i386”这样的包不会被删除。

我使用的是Ubuntu 20.04 (Focal Fossa)和Nvidia-driver-440。为此,您必须删除下图所示的所有包。

所有需要删除的包的列表:

如图所示,确保您正在安装的包的大小正确。Nvidia-driver-440的内存为207 MB。如果它更少,这意味着您还没有删除所有的包。

我已经重新安装了Nvidia驱动程序:在root模式下运行这些命令:

Systemctl隔离多用户。target Modprobe -r nvidia-drm 重新安装Nvidia驱动:chmod +x Nvidia - linux -x86_64 - 41010 .57.run Systemctl start graphic .target

最后检查一下nvidia-smi

感谢:

如何在Ubuntu-16.04/18.04操作系统上为RTX 2080 Ti GPU安装Nvidia驱动和CUDA-10.0 如何卸载内核模块'nvidia-drm'?

我在Ubuntu 16.04上使用Nvidia -348包(Ubuntu 16.04上的最新Nvidia版本)时也遇到了这种情况。

不过,我可以通过专有GPU驱动程序PPA安装nvidia-390来解决这个问题。

因此,在Ubuntu 16.04上解决上述问题的方法是这样做的:

Sudo add-apt-repository ppa:graphics-drivers/ppa Sudo apt-get update 安装nvidia-390

注意:本指南假设Ubuntu安装干净。如果您安装了以前的驱动程序,可能需要重新启动以重新加载所有内核模块。