Difference between revisions of "MFU: Mass Firmware Update"

From Define Wiki
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
== Download ==
 
== Download ==
 
We've only had access to the software via supermicro FTP. For the latest versions, please contact: James Chiang: JamesChiang@supermicro.com.tw
 
We've only had access to the software via supermicro FTP. For the latest versions, please contact: James Chiang: JamesChiang@supermicro.com.tw
 +
 +
== OS Prereq ==
 +
Ensure 'Development tools' is installed
 +
<syntaxhighlight>
 +
  yum groupinstall 'Development tools'
 +
</syntaxhighlight>
 +
 +
Turn off firewall or open up port 4422
  
 
== Installation ==
 
== Installation ==
Line 11: Line 19:
 
Example installation of scmnode:
 
Example installation of scmnode:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
+
[root@head ~]$ unzip SCMSH\ V1.05_build.154_20121019.zip
 +
Archive:  SCMSH V1.05_build.154_20121019.zip
 +
replace SCMSH V1.05_build.154_20121019/install_scmnode_v1.05_build.154_20121019-180231.tar.gz? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
 +
  inflating: SCMSH V1.05_build.154_20121019/install_scmnode_v1.05_build.154_20121019-180231.tar.gz 
 +
  inflating: SCMSH V1.05_build.154_20121019/install_scmsh_v1.05_build.154_20121019-180231.tar.gz 
 +
  inflating: SCMSH V1.05_build.154_20121019/quickstart.txt 
 +
  inflating: SCMSH V1.05_build.154_20121019/ReleaseNote.txt 
 +
  inflating: SCMSH V1.05_build.154_20121019/SCMSH v1.04 User Guide_20120608.pdf 
 +
[root@head ~]$ cd SCMSH\ V1.05_build.154_20121019
 +
[root@head SCMSH V1.05_build.154_20121019]$ tar zxvf install_scmsh_v1.05_build.154_20121019-180231.tar.gz
 +
install_scmsh/
 +
install_scmsh/uninstall.sh
 +
install_scmsh/scmsh.desktop
 +
install_scmsh/install.sh
 +
install_scmsh/scmsh.tar.gz
 +
install_scmsh/README
 +
[root@head SCMSH V1.05_build.154_20121019]$ cd install_scmsh
 +
[root@head install_scmsh]$ ./install.sh
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
== Adding nodes to the scmsh ==
 
== 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.
+
For each node to be monitored by scmsh a line must be added to the <tt>/opt/scmsh/node.cfg</tt> file on the master node.
  
 
The line must contain four bits on information:
 
The line must contain four bits on information:
Line 28: Line 53:
 
compute020=00:25:90:6C:DC:DE,compute020:4422
 
compute020=00:25:90:6C:DC:DE,compute020:4422
 
</syntaxhighlight>
 
</syntaxhighlight>
 
  
 
== Running in Interactive Mode ==
 
== Running in Interactive Mode ==

Latest revision as of 18:32, 7 March 2013

MFU is designed to all a user to update, edit and save the BIOS and IPMI firmware accross multiple nodes through a single command.

Download

We've only had access to the software via supermicro FTP. For the latest versions, please contact: James Chiang: JamesChiang@supermicro.com.tw

OS Prereq

Ensure 'Development tools' is installed

  yum groupinstall 'Development tools'

Turn off firewall or open up port 4422

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).

Example installation of scmnode:

[root@head ~]$ unzip SCMSH\ V1.05_build.154_20121019.zip 
Archive:  SCMSH V1.05_build.154_20121019.zip
replace SCMSH V1.05_build.154_20121019/install_scmnode_v1.05_build.154_20121019-180231.tar.gz? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
  inflating: SCMSH V1.05_build.154_20121019/install_scmnode_v1.05_build.154_20121019-180231.tar.gz  
  inflating: SCMSH V1.05_build.154_20121019/install_scmsh_v1.05_build.154_20121019-180231.tar.gz  
  inflating: SCMSH V1.05_build.154_20121019/quickstart.txt  
  inflating: SCMSH V1.05_build.154_20121019/ReleaseNote.txt  
  inflating: SCMSH V1.05_build.154_20121019/SCMSH v1.04 User Guide_20120608.pdf  
[root@head ~]$ cd SCMSH\ V1.05_build.154_20121019
[root@head SCMSH V1.05_build.154_20121019]$ tar zxvf install_scmsh_v1.05_build.154_20121019-180231.tar.gz 
install_scmsh/
install_scmsh/uninstall.sh
install_scmsh/scmsh.desktop
install_scmsh/install.sh
install_scmsh/scmsh.tar.gz
install_scmsh/README
[root@head SCMSH V1.05_build.154_20121019]$ cd install_scmsh
[root@head install_scmsh]$ ./install.sh

Adding nodes to the scmsh

For each node to be monitored by scmsh a line must be added to the /opt/scmsh/node.cfg file on the master node.

The line must contain four bits on information:

  1. Node Name
  2. Node Mac address
  3. Node Ipaddress / Hostname
  4. 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: 3

MFU 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

The file b9dr72.c31 was obtained via the supermicro site. Download the latest BIOS revision and unpack:

[root@head scmsh]# unzip b9dr72_c31.zip 
Archive:  b9dr72_c31.zip
  inflating: AFUDOSU.SMC             
  inflating: Readme for AMI BIOS.txt  
  inflating: b9dr72.c31              # <-- This is the file we will use with scmsh
  inflating: ami.bat

Then to update, use the following command:

  # ./scmsh x9biosfw/save bios fw -n <node_name> -f <file_name>

  ./scmsh x9biosfw/flash bios fw -n blade1 -f b9dr72.c31

Here is the log file from /var/tmp/

[root@localhost tmp]# cat x9_flash_bios_log.log
Linux BIOS Flash Utility (for UEFI BIOS) V1.07
Copyright (C) 2012 Super Micro Computer, Inc. All rights reserved.

Finding BIOS ID...
ID found in BIOS: 0070D
ID found in file: 0070D
ID Match!

Writing BIOS flash...
Writing Block 4/128
Writing Block 6/128
Writing Block 94/128
Writing Block 96/128
Writing Block 128/128

Writing finished

Verify the BIOS version before and after the update:

# Before
[root@localhost ~]$ dmidecode | grep Version | head -n 1
	Version: 1.0a

# After
[root@localhost ~]$ dmidecode | grep Version | head -n 1
	Version: 1.0b

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