CentOS驱动配置技巧
小樊
40
2025-12-15 17:38:03
CentOS 驱动配置技巧
一、通用准备与排错思路
- 明确硬件与系统版本:用 lspci | grep -i vga、lspci | grep -i nvidia 确认显卡型号;用 uname -r 确认内核版本,确保与将要安装的驱动匹配。
- 准备编译环境:安装 gcc、make、kernel-devel、kernel-headers,版本需与当前运行内核一致(见下文“版本不一致”处理)。
- 选择安装方式:优先使用发行版或可信仓库(如 ELRepo)提供的驱动包;若使用 NVIDIA 官方 .run 安装器,务必在文本模式操作,避免与图形会话冲突。
- 常用验证:NVIDIA 显卡执行 nvidia-smi;通用内核模块用 lsmod | grep <模块名>;查看 initramfs 内容可用 lsinitrd | grep <关键词>。
二、NVIDIA 显卡驱动配置要点
- 禁用 Nouveau(两种等效方式,二选一或同时配置更稳妥)
- GRUB 启动参数方式:编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX 末尾追加
rd.driver.blacklist=nouveau nouveau.modeset=0
然后执行:grub2-mkconfig -o /boot/grub2/grub.cfg
- 黑名单方式:在 /etc/modprobe.d/blacklist.conf 或 /usr/lib/modprobe.d/dist-blacklist.conf 添加
blacklist nouveau
options nouveau modeset=0
- 重建 initramfs 并重启
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut /boot/initramfs-$(uname -r).img $(uname -r)
reboot
重启后用 lsmod | grep nouveau 确认 Nouveau 未被加载。
- 安装驱动
- 仓库方式(推荐):添加 ELRepo,用 nvidia-detect 确认推荐驱动后安装,例如:
yum install kmod-nvidia-<推荐版本>
- 官方 .run 方式:切到文本模式(如 systemctl set-default multi-user.target),给安装包加执行权限并运行:
chmod +x NVIDIA-Linux-x86_64-<版本>.run
./NVIDIA-Linux-x86_64-<版本>.run
- 验证与常见问题
- 验证:执行 nvidia-smi 应显示 GPU 与驱动版本。
- 常见报错速解:
- “Nouveau 正在使用”:说明黑名单或 initramfs 未生效,复核上述步骤并重启。
- “找不到 cc/make”:安装 gcc、make。
- “找不到内核源码树”:安装与当前内核同版本的 kernel-devel/kernel-headers,或执行
./NVIDIA-Linux-x86_64-<版本>.run --kernel-source-path=/usr/src/kernels/$(uname -r)
- “SecureBoot 导致内核模块未签名”:在 BIOS 关闭 Secure Boot,或使用 MOK 注册签名。
三、离线环境与最小化系统的安装技巧
- 离线安装编译依赖:挂载 Everything ISO 作为本地仓库,创建本地 .repo 后执行
yum --disablerepo=‘*’ --enablerepo=‘base’ install gcc kernel-devel kernel-headers
- 离线安装 NVIDIA 驱动:将 .run 安装包提前拷贝到服务器,按“禁用 Nouveau → 重建 initramfs → 文本模式运行安装器”的顺序执行。
- 版本不一致导致“找不到内核源码树”的两种处理:
- 重启选择已安装对应 kernel-devel 的内核再装驱动;
- 在 /lib/modules/$(uname -r)/ 下将 build 软链接指向已安装的 /usr/src/kernels/<对应版本>。
四、其他常见驱动配置要点
- 双显卡(Optimus)场景:部分机型在 BIOS 将 Graphics Device 设为 Discrete Graph、关闭 OS Detection for NVIDIA Optimus,可简化独显直连;或在社区方案(如 Bumblebee)中按需启用/切换。
- 通用内核模块配置:将自定义驱动加入 /etc/modprobe.d/*.conf(如 alias/options),必要时用 modprobe <模块名> 加载并用 lsmod 验证;若模块需在开机早期加载,确保其被打包进 initramfs(必要时重建 initramfs)。