我有一张 Intel x550 网卡。我已经安装了 ixgbe 驱动程序。安装驱动程序后,我运行/sbin/modinfo ixgbe | grep version
并得到结果5.3.6
。但是运行结果ethtool -i
显示:
driver: ixgbe
version: 4.2.1-k
firmware version: 0x80000492
sudo lshw -class network
节目
description: Ethernet Interface
product: Ethernet Controller 10G X550T
vendor: Intel Corporation
logical name: enp1s0f0
driver=ixgbe
driverversion=4.2.1-k
firmware=0x80000492
dmesg | grep ixgbe
节目
Intel 10 Gigabit PCI Express Network Driver - version 4.2.1-k
enp1s-f-: renamed from eth0
它是否使用了正确的 ixgbe 驱动程序版本 5.3.6?除了运行 modprobe 之外,我是否需要强制它使用正确的版本?我不明白为什么它显示的驱动程序版本是 4.2.1-k。任何见解都将不胜感激。
盒子重启后,sudo lshw -class network | grep driver
显示重置为 4.2.1-k。如果我运行
modprobe -r ixgbe
modprobe ixgbe
它将显示 lshw 命令 5.3.6。
答案1
我怀疑您遵循了下载的软件包中 README 中的说明。“make install”步骤仅为当前运行的内核版本构建和安装驱动程序。例如,如果您在运行内核版本 4.15.0-29 时构建和安装驱动程序,则驱动程序已构建和安装仅有的该内核版本。
如果几天后,更新管理器提供了较新的内核版本,并且您安装了该版本,例如 4.15.0-30,那么您必须为较新的内核版本重建驱动程序:
cd ixgbe-5.3.6/src
sudo make clean
sudo make
sudo make install
接下来,卸载旧的驱动程序版本:
sudo modprobe -r ixgbe
并加载您刚刚安装的较新版本:
sudo modprobe ixgbe
确认版本:
modinfo ixgbe | grep version
您应该看到:
version: 5.3.6
请保留这些说明,因为每次更新管理器提供并安装更高版本的内核时都必须重复该过程。
答案2
问题原来出在 initramfs 上。成功安装驱动程序后,发出以下命令:
update-initramfs -u
如果发布了更新的驱动程序,只需update-initramfs -u
再次安装并运行即可。