温馨提示×

centos网卡驱动如何弄

小樊
47
2025-12-23 14:34:39
栏目: 智能运维

CentOS 网卡驱动处理全流程

一、准备与诊断

  • 确认网卡型号与当前驱动
    • 查看网卡型号:lspci | grep -i ethernet
    • 查看当前驱动与版本:ethtool -i <接口名>(如 eth0;接口名可用 ip link 查看)
  • 准备编译环境(驱动源码安装时需要)
    • 安装内核头文件与编译工具(版本需与当前运行内核一致):yum install -y gcc kernel-devel kernel-headers
    • 确认版本匹配:uname -r 与已安装的 kernel-devel 版本一致
  • 驱动获取途径
    • 优先查厂商官网(如 IntelRealtek)获取对应 Linux 驱动源码包(.tar.gz);若服务器无外网,可在其他机器下载后通过 U 盘/内网镜像拷贝到目标机。

二、安装或更新驱动(源码编译方式)

  • 基本步骤
    1. 解压驱动包:tar xzf <驱动包>.tar.gz
    2. 进入源码目录(常见为 src/):cd <驱动包>/src
    3. 编译:make
    4. 安装:make install
    5. 更新模块依赖:depmod -a
    6. 加载新驱动:modprobe <驱动名>(如 modprobe e1000e;如为更新需先卸载旧模块:rmmod <旧驱动名>
    7. 验证加载:lsmod | grep <驱动名>;查看接口:ip link;查看驱动信息:ethtool -i <接口名>
    8. 使配置持久化
      • 开机自动加载:在 /etc/modules 中加入一行 <驱动名>(如 e1000e)
      • 如为更新驱动,建议重启验证:reboot
  • 常见报错与处理
    • 报错“Kernel header files not in any of the expected locations”:安装匹配版本的 kernel-develgcc 后重试
    • 接口名不是 eth0:这是 CentOS 7+ 的新命名(如 ens33/enp0s3),属正常;如需传统名可在 /etc/default/grub 添加 net.ifnames=0 biosdevname=0 后执行 grub2-mkconfig -o /boot/grub2/grub.cfg 并重启(修改前请评估业务影响)

三、常见厂商驱动示例

  • Intel 系列(如 I219-V/I219-LM,驱动名 e1000e
    • 确认型号:lspci | grep -i ethernet 看到 I219 等字样
    • Intel 下载中心获取 e1000e 源码包(Linux 版)
    • 按“源码编译方式”安装并加载:make && make install && depmod -a && modprobe e1000e
    • 验证:lsmod | grep e1000eethtool -i <接口名>
  • Realtek 系列(如 RTL8111/8168,常见驱动 r8168
    • 安装依赖:yum install -y gcc kernel-devel kernel-headers
    • 获取 r8168 驱动源码,进入 src/ 目录
    • 编译安装:make clean modules && make install
    • 加载模块:depmod -a && insmod ./src/r8168.ko(或 modprobe r8168
    • 验证:lsmod | grep r8168ethtool -i <接口名>

四、无法联网时的离线处理

  • 在有网环境下载驱动包与所需 rpm(如 gcc、kernel-devel、kernel-headers),拷贝到目标机
  • 使用 U 盘/内网 HTTP/NFS 安装 rpm 与驱动源码
  • 完成编译安装与 modprobe 后,先 ip link 确认接口出现,再配置 IP(如 nmcli/ifcfg 文件)并测试连通性。

0