重启服务器的时候后遇到一个坑爹问题
Failed to initialize NVML: Driver/library version mismatch
root@localhost maolp]# dmesg | grep NVRM
[ 4.254828] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 515.65.01 Wed Jul 20 14:00:58 UTC 2022
[ 361.285790] NVRM: API mismatch: the client has the version 515.43.04, but
NVRM: this kernel module has the version 515.65.01. Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.
NVIDIA 驱动组件之间的版本不匹配。具体来说, NVIDIA 内核模块(即由 kmod-nvidia 提供)的版本是 515.65.01,但有一些其它 NVIDIA 驱动组件(可能是用户空间的库或应用程序)的版本是 515.43.04。
NVIDIA 驱动系统包括内核级驱动(内核模块,如 nvidia.ko)和用户级驱动组件(如库文件和用户空间工具)。这些组件需要版本一致,以确保它们能正确交互。如果这些组件的版本不一致,就会出现 API 不匹配的错误,这会导致驱动程序无法正常工作。
找来找去,只能重装驱动
步骤 1: 卸载现有的 NVIDIA 驱动
先移除系统上已安装的任何 NVIDIA 驱动程序。这是确保新的驱动安装不会受到旧驱动残留文件影响。
kmod-nvidia 是一个专为 Linux 系统设计的软件包,用于提供 NVIDIA 显卡的内核模块。这个包是 NVIDIA 显卡用户在某些 Linux 发行版中安装和使用 NVIDIA 显卡驱动的一部分。它主要用于基于 RPM 的 Linux 发行版,如 CentOS、Red Hat Enterprise Linux(RHEL)、和 Fedora 等。
yum remove kmod-nvidia-*
这条命令会卸载所有名字以 kmod-nvidia-
开头的 NVIDIA 驱动包。使用 yum
这个包管理器是因为它是 CentOS 和 RHEL 最常用的包管理工具。
步骤 2: 重启计算机
卸载驱动程序之后,重启计算机非常关键:
reboot
这样做可以确保所有 NVIDIA 驱动相关的内核模块都被卸载,系统在启动时不会加载旧的驱动模块,为新驱动的安装提供一个干净的环境。
步骤 3: 重新下载驱动
https://www.nvidia.cn/Download/Find.aspx?lang=cn
步骤 4: 运行 NVIDIA 驱动安装程序
不过我虽然上面写了要下载,但是安装的过程神奇的找到了我以前安装版本 515.65.01,之前没有删,将其重装就是
下载需要的 NVIDIA 驱动版本的 .run
文件,这通常可以在 NVIDIA 的官方网站找到。确保下载与你的 GPU 和 Linux 发行版兼容的驱动版本。
chmod +x NVIDIA-Linux-x86_64-515.65.01.run
然后执行安装脚本:
比如我的./NVIDIA-Linux-x86_64-515.65.01.run 在/下面
./NVIDIA-Linux-x86_64-515.65.01.run --no-opengl-files
这个命令启动 NVIDIA 驱动的安装过程。使用 --no-opengl-files
选项是为了防止 NVIDIA 安装程序覆盖系统现有的 OpenGL 文件
网友评论