![Linux下如何升级Intel 10G网卡固件](https://linux22.com/image/701262/Linux%E4%B8%8B%E5%A6%82%E4%BD%95%E5%8D%87%E7%BA%A7Intel%2010G%E7%BD%91%E5%8D%A1%E5%9B%BA%E4%BB%B6.png)
有一台 Linux 服务器,配备多张 Intel 82599ES 卡:
# lspci | grep -i eth
01:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
01:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
02:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
02:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
# ethtool -i enp1s0f0 | grep firmware-version
firmware-version: 0x18b30001
# ethtool -i enp2s0f0 | grep firmware-version
firmware-version: 0x800004d0
如何将最新固件刷入这些卡?无需重启即可实现吗?
答案1
硬件固件更新
要获取更新的固件,请从供应商处获取服务器的 BIOS/固件更新文件。任何其他方法都可能会破坏您与他们签订的保修/支持合同。
相应的内核更新
为了确保您拥有适用于硬件的最新内核模块,请将您的操作系统更新为操作系统供应商支持的最新内核。
无需重启?
不是。硬件更新肯定需要重新启动才能使新固件生效。
如果您已安装受支持的 hotpatch 内核,则您可能无需重新启动即可更新内核,然后卸载/重新加载 NIC 的内核模块(前提是您通过控制台或其他带外方法(如 idrac/ilo)连接)。您甚至可以构建新的内核模块并在卸载旧模块后对其进行 insmod。使用此方法无法保证服务器不会出现网络问题。
答案2
82599 网络控制器上的固件基于 ROM,一般来说不可升级。可以进行小幅调整,但这些调整并未广泛部署,通常用于非常具体的需求(如平台集成)。这些控制器通常可以正常工作,除非技术支持人员指示您这样做,否则没有必要升级其固件。
另一个故事是 Option ROM 升级,有时被错误地称为固件(它不是固件,因为它在主机系统上执行,而不是在 ASIC 本身上执行)。在这种情况下,升级到最新和最好的版本通常是需要考虑的事情,特别是当您从网络启动时观察到一些异常时。