如何降级 HP Emluex CNA 网卡固件版本

本文将指导我们执行升级和降级在 HP 硬件上运行的 Emulex Converged Network Adapters 固件版本的步骤

在本文中,我们使用的是 FlexFabric 20Gb 2 端口 650FLB 适配器。

检查HPKnife 片机中安装的 NIC 适配器类型

# dmidecode |grep  'NIC'
HP BIOS NIC PCI and MAC Information
        NIC 1: PCI device 06:00.0, MAC address 00:17:A4:77:00:02
        NIC 2: PCI device 06:00.1, MAC address 00:17:A4:77:00:04
        NIC 3: PCI device 06:00.2, MAC address D0:BF:9C:F0:80:69
        NIC 4: PCI device 06:00.3, MAC address D0:BF:9C:F0:80:71
        NIC 5: PCI device 06:00.4, MAC address D0:BF:9C:F0:80:6A
        NIC 6: PCI device 06:00.5, MAC address D0:BF:9C:F0:80:72
                NIC.FlexLOM.1.1
                HP FlexFabric 20Gb 2-port 650FLB Adapter - NIC
                NIC.FlexLOM.1.2
                HP FlexFabric 20Gb 2-port 650FLB Adapter - NIC
                NIC.FlexLOM.1.3
                HP FlexFabric 20Gb 2-port 650FLB Adapter - NIC
                NIC.FlexLOM.1.4
                HP FlexFabric 20Gb 2-port 650FLB Adapter - NIC
                NIC.FlexLOM.1.5
                HP FlexFabric 20Gb 2-port 650FLB Adapter - NIC
                NIC.FlexLOM.1.6
                HP FlexFabric 20Gb 2-port 650FLB Adapter - NIC

检查 NIC 卡上当前安装的固件和驱动程序版本

# ethtool -i eth0
driver: be2net
version: 10.7.110.29
firmware-version: 10.7.110.34
bus-info: 0000:06:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: no

如你所见,我的固件版本是 10.7.110.34 而网卡的驱动版本是 10.7.110.29
这套固件和驱动来自HP SPP 2014.04,所以我们先把固件降级到SPP 2014.04

SPP 2014.04 可用的 CNA 固件版本为“hp-firmware-cna-emulex-2014.02.02-1.1.x86_64.rpm”

降级网卡固件的步骤

在某些 Linux 变体(例如 SuSE Enterprise Linux 节点)上,需要启用套件下方的来执行 NIC 降级。
可以从相应的 SPP iso 镜像中收集此启用套件。

注意:HP-CNA-FC-Emulex-Enablement-Kit 依赖于两个另外的 rpm,如下所示

# rpm -Uvh /tmp/libnl-1.1-49.18.x86_64.rpm /tmp/libHBAAPI2-2.2.7-0.7.33.x86_64.rpm /tmp/HP-CNA-FC-Emulex-Enablement-Kit-10.7.110.34-1.sles11.x86_64.rpm
warning: /tmp/HP-CNA-FC-Emulex-Enablement-Kit-10.7.110.34-1.sles11.x86_64.rpm: Header V3 RSA/SHA1 signature: NOKEY, key ID b1275ea3
Preparing...                ########################################### [100%]
   1:libHBAAPI2             ########################################### [ 33%]
   2:libnl                  ########################################### [ 67%]
   3:HP-CNA-FC-Emulex-Enable########################################### [100%]

接下来安装 CNA 固件 rpm

# rpm -Uvh /tmp/hp-firmware-cna-emulex-2014.02.02-1.1.x86_64.rpm
Preparing...                ########################################### [100%]
   1:hp-firmware-cna-emulex ########################################### [100%]

与任何其他 rpm 不同,上述命令不会完全安装固件,而是只会将 rpm 内容提取到其各自的位置。

固件rpm内容如下

