本文将指导我们执行升级和降级在 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 片机后将激活新固件