CentOS 驱动安装失败的定位与修复步骤
一、快速定位问题
- 查看安装日志,优先定位报错关键词:
- GPU/NVIDIA:cat /var/log/nvidia-installer.log
- 系统包管理:cat /var/log/yum.log
- 确认当前运行内核与头文件/开发包是否匹配:
- uname -r
- rpm -q kernel-devel
- ls /usr/src/kernels/$(uname -r)(应能看到对应内核源码目录)
- 检查是否加载了冲突模块(以 NVIDIA 为例):lsmod | grep nouveau
- 检查编译器与构建工具:gcc –version、which cc、make –version
- 检查 Secure Boot:mokutil –sb-state(若为 Enabled,常导致内核模块无法签名加载)
- 检查磁盘空间:df -h
二、NVIDIA 显卡驱动常见修复
- 禁用 Nouveau(必须)
- 新建或编辑:/etc/modprobe.d/blacklist-nouveau.conf
- blacklist nouveau
- options nouveau modeset=0
- 重建 initramfs 并重启:dracut -f;reboot
- 验证:lsmod | grep nouveau(无输出即成功)
- 安装/对齐内核开发包
- 安装匹配版本:yum install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r)
- 若版本不一致:先升级内核并重启到新内核,或重装对应版本的 devel/headers
- 确认:ls /usr/src/kernels/$(uname -r) 存在
- 安装编译工具链
- yum install -y gcc make
- 若提示找不到 cc:ln -s $(which gcc) /usr/bin/cc
- 安装缺失依赖(常见于新内核或云主机)
- yum install -y elfutils-libelf-devel
- 处理 Secure Boot
- 进入 BIOS/UEFI 将 Secure Boot 设为 Disabled,或在 MOK 管理界面完成签名注册后再重启
- 执行安装(示例)
- chmod +x NVIDIA-Linux-x86_64-.run
- 无界面或避免与系统 OpenGL 冲突:./NVIDIA-Linux-x86_64-.run –no-opengl-files -a -s –no-x-check
- 安装后验证
- nvidia-smi(若提示通信失败,先重启再试)
- 回退与重装
- 卸载:/usr/bin/nvidia-uninstall 或运行安装包加 –uninstall
- 清理后重启,再按上述步骤重装
三、通用系统与依赖问题处理
- 依赖与工具链
- yum install -y gcc make kernel-devel kernel-headers elfutils-libelf-devel
- 若提示找不到 cc,建立符号链接:ln -s $(which gcc) /usr/bin/cc
- 软件源与网络
- 确保网络连通(ping 检测),必要时更换镜像源后重试
- 磁盘空间
- 权限
四、其他硬件驱动示例 RTL8111/8168 网卡
- 确认型号:lspci | grep Ethernet
- 安装编译依赖:yum install -y gcc make kernel-devel
- 编译安装驱动(以 r8168 为例)
- 解压后执行:./autorun.sh
- 手动加载:modprobe r8168
- 开机自启:echo “r8168” | tee -a /etc/modules
- 验证:lsmod | grep r8168;检查网络配置与连通性
五、最小化排错清单
- 执行顺序建议:
- 查看日志(nvidia-installer.log / yum.log)
- 对齐内核与 devel/headers(uname -r 与 rpm -q kernel-devel;必要时 dracut -f 重建 initramfs)
- 禁用冲突模块(如 nouveau)
- 安装工具链与依赖(gcc、make、elfutils-libelf-devel)
- 处理 Secure Boot(BIOS 关闭或 MOK 注册)
- 以合适参数安装驱动(必要时 --no-opengl-files)
- 重启并验证(nvidia-smi 或 lsmod)
- 若仍失败,保留完整日志(/var/log/nvidia-installer.log、/var/log/yum.log、dmesg 尾部)以便进一步分析。