在更新驱动前,需先明确网卡硬件型号及当前使用的驱动版本,避免驱动与硬件不匹配。常用命令如下:
lspci | grep -i ethernet(PCI网卡)或 lsusb | grep -i network(USB网卡),输出结果会显示网卡的制造商、型号(如“Intel Corporation 82545EM Gigabit Ethernet Controller”)。ethtool -i <网卡接口名>(如eth0、ens33),输出会显示驱动名称(如e1000e)、版本(如3.8.4.2);或使用modinfo <驱动名称>查看驱动详细信息(如依赖项、描述)。手动编译驱动需提前安装编译工具和内核头文件,确保驱动能与当前内核版本兼容:
sudo yum groupinstall "Development Tools" # 安装gcc、make等编译工具
sudo yum install kernel-devel kernel-headers # 安装与当前内核匹配的头文件和开发包
yum安装。例如,Intel网卡驱动安装命令:sudo yum install e1000e(e1000e为Intel千兆网卡驱动模块名)。3.10.0-1160.el7.x86_64,需下载支持该内核的驱动包)。若驱动为源代码包(如.tar.gz格式),需按以下步骤编译安装:
tar -zxvf <驱动包名>.tar.gz # 解压驱动包(如e1000e-4.2.5.tar.gz)
cd <驱动目录> # 进入解压后的目录(如e1000e-4.2.5/src)
make # 编译驱动(需确保已安装编译工具和内核头文件)
sudo make install # 安装驱动到系统模块目录(如/lib/modules/$(uname -r)/kernel/drivers/net/ethernet/intel/e1000e)
modprobe命令加载新驱动(替换<驱动模块名>为实际模块名,如e1000e):sudo modprobe <驱动模块名>。lsmod | grep <驱动模块名>(如lsmod | grep e1000e),若有输出则表示加载成功。ethtool -i <网卡接口名>,确认驱动版本已更新。为避免系统重启后驱动失效,需将驱动模块添加到开机自动加载列表:
echo "<驱动模块名>" | sudo tee /etc/modules-load.d/<驱动模块名>.conf # 创建配置文件(如/etc/modules-load.d/e1000e.conf)
DKMS(Dynamic Kernel Module Support)可自动在内核更新时重新编译和安装驱动,避免手动重复操作:
sudo yum install dkms # 安装DKMS工具
sudo dkms add <驱动模块名> <驱动版本> # 将驱动添加到DKMS管理(如sudo dkms add e1000e 4.2.5)
sudo dkms build <驱动模块名> <驱动版本> # 编译驱动
sudo dkms install <驱动模块名> <驱动版本> # 安装驱动
3.10内核的驱动,CentOS 8需选择支持4.18及以上内核的驱动)。modprobe -r <驱动模块名>卸载驱动,再加载旧驱动(如modprobe <旧驱动模块名>)。