MFU: Mass Firmware Update
MFU is designed to all a user to update, edit and save the BIOS and IPMI firmware accross multiple nodes through a single command.
Installation
- Scmsh must be installed on the host from which you will run the commands.
- Each node to be controlled must have the scmsh agent daemon installed on the system (scmnode).
Adding nodes to the scmsh
For each node to be monitored by scmsh a line must be added to the nodes.cfg file on the master node.
The line must contain four bits on information:
- Node Name
- Node Mac address
- Node Ipaddress / Hostname
- Port it will use to communicate (default 4422)
compute020=00:25:90:6C:DC:DE,compute020:4422
Running in Interactive Mode
To start MFU in interactive mode, navigate to the install directory and run the command:
./run_scmsh
You will see a command prompt appear. There are a small number of commands used in MFU
- cd
Navigate around the different folders in MFU
- list
lists the commands available in the current folder - similar to ls in linux.
- help
List every command and option possible to be run - not really that clear but may be helpful in some cases
- MFU commands
To run a command from MFU, navigate to the correct folder and simply type the command. It will come up with help on waht options are needed for each command
Running in Scripted Mode
MFU can also be scripted to automate fw updates across a cluster
# Assumes the following are set
export LANG=C
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH:/opt/scmsh/lib
export SCMSH_PATH=/opt/scmsh/
export SCMNODE_PATH=/opt/scmnode/
# then run with scmsh <cmd>, for eg
./scmsh list node
[local] (0ms)
blade1 (MAC: 00:25:90:95:30:90, IP: 172.28.1.22, Port: 4422)
compute020 (MAC: 00:25:90:6C:DC:DE, IP: compute020, Port: 4422)
icr (MAC: 00:25:90:6A:E9:B9, IP: 10.9.2.1, Port: 4422)
Total: 3MFU flags
- -n <nodename>
The list of nodes you want to run the command on
- -f (only needed for some commands)
The file name either to read or write
- -m (only needed for some commands)
The mode in which the command runs (eg raw or script).
BIOS Commands
Get BIOS Information
$ ./scmsh biosfw/check bios info -n blade1
[blade1] (29ms)
Vendor: American Megatrends Inc.
Version: 1.0a
Release Date: 08/17/2012
ROM Size: 8192 kB
BIOS Revision: 1.0
Save BIOS FW
./scmsh x9biosfw/save bios fw -n <node_name> -f <file_name>
[root@head scmsh]# ./scmsh x9biosfw/save bios fw -f blade1_bios_save -n blade1 Please wait for saving BIOS firmware.... Don't power off the system or remove AC power! [blade1] (6399ms) File "blade1_bios_save" is received from slave node successfully.
Flash BIOS FW
./scmsh x9biosfw/save bios fw -n <node_name> -f <file_name>
Back up BIOS Config
./scmsh x9biosfw/backup bios config -n <node_name> -f <file_name> -m <mode>
Restore BIOS Config
./scmsh x9biosfw/restore bios config -n <node_name> -f <file_name> -m <mode>
Debugging
If you encounter problems, log files are generated for each command in /var/tmp for each node (so the node the agent/client daemon is running)
[root@localhost scmnode]# cat /var/tmp/*
ERROR:1 Unable to load Driver
----------------------------------------------------------------------------
| Copyright (c)2011 American Megatrends, Inc. |
| AMISCE Utility. Ver 2.01.1029 |
----------------------------------------------------------------------------
built date: 08/17/2012
Bios ID: 0070D
ERROR: Too many options '7D1AD92A7 F4FB50265243CA0 -y -B /opt/scmnode/4422/blade1_bios_save'.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WARNING:
This can overwrite your current BIOS and CMOS!
Make sure you know what you're doing!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1705FEDA6D60AA5 Version:1.8.20100325
Syntax: 1705FEDA6D60AA5 [-h] [-v] [-y]
[-B file] [-b file] [[-x] [-r] -F file] [-f file] [-C]
Options:
-h Show this help page.
-v Enable verbose mode.
-y Assume that the answer to any question which would be asked is yes.
-B file Backup (save) current BIOS ROM chip contents to file.
-b file Backup (save) current CMOS memory contents to file.
-x Disable Supermicro BIOS ID checking while flashing.
-r Reserve the BIOS supported NVRAM while flashing.
-F file Flash (write) the file contents into the BIOS ROM chip.
-f file Flash (write) the file contents into the CMOS memory.
-C Clear the CMOS checksums.
Linux BIOS Flash Utility 1.0
Super Micro Copyright Reserved 2012.
cant open device