最近在Centos7系统中遇到一个问题,我先将/lib/modules/3.10.0-1062.el7.x86_64/kernel/drivers/net/ethernet/intel/igb/目录下面的igb.ko.xz驱动文件删除,然后将新编译的igb.ko驱动文件放到/lib/modules/3.10.0-1062.el7.x86_64/updates/drivers/net/ethernet/intel/igb/目录,重启系统后,输入ethtool -i eth0命令发现网卡驱动版本是之前删掉的igb版本,不是我新的igb版本
[root@localhost intel]# ethtool -i eth0
driver: igb
version: 5.6.0-k
firmware-version: 3.25, 0x800005cd
expansion-rom-version:
输入modinfo igb命令发现igb版本又是新的,我都把原来的驱动文件删除了,但系统还是加载原来的驱动,很奇怪的问题。
filename: /lib/modules/3.10.0-1062.el7.x86_64/updates/drivers/net/ethernet/intel/igb/igb.ko
version: 5.3.5.18
license: GPL
description: Intel(R) Gigabit Ethernet Linux Driver
这个问题困扰了我两三天,最后在igb驱动源码的README说明文件找到了原因。
To build igb driver with DCA
----------------------------
If your kernel supports DCA, the driver will build by default with DCA enabled.
Note: For certain distributions like (but not limited to) RedHat Enterprise
Linux 7 and Ubuntu, once the driver is installed the initrd/initramfs file may
need to be updated to prevent the OS loading old versions of the igb driver.
The dracut utility may be used on RedHat distributions:
# dracut --force
For Ubuntu:
# update-initramfs -u
从原文中了解到Centos7版本替换驱动文件后,需要执行dracut --force命令来更新initrd/initramfs,以防止加载旧版本的igb驱动。
再次重新启动系统后,输入ethtool -i eth0命令发现网卡驱动版本已经更新了。