Verifying Microcode Levels

Edit: As of this writing the link still works.

Originally posted January 17, 2012 on AIXchange

As great as POWER7 servers are, plenty of older machines still run AIX. And as great as that is, even better is that, through the use of certain tools, you can easily verify that these older machines are running the latest versions of system firmware and microcode.

Recently a “Top Gun” CE reminded me about the Microcode Discovery Service. It’s a handy tool that allows you to see if your microcode is up to date.

From IBM Support:

“Microcode Discovery Service [MDS] is used to determine if microcode installed on your IBM System p or RS/6000 systems is at the latest level.

“MDS relies on an AIX utility called Inventory Scout. Inventory Scout is installed by default on all AIX 5 systems, and also on some later levels of AIX 4.3.”

As noted by IBM, there are three ways to run MDS:

  • Run a signed Java applet that connects to Inventory Scout daemon processes on hosts to be surveyed.
  • Run Inventory Scout either manually or by script, and upload the resulting survey files to the MDS website for analysis. Refer to the User’s Guide for instructions on running Inventory Scout.
  • The MDS Microcode CD-ROM is recommended for systems that are not internet connected. An image of this CD-ROM is available online, or you can order a physical disk. For more information or to download a CD-ROM image of this tool, visit: MDS Microcode CD-ROM.

Under the heading, “Preparing to use the Microcode Directory Service,” there’s a description of the Inventory Scout:

“Inventory Scout is a utility that runs on System p hosts. For AIX version 5 and later it is part of the standard install. In case it is not installed, refer to the User’s Guide for instructions. …

“The MDS applet is capable of performing surveys of more than one host at a time, and creating a combined microcode report. If using the MDS applet, then the following additional conditions must be met.

  • “Each host to be surveyed must be running Inventory Scout in a daemon process. These daemon processes are not started by default. Refer to the User’s Guide for instructions on how to configure Inventory Scout to run as a daemon.
  • “Java support must be enabled in your browser. To enable this support, see the Preferences or Tools options on your browser.
  • “Your company must allow applets to establish TCP connections to the hosts to be surveyed.”

I clicked on the applet option

and allowed it to run:

This screen allows you to add a host and give it an IP address, password and (optionally) the port if you’ve changed it.

If the wrong IP address is entered, you’ll get this screen.

I ran passwd on the invscout userid so that I knew the password for the invscout account. Then I ran invscoutd –d100000 on the command line of the machine I was going to scan so I could activate the daemon and get it to listen for the applet to connect. Originally invscoutd was listening for 50,000 bytes. It needs to listen for 100,000 bytes, which is why the –d flag is required.

Once I successfully added the host, I clicked start:

That brought up this report.

It found three devices and displayed the system firmware that needed to be updated. I clicked the link and copied the files to the machine that was running the applet. Then I moved those files over to the Power system that needed to be updated.

In my case I created /tmp/mcode, and copied the files to that directory. Then I ran rpm –ivh -–ignoreos *.rpm to get the information and microcode loaded into the /etc/microcode directory.

Next, I ran diag, task selection:

On this screen, I selected the “Microcode Tasks” option:

Then I selected “Download Latest Available Microcode” and hit enter:

Since I ran the rpm command earlier, I knew the files should be in /etc/microcode. I selected that option:

Then I selected “All Resources” and then hit the F7 key to let the microcode install:

I actually updated the system firmware via the HMC, though I could have used the command line if my system wasn’t managed by an HMC. Once my updates were complete, I reran the MDS applet. No further updates were needed:

Mds13

Of course there are other methods for verifying that your microcode is up to date. How do you prefer to do this in your environment?