Kylin Server V10 安装 NVIDIA 驱动(解决 kernel-devel 版本不一致问题)

Kylin Server V10 安装 NVIDIA 驱动时因kernel-devel版本不一致导致安装失败的解决过程,同时包含驱动安装和卸载方法。

一、环境信息

系统版本:

cat/etc/os-release

例如:

NAME="Kylin Linux Advanced Server" VERSION="V10 (Halberd)"

查看当前运行内核:

uname-r

例如:

4.19.90-89.11.v2401.ky10.x86_64

二、安装驱动时报错

安装命令:

sudo./NVIDIA-Linux-x86_64-580.142.run\--kernel-source-path=/usr/src/kernels/$(uname-r)\--no-questions\--no-drm

报错:

ERROR: The kernel source path '/usr/src/kernels/4.19.90-89.11.v2401.ky10.x86_64' does not exist.

或者

ERROR: Unable to find the kernel source tree.

三、原因分析

NVIDIA 驱动需要编译内核模块,因此要求下面几个版本必须完全一致:

uname -r │ ▼ /lib/modules/<kernel-version> │ ▼ kernel-devel-<kernel-version> │ ▼ /usr/src/kernels/<kernel-version>

如果其中任意一个版本不同,就会导致驱动无法安装。

例如:

运行内核 4.19.90-89.11 kernel-devel 4.19.90-89.41

这种情况就一定会安装失败。


四、检查当前环境

查看内核版本

uname-r

查看已安装内核包

rpm-qa|grepkernel

正常应该类似:

kernel-4.19.90-89.11.v2401.ky10.x86_64 kernel-core-4.19.90-89.11.v2401.ky10.x86_64 kernel-devel-4.19.90-89.11.v2401.ky10.x86_64 kernel-modules-4.19.90-89.11.v2401.ky10.x86_64

查看源码目录

ls-ld/usr/src/kernels/$(uname-r)

例如:

drwxr-xr-x ... /usr/src/kernels/4.19.90-89.11.v2401.ky10.x86_64

查看 Makefile

ls/usr/src/kernels/$(uname-r)/Makefile

正常输出:

/usr/src/kernels/4.19.90-89.11.v2401.ky10.x86_64/Makefile

五、修复 kernel-devel 不匹配

如果发现安装的是其它版本,例如:

kernel-devel-4.19.90-89.41

先卸载:

yum remove kernel-devel kernel-headers

然后重新安装与当前内核一致的版本:

yuminstallkernel-devel-$(uname-r)

再次确认:

rpm-qa|grepkernel

确保:

kernel kernel-core kernel-devel kernel-modules

版本完全一致。


六、安装编译环境

安装 GCC、Make 等依赖:

yuminstall-ygccmakeelfutils-libelf-devel

验证:

gcc--versionmake--version

七、安装 NVIDIA 驱动

推荐执行:

sudo./NVIDIA-Linux-x86_64-580.142.run\--kernel-source-path=/usr/src/kernels/$(uname-r)\--no-questions\--no-drm

如果已经安装了匹配版本的kernel-devel,实际上也可以省略--kernel-source-path

sudo./NVIDIA-Linux-x86_64-580.142.run\--no-questions\--no-drm

安装程序会自动识别:

/usr/src/kernels/$(uname -r)

八、验证驱动

安装完成后执行:

nvidia-smi

正常会显示:

+-----------------------------------------------------------------------------+ | NVIDIA-SMI xxx.xx Driver Version: xxx.xx CUDA Version: xx.x | +-----------------------------------------------------------------------------+

说明驱动安装成功。


九、卸载 NVIDIA 驱动

方法一:使用安装包卸载(推荐)

进入驱动安装包目录:

sudo./NVIDIA-Linux-x86_64-580.142.run--uninstall

或者:

sudo./NVIDIA-Linux-x86_64-580.142.run-uninstall

安装程序会自动:

  • 删除驱动模块
  • 删除库文件
  • 恢复系统配置

方法二:使用 nvidia-uninstall

如果驱动已安装:

whichnvidia-uninstall

通常位于:

/usr/bin/nvidia-uninstall

执行:

sudonvidia-uninstall

即可完成卸载。


方法三:静默卸载

sudo./NVIDIA-Linux-x86_64-580.142.run\--uninstall\--no-questions

适用于自动化脚本。


十、常用排查命令

查看当前内核:

uname-r

查看源码目录:

ls/usr/src/kernels

查看内核包:

rpm-qa|grepkernel

查看模块目录:

ls/lib/modules

查看驱动版本:

cat/proc/driver/nvidia/version

查看 GPU:

nvidia-smi

查看模块是否加载:

lsmod|grepnvidia

查看安装日志:

cat/var/log/nvidia-installer.log

十一、总结

安装 NVIDIA 驱动时,最常见的问题就是内核版本与kernel-devel版本不一致。安装前建议先检查以下四项是否完全匹配:

uname -r │ ▼ /lib/modules/$(uname -r) │ ▼ kernel-devel-$(uname -r) │ ▼ /usr/src/kernels/$(uname -r)

只要以上四项保持一致,并安装好gccmakeelfutils-libelf-devel等编译依赖,NVIDIA 驱动通常都可以顺利完成安装。