在centos7上卸载和安装 NVIDIA 驱动程序

2024-04-18  本文已影响0人  可能性之兽

重启服务器的时候后遇到一个坑爹问题

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

image.png image.png

步骤 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 文件

上一篇 下一篇

猜你喜欢

热点阅读