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)只要以上四项保持一致,并安装好gcc、make、elfutils-libelf-devel等编译依赖,NVIDIA 驱动通常都可以顺利完成安装。