# rpm -ql hp-firmware-cna-emulex-2014.02.02-1.1
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/.cpq_package.inc
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/.hpsetup
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/CP025738.xml
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/elxflashStandalone-linux-10.2.477.23-1.zip
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/fwmatrix.txt
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/installer
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/readme.txt
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/reference.xml
/usr/lib/x86_64-linux-gnu/hp-scexe-compat
/usr/lib/x86_64-linux-gnu/hp-scexe-compat/CP025738.scexe
# cd /usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1
# unzip elxflashStandalone-linux-10.2.477.23-1.zip
# cd elxflashStandalone-linux-10.2.477.23-1/lx

接下来执行以下命令开始降级

# ./elxflash.sh /ucna /sysfs  /f
Thu Sep 15 23:52:01 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=00:17:A4:77:00:08,
Update=Firmware, Image=oc14-10.2.477.23.ufi, New=10.2.477.23, Old=10.7.110.34, Status=Success
Thu Sep 15 23:52:01 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=00:17:A4:77:00:08,
Update=Firmware, Image=oc14-10.2.477.23.ufi, New=10.2.477.23, Old=10.7.110.34, Status=Success
Thu Sep 15 23:52:01 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=30:8D:99:62:FF:75,
Update=Firmware, Image=oc14-10.2.477.23.ufi, New=10.2.477.23, Old=10.7.110.34, Status=Success
Thu Sep 15 23:52:02 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=30:8D:99:62:FF:7D,
Update=Firmware, Image=oc14-10.2.477.23.ufi, New=10.2.477.23, Old=10.7.110.34, Status=Success
Thu Sep 15 23:52:02 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=30:8D:99:62:FF:76,
Update=Firmware, Image=oc14-10.2.477.23.ufi, New=10.2.477.23, Old=10.7.110.34, Status=Success
Thu Sep 15 23:52:02 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=30:8D:99:62:FF:7E,
Update=Firmware, Image=oc14-10.2.477.23.ufi, New=10.2.477.23, Old=10.7.110.34, Status=Success
elxflash: All required firmware and/or boot code downloads succeeded - Return Code=0

请重新启动系统以激活新固件。

所以脚本成功执行,返回代码为“0”

新固件版本如下所示

# ethtool -i eth0
driver: be2net
version: 10.7.110.29
firmware-version: 10.7.110.34 [10.2.477.23]
bus-info: 0000:06:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: no

注意:需要重新启动才能激活新固件

更新 NIC 固件的步骤

当前安装的固件

# ethtool -i eth0
driver: be2net
version: 10.2.477.6
firmware-version: 10.2.477.23
bus-info: 0000:06:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: no

所以当前安装的网卡驱动版本为10.2.477.6,固件版本为10.2.477.23,来自SPP 2014.04

让我们将网卡更新为 HP SPP 2014.04 的固件版本,例如:“hp-firmware-cna-emulex-2014.02.02-1.1.x86_64.rpm”

安装rpm

# rpm -Uvh /tmp/hp-firmware-cna-emulex-2014.02.02-1.1.x86_64.rpm
warning: /tmp/hp-firmware-cna-emulex-2014.02.02-1.1.x86_64.rpm: Header V3 RSA/SHA1 signature: NOKEY, key ID b1275ea3
Preparing...                ########################################### [100%]
   1:hp-firmware-cna-emulex ########################################### [100%]

rpm的内容如下

# rpm -ql hp-firmware-cna-emulex
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/.cpq_package.inc
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/.hpsetup
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/CP029026.xml
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/elxflashStandalone-linux-10.7.110.34-1.zip
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/fwmatrix.txt
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/hpsetup
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/readme.txt
/usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1/reference.xml
/usr/lib/x86_64-linux-gnu/hp-scexe-compat
/usr/lib/x86_64-linux-gnu/hp-scexe-compat/CP029026.scexe

请按照以下步骤执行更新

