在更新驱动前,需明确网卡硬件型号及当前驱动版本,避免驱动与硬件不匹配。
lspci -knn | grep -i network命令(适用于PCI/PCIe网卡),输出结果中的“Ethernet controller”字段即为网卡型号(如“Intel Corporation 82545EM Gigabit Ethernet Controller”)。ethtool -i eth0(eth0为网卡接口名,可通过ip a命令确认)查看驱动名称(driver字段)、版本号(version字段);或使用modinfo <驱动名称>(如modinfo e1000)查看更详细的驱动信息(包括固件版本、支持的模块参数等)。编译源代码驱动或安装.rpm包时,需提前安装编译工具及内核开发包,确保驱动能正确编译和加载。
yum groupinstall "Development Tools"安装gcc、make等编译工具。yum install kernel-headers kernel-devel kernel-firmware安装与当前内核版本匹配的开发包(版本号需一致,可通过uname -r查看内核版本)。若网卡驱动有现成的.rpm包(如Intel、Broadcom等厂商提供的CentOS兼容包),优先使用yum包管理器更新,避免手动编译的复杂性。
sudo yum update,确保系统软件包信息是最新的。sudo yum install kmod-<驱动名称>(如kmod-e1000);sudo rpm -ivh <驱动包名>.rpm安装(如sudo rpm -ivh netxtreme2-7.0.36-1.x86_64.rpm)。sudo systemctl restart network或sudo systemctl restart NetworkManager重启网络服务,使新驱动生效。若系统包管理器中没有最新驱动,需从网卡制造商官网下载源代码驱动(通常为.tar.gz格式),手动编译安装。
wget命令下载驱动包(如wget https://downloadmirror.intel.com/9180/eng/e1000-8.0.35.tar.gz),再用tar zxf <驱动包名>.tar.gz解压。cd e1000-8.0.35/src/),运行make编译驱动,再运行sudo make install安装驱动(会将驱动模块安装到/lib/modules/$(uname -r)/kernel/drivers/net/目录下)。sudo rmmod <旧驱动名称>(如sudo rmmod e1000);sudo modprobe <新驱动名称>(如sudo modprobe e1000);ethtool -i eth0,确认version字段已更新为新版本。systemctl restart network)即可加载新驱动;reboot),确保驱动完全加载。lsmod | grep <驱动名称>(如lsmod | grep e1000),确认驱动模块已加载;ping命令测试网卡是否能正常联网(如ping www.baidu.com);dmesg | grep <驱动名称>查看系统日志,确认无驱动加载错误(如“module not found”“firmware not loaded”等)。若安装过程中出现“Error: Package X depends on Y”的依赖错误,可使用sudo yum --skip-broken install <驱动包名>跳过有问题的依赖(不推荐长期使用),或通过yum deplist <驱动包名>查看依赖关系,手动安装缺失的依赖包。
uname -r查看内核版本,驱动文档中会标注支持的版本范围);sudo rmmod <新驱动名称>),再加载旧驱动(sudo modprobe <旧驱动名称>),或通过yum history undo <事务ID>回滚yum操作。