CentOS FetchLinux如何安装驱动程序
导读:CentOS 安装驱动的通用流程与常见场景 一、通用准备与识别硬件 确认系统与内核版本:cat /etc/redhat-release;uname -r 识别设备型号:lspci | grep -i net(网卡);lspci | gre...
CentOS 安装驱动的通用流程与常见场景
一、通用准备与识别硬件
- 确认系统与内核版本:cat /etc/redhat-release;uname -r
- 识别设备型号:lspci | grep -i net(网卡);lspci | grep -i vga(显卡);必要时用 lspci -nn 查看厂商与设备ID
- 查看当前驱动与固件:ethtool -i < 网卡名> (如 eth0);lsmod | grep < 驱动名>
- 准备编译环境(内核模块驱动需要):yum install -y gcc kernel-devel-$(uname -r) kernel-headers
- 原则:优先使用发行版仓库或厂商提供的 RPM 包;无包可用时再从源码编译安装
二、方法一 使用发行版或厂商仓库安装(推荐)
- 显卡示例(NVIDIA 数据中心/计算卡):安装本地仓库 RPM 后通过 yum 安装驱动
- 下载并安装对应系统版本的本地仓库包(示例为 RHEL7/CentOS7 的 Tesla 驱动仓库)
- 命令:rpm -i nvidia-driver-local-repo-rhel7-< 版本> .rpm
- 更新缓存并安装:yum clean all;yum install cuda-drivers
- 重启:reboot;验证:nvidia-smi
- 其他硬件(如部分存储/网卡):优先查找 ELRepo 等第三方仓库,yum 安装对应内核模块包,省去编译与维护成本
三、方法二 源码编译安装(无仓库包或需要特定版本时)
- 网卡驱动示例(Intel 82545EM,e1000 驱动)
- 确认型号:lspci | grep -i net;查看现有驱动:ethtool -i eth0
- 安装依赖:yum install -y gcc kernel-devel-$(uname -r) kernel-headers
- 下载并解压驱动源码(示例包名 e1000-8.0.35.tar.gz)
- 编译安装:cd e1000-8.0.35/src;make install
- 卸载旧模块并加载新模块(建议在控制台执行,避免断网):rmmod e1000;modprobe e1000
- 验证:ethtool -i eth0 应显示新版本;必要时重启
- 显卡驱动示例(NVIDIA .run 安装器)
- 安装编译依赖:yum install -y gcc kernel-devel-$(uname -r) kernel-headers
- 禁用 nouveau:在 /etc/modprobe.d/blacklist.conf 添加 blacklist nouveau;备份并重建 initramfs
- mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
- dracut /boot/initramfs-$(uname -r).img $(uname -r)
- 切换到文本模式:systemctl set-default multi-user.target 或 init 3;重启
- 安装驱动:chmod +x NVIDIA-Linux-x86_64-< 版本> .run;./NVIDIA-Linux-x86_64-< 版本> .run
- 验证:nvidia-smi;恢复图形界面:systemctl set-default graphical.target 或 init 5
四、常见问题与排查要点
- 报错 “unable to find the kernel source tree for the currently running kernel”:安装匹配当前运行内核的 kernel-devel,并使用 ./NVIDIA-…run --kernel-source-path=/usr/src/kernels/$(uname -r) 指定路径;必要时加 -k $(uname -r)
- 新驱动未生效:确认 nouveau 已禁用、initramfs 已重建、系统已切到文本模式安装,安装后重启再验证
- 网络驱动替换风险:rmmod/modprobe 可能导致当前 SSH 会话中断,务必在本地控制台或带外管理操作
- 虚拟机/云镜像场景:导入前检查内核是否支持 virtio(grep -i virtio /boot/config-$(uname -r)),以及 initramfs 是否包含 virtio(lsinitrd /boot/initramfs-$(uname -r).img | grep virtio);若缺失,使用 mkinitrd 重新生成并包含 virtio_blk、virtio_pci、virtio_console 等模块
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS FetchLinux如何安装驱动程序
本文地址: https://pptw.com/jishu/756479.html