# cd /usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1
# ls -l
total 38932
-r--r--r-- 1 root root    64057 Jan 13  2014 CP029026.xml
-rw-r--r-- 1 root root      271 Jan 13  2014 .cpq_package.inc
drwxr-xr-x 5 root root     4096 Jan  9  2014 elxflashStandalone-linux-10.7.110.34-1
-r--r--r-- 1 root root 38047305 Jan 13  2014 elxflashStandalone-linux-10.7.110.34-1.zip
-r--r--r-- 1 root root      881 Jan 13  2014 fwmatrix.txt
-r-xr-xr-x 1 root root     6737 Jan 13  2014 hpsetup
-r-xr-xr-x 1 root root  1653176 Jan 13  2014 .hpsetup
-r--r--r-- 1 root root      423 Jan 13  2014 readme.txt
-r--r--r-- 1 root root    18222 Jan 13  2014 reference.xml
# ./.hpsetup
--------------------------------------------------
Loading references...done.
Performing discovery...
Preparing the Emulex Kit...done
Performing flash -- DO NOT INTERRUPT!
Executing flash engine: ./elxflashStandalone*/lx/elxflash.sh /ucna /sysfs  /update 1>> /var/cpq/Component.log 2>> /var/cpq/Component.log 3>> /var/cpq/Component.log
Flash Engine exit code: 0
All updates were successful.  Reboot needed.
Flash complete [1]

因此更新已成功完成,退出代码为 1,这意味着需要重新启动才能激活新固件

或者也可以在我们使用以下步骤进行降级时完成更新

# cd /usr/lib/x86_64-linux-gnu/hp-firmware-cna-emulex-2014.02.02-1.1
# unzip elxflashStandalone-linux-10.7.110.34-1.zip
# cd elxflashStandalone-linux-10.7.110.34-1/lx/
# ./elxflash.sh /ucna /sysfs  /update
Fri Jan  1 13:18:28 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=00:17:A4:77:00:4A,
Update=Firmware, Image=oc14-10.7.110.34.ufi, New=10.7.110.34, Old=10.2.477.23, Status=Success
Fri Jan  1 13:18:28 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=00:17:A4:77:00:4A,
Update=Firmware, Image=oc14-10.7.110.34.ufi, New=10.7.110.34, Old=10.2.477.23, Status=Success
Fri Jan  1 13:18:28 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=70:10:6F:58:3B:B1,
Update=Firmware, Image=oc14-10.7.110.34.ufi, New=10.7.110.34, Old=10.2.477.23, Status=Success
Fri Jan  1 13:18:28 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=70:10:6F:58:3B:B1,
Update=Firmware, Image=oc14-10.7.110.34.ufi, New=10.7.110.34, Old=10.2.477.23, Status=Success
Fri Jan  1 13:18:28 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=70:10:6F:58:3B:B2,
Update=Firmware, Image=oc14-10.7.110.34.ufi, New=10.7.110.34, Old=10.2.477.23, Status=Success
Fri Jan  1 13:18:28 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=70:10:6F:58:3B:B2,
Update=Firmware, Image=oc14-10.7.110.34.ufi, New=10.7.110.34, Old=10.2.477.23, Status=Success
Fri Jan  1 13:18:28 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=70:10:6F:58:3B:B3,
Update=Firmware, Image=oc14-10.7.110.34.ufi, New=10.7.110.34, Old=10.2.477.23, Status=Success
Fri Jan  1 13:18:28 2014
HBA=OCe14100-NIC, Port Type=NIC, MAC=70:10:6F:58:3B:B3,
Update=Firmware, Image=oc14-10.7.110.34.ufi, New=10.7.110.34, Old=10.2.477.23, Status=Success
elxflash: All required updates succeeded - Return Code=0
Please reboot system to activate new firmware.
Either way you will can perform the NIC firmware update.

更新后的 NIC 固件版本如下所示。

# ethtool -i eth0
driver: be2net
version: 10.2.477.6
firmware-version: 10.2.477.23 [10.7.110.34]
bus-info: 0000:06:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: no

注意:重新启动Knife 片机后将激活新固件

日期:2020-06-02 22:18:30 来源:oir作者:oir