共计 2300 个字符,预计需要花费 6 分钟才能阅读完成。
技术背景
在深度学习或图形计算场景中,NVIDIA 驱动与内核版本的匹配至关重要。CUDA 12.6 驱动要求 Linux 内核版本在 3.10 以上,而 CentOS 7 默认内核(3.10.0-1160)虽满足基础条件,但实际安装时常因 kernel-devel 版本偏移、Secure Boot 启用等问题导致失败。正确的驱动部署能确保 GPU 计算稳定性,避免后续 CUDA Toolkit 安装出现兼容性报错。

前置检查
-
确认 GPU 型号
执行以下命令检测 NVIDIA 显卡是否被系统识别:lspci | grep -i nvidia预期输出类似:
01:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1) -
检查内核版本
uname -r输出应为 3.10.0-xxxx.el7.x86_64 格式,记录完整版本号用于后续 kernel-devel 安装。
分步骤操作
禁用 Nouveau 驱动
-
创建黑名单配置文件
sudo vi /etc/modprobe.d/blacklist-nouveau.conf插入以下内容:
blacklist nouveau options nouveau modeset=0 -
重建 initramfs
sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak sudo dracut -v /boot/initramfs-$(uname -r).img $(uname -r) -
重启后验证
lsmod | grep nouveau若无输出则表示禁用成功。
安装 kernel-devel
-
精确匹配当前内核版本
sudo yum install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r) -
验证头文件路径
ls /usr/src/kernels/$(uname -r)/include应看到大量.h 头文件。
驱动安装交互配置
-
下载官方驱动
从 NVIDIA 官网 获取对应 GPU 的 12.6 版本驱动(文件名通常为 NVIDIA-Linux-x86_64-*.run) -
赋予执行权限并安装
chmod +x NVIDIA-Linux-x86_64-*.run sudo ./NVIDIA-Linux-x86_64-*.run关键选项建议:
- 接受 DKMS 编译(确保内核更新后自动重建模块)
- 不安装 32 位兼容库(减少依赖冲突)
- 允许安装程序自动修改 Xorg 配置
验证安装
-
基础功能检查
nvidia-smi预期输出应显示 GPU 型号、温度、显存占用等信息。
-
图形界面验证
nvidia-settings若出现 ”Unable to load X server” 错误,需先启动图形界面或添加
--no-x-server参数。
避坑指南
处理内核源码错误
若安装时报错 ”Unable to find kernel source”,尝试:
sudo ln -s /usr/src/kernels/$(uname -r) /usr/src/linux
解决 Secure Boot 问题
在 BIOS 中禁用 Secure Boot,或手动签名驱动模块:
sudo mokutil --disable-validation
(需重启后在 MOK 界面确认)
多 GPU 初始化顺序
在 /etc/modprobe.d/nvidia.conf 中添加:
options nvidia NVreg_AssignGpus=0
避免设备编号随机变化。
自动化安装脚本
#!/bin/bash
# 检查 root 权限
if [[$EUID -ne 0]]; then
echo "请使用 root 用户执行此脚本"
exit 1
fi
# 记录当前内核版本
KERNEL_VERSION=$(uname -r)
# 禁用 nouveau
echo "[步骤 1] 禁用 Nouveau 驱动"
echo "blacklist nouveau" > /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" >> /etc/modprobe.d/blacklist-nouveau.conf
mv /boot/initramfs-${KERNEL_VERSION}.img{,.bak}
dracut -v /boot/initramfs-${KERNEL_VERSION}.img ${KERNEL_VERSION}
# 安装内核头文件
echo "[步骤 2] 安装 kernel-devel"
yum install -y kernel-devel-${KERNEL_VERSION} kernel-headers-${KERNEL_VERSION} || {
echo "内核头文件安装失败,请检查 yum 源配置"
exit 2
}
# 驱动安装
echo "[步骤 3] 安装 NVIDIA 驱动"
chmod +x NVIDIA-Linux-x86_64-*.run
./NVIDIA-Linux-x86_64-*.run --silent \
--dkms \
--no-opengl-files \
--no-questions \
--accept-license || {
echo "驱动安装失败,请检查日志"
exit 3
}
# 验证
echo "[完成] 验证安装结果"
nvidia-smi || exit 4
延伸阅读
实际安装过程中,不同硬件环境可能出现特异性问题。建议保存安装日志(/var/log/nvidia-installer.log)以便排查。对于生产环境,推荐使用 Ansible 等工具将上述流程剧本化,实现批量部署。
