1. Purpose:
The BMC supports upgrading F/W via ipmitool. The available IPMI interfaces for update are KCS, IOL, and USB virtual LAN with RMCP+ protocol.
KCS interface: The upgrade process is executed from the local OS. This option should be explored only as a last resort when other methods are not feasible.
OL interface: Leverage NC-SI and upgrade firmware remotely.
Upgrade sequence :
When multiple f/w need to be updated, please follow the sequence to avoid unexpected behavior after the upgrade.
BMC Bootloader -->BMC (Upgrade Twice) --> BMCONF --> FPGA or CPLD (Upgrade Twice & Power Cycle) --> BIOS(Upgrade Twice & Power Cycle) --> NVRAM (Power Cycle)
Note:
If a power cycle is not needed after the firmware update, please be sure to wait for 1 minute to allow it to restart on its own
This article describes the steps to upgrade firmware using different methods.
2. Audience:
All users with BMC-supported SKUs.
3. Prerequisites:
ipmitool is 1.8.17 or later
BMC-supported related devices.
4. Procedures:
A- Via Node Explorer
- Please follow How to access node explorer to access Node Explorer
- Go to the Maintenance >> Firmware Upgrade page:
- Select the xxx.img file to upload and start to upgrade.
Note 1: Please note that the power cycle is required for BIOS and FPGA upgrades.
Note 2: Please repeat the above instructions to upgrade the backup Firmware.
B- Via BMC IPMI Over LAN
- Upload firmware image to OS.
- Check BMC IP via the following command:
# ipmitool lan print
Set in Progress : Set Complete
Auth Type Support : MD5 PASSWORD
Auth Type Enable : Callback : MD5 PASSWORD
: User : MD5 PASSWORD
: Operator : MD5 PASSWORD
: Admin : MD5 PASSWORD
: OEM :
IP Address Source : Static Address
IP Address : 192.168.51.122
Subnet Mask : 255.255.255.0
MAC Address : d4:0a:ea:fe:21:99
SNMP Community String : ro_s3c
BMC ARP Control : ARP Responses Enabled, Gratuitous ARP
Enabled
Default Gateway IP : 192.168.23.254
Default Gateway MAC : 00:00:00:00:00:00
Backup Gateway IP : 0.0.0.0
Backup Gateway MAC : 00:00:00:00:00:00
802.1q VLAN ID : Disabled
802.1q VLAN Priority : 0
RMCP+ Cipher Suites : 1,2,3,6,7,8,11,12,15,16,17
Cipher Suite Priv Max : aaaaaaaaaaaXXXX
: X=Cipher Suite Unused
: c=CALLBACK
: u=USER
: o=OPERATOR
: a=ADMIN
: O=OEM
Bad Password Threshold: Not Available
- Ensure that the ipmitool utility works normally and the version of ipmitool is 1.8.18 or
later.
# ipmitool -I lanplus -H 192.168.51.122 -U -P -V ipmitool version 1.8.18
- Run the below command to upgrade firmware.
# ipmitool -I lanplus -H 192.168.51.122 -U <username> -P <password> hpm upgrade firmware.img
PICMG HPM.1 Upgrade Agent 1.0.9:
Validating firmware image integrity...OK
Performing preparation stage...
Services may be affected during upgrade. Do you wish to continue? (y/n): y
OK
Performing upgrade stage:
-------------------------------------------------------------------------------
|ID | Name | Versions | % |
| | | Active | Backup | File | |
|----|-------------|-----------------|-----------------|-----------------|----|
| 1|8312 BMC | 1.03 00000000 | 1.03 00000000 | 1.03 00000000 |100%|
| |Upload Time: 03:06 | Image Size: 10414410 bytes |
-------------------------------------------------------------------------------
(*) Component requires Payload Cold Reset
Firmware upgrade procedure successful
- Activate the firmware via KCS.
# ipmitool hpm activate
- Check firmware upgrade is successful or not.
# ipmitool -I lanplus -H 192.168.51.122 -U -P hpm check
C- Via BMC IPMI Virtual LAN
- Upload firmware image to OS.
- Check BMC Virtual LAN channel
You could check the virtual LAN channel by running the following command:
# r=$(ipmitool raw 0x2c 0x3e 0x00 0x02 | awk '{print $4}'); [ -z "$r" ] && echo "Error: No value extracted" && exit 1; d=$(printf "%d" 0x$r); b=$(echo "ibase=10; obase=2; $d" | bc); p=${#b}; echo "The IPMI Virtual LAN Channel Is: $((p-1))"
The IPMI Virtual LAN Channel Is: 4
Or leverage IPMI commands below to find out last BMC channel. Last BMC channel is always defined for virtual USB-LAN Ethernet interface to access.
# ipmitool lan print [x]
Ex: channel 4 is the last interface that we are looking for, because it's invalid starting from channel 5.
# ipmitool lan print 1
IP Address Source : Static Address
IP Address : 0.0.0.0
# ipmitool lan print 2
IP Address Source : Static Address
IP Address : 0.0.0.0
# ipmitool lan print 3
IP Address Source : Static Address
IP Address : 0.0.0.0
# ipmitool lan print 4
IP Address Source : Static Address
IP Address : 10.234.147.1
# ipmitool lan print 5
Get Channel Info command failed: Requested sensor, data, or record not found
Invalid channel: 5
- Find the ethernet device under x86 OS
The BMC channel 4 network should be detected as a USB Ethernet device under OS (x86).
# ipmitool lan print 4
Set in Progress : Set Complete
Auth Type Support : MD5 PASSWORD
Auth Type Enable : Callback : MD5 PASSWORD
: User : MD5 PASSWORD
: Operator : MD5 PASSWORD
: Admin : MD5 PASSWORD
: OEM :
IP Address Source : Static Address
IP Address : 10.234.147.1
Subnet Mask : 255.255.255.0
MAC Address : 00:0b:ab:61:71:04
SNMP Community String : ro_s3c
BMC ARP Control : ARP Responses Enabled, Gratuitous ARP
Enabled
Default Gateway IP : 0.0.0.0
Default Gateway MAC : 00:00:00:00:00:00
Backup Gateway IP : 0.0.0.0
Backup Gateway MAC : 00:00:00:00:00:00
802.1q VLAN ID : Disabled
802.1q VLAN Priority : 0
RMCP+ Cipher Suites : 1,2,3,6,7,8,11,12,15,16,17
Cipher Suite Priv Max : aaaaaaaaaaaXXXX
: X=Cipher Suite Unused
: c=CALLBACK
: u=USER
: o=OPERATOR
: a=ADMIN
: O=OEM
Bad Password Threshold : Not Available
We can double confirm by running the following:
a- Check whether there is a USB0 interface
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: bc8p0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state
UP group default qlen 1000
link/ether c4:00:ad:c6:15:a5 brd ff:ff:ff:ff:ff:ff
altname eno1
altname enp200s0
inet 172.17.21.13/22 brd 172.17.23.255 scope global bc8p0
valid_lft forever preferred_lft forever
inet6 fe80::79b7:817e:1988:7fe1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: bc9p0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq
state DOWN group default qlen 1000
link/ether c4:00:ad:c6:15:a6 brd ff:ff:ff:ff:ff:ff
altname eno2
altname enp201s0
4: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel
state UNKNOWN group default qlen 1000
link/ether 96:ed:29:4c:37:ea brd ff:ff:ff:ff:ff:ff
inet6 fe80::5e01:4899:343:3873/64 scope link noprefixroute
valid_lft forever preferred_lft forever
b- Use “ethtool” command to confirm the interface driver is “cdc_ether”
# ethtool -i usb0
driver: cdc_ether
version: 5.15.11
firmware-version: CDC Ethernet Device
expansion-rom-version:
bus-info: usb-0000:42:00.3-2.4
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
- Set the IP of USB Ethernet as the same domain as BMC channel 4 IP address and check
the BMC IPMI LAN channel 4 connection through "ping".
# ifconfig usb0 10.234.147.100/24
# ping 10.234.147.1
PING 10.234.147.1 (10.234.147.1) 56(84) bytes of data.
64 bytes from 10.234.147.1: icmp_seq=1 ttl=64 time=0.740 ms
64 bytes from 10.234.147.1: icmp_seq=2 ttl=64 time=0.565 ms
64 bytes from 10.234.147.1: icmp_seq=3 ttl=64 time=0.474 ms
- Run the below command to upgrade firmware.
# ipmitool -I lanplus -H 10.234.147.1 -U administrator -P advantech hpm upgrade firmware.img
PICMG HPM.1 Upgrade Agent 1.0.9:
Validating firmware image integrity...OK
Performing preparation stage...
Services may be affected during upgrade. Do you wish to continue? (y/n): y
OK
Performing upgrade stage:
-------------------------------------------------------------------------------
|ID | Name | Versions | % |
| | | Active | Backup | File | |
|----|-------------|-----------------|-----------------|-----------------|----|
| 1|8312 BMC | 1.03 00000000 | 1.03 00000000 | 1.03 00000000 |100%|
| |Upload Time: 03:06 | Image Size: 10414410 bytes |
-------------------------------------------------------------------------------
(*) Component requires Payload Cold Reset
Firmware upgrade procedure successful
- Activate the firmware via KCS.
# ipmitool hpm activate
- Check firmware upgrade is successful or not.
# ipmitool hpm check
D- Via IPMITOOL over KCS
- Ensure that the ipmitool utility works normally and the version of ipmitool is 1.8.17 or later.
- BMC bootloader:
# ipmitool -z 270 hpm upgrade bootloader.img activate
- BMC: Please run the following command twice for backup BMC.
# ipmitool -z 270 hpm upgrade bmc.img activate
- FPGA: Please power cycle the system after the upgrade, then run the command again for backup FPGA.
# ipmitool -z 270 hpm upgrade fpga.img activate
# ipmitool chassis power cycle
# ipmitool -z 270 hpm upgrade fpga.img activate
- System BIOS: Please power cycle the system after the upgrade, then run the command again for backup BIOS.
# ipmitool -z 270 hpm upgrade bios.img activate
# ipmitool chassis power cycle
# ipmitool -z 270 hpm upgrade bios.img activate
- NVRAM:
# ipmitool -z 270 hpm upgrade NVRAM.img activate
- FW version Check:
# ipmitool hpm check
E- Via BMC IPMI Virtual Serial
By the method, we use a virtual serial interface for inband IPMI accessing.
1. Check system loading with cdc_acm module. (cdc_acm module is default in kernel.)
# lsmod | grep -i cdc
cdc_acm 40960 0
cdc_ether 24576 0
usbnet 53248 1 cdc_ether
2. Manually load cdc_acm module if not been loaded.
# modprobe cdc_acm
3. Dmesg shall provide records on initializing cdc_acm module.
# dmesg | grep -i cdc
[ 21.097403] cdc_acm 1-3.5:1.0: ttyACM0: USB ACM device
[ 21.104280] usbcore: registered new interface driver cdc_acm
[ 21.111596] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
4. Default virtual serial interface shall be named with "ttyACM0" under "/dev/".
# ls /dev/ttyACM0
/dev/ttyACM0
5. Make sure your "ipmitool" utility version is 1.8.18 or later.
# ipmitool -V
ipmitool version 1.8.18-csv
6. Use command below to upgrade system firmware. Reply "y" if all checked.
# ipmitool -I serial-basic -D /dev/ttyACM0 -z 1500 hpm upgrade [firmware.img file]
Ex: upgrade BMCONF.
# ipmitool -I serial-basic -D /dev/ttyACM0 -z 1500 hpm upgrade fwa3051_bmc_conf_standard_1.00.img force
Setting large buffer to 1500
PICMG HPM.1 Upgrade Agent 1.0.9:
Validating firmware image integrity...OK
Performing preparation stage...
Services may be affected during upgrade. Do you wish to continue? (y/n): y
OK
Performing upgrade stage:
-------------------------------------------------------------------------------
|ID | Name | Versions | % |
| | | Active | Backup | File | |
|----|-------------|-----------------|-----------------|-----------------|----|
| 2| BMCONF | 1.00 00000000 | ---.-- -------- | 1.00 00000000 |100%|
| |Upload Time: 00:00 | Image Size: 71708 bytes |
-------------------------------------------------------------------------------
(*) Component requires Payload Cold Reset
Firmware upgrade procedure successful
- add "force" in suffix of the command line if target firmware version and running version are same.
7. Activate the firmware.
# ipmitool hpm activate
#
8. (option) Reset the system after upgrade BIOS/NVRAM/FPGA firmware except to BL/BMC/BMCONF.
# ipmitool chassis power cycle
--End--
Comments
0 comments
Please sign in to leave a comment.