Updating Old Firmware with the OpenBMC Tool

Edit: Have you run into this?

Originally posted April 23, 2019 on AIXchange

I was recently upgrading the firmware on an AC922 server when I realized that the firmware was old enough that no GUI was available for the task. 

Now, for those of you dealing with more recent releases, firmware can be updated using the OpenBMC GUI, which is explained on page 9 of this PDF. Simply connect to your web browser’s BMC IP address and you’re set. 

In my case, I needed the OpenBMC tool. Learn the basic commands and functionality here; download the tool here. Page 3 of the aforementioned PDF outlines the procedure for updating your firmware. 

I was running this command (where bmc or pnor is the type of image being flashed to the system):

openbmctool -U <username> -P <password> -H <BMC IP address or BMC host name> firmware flash <bmc or pnor> -f xxx.tar

My problem was it kept failing when copying the .tar file from my machine to the BMC. Fortunately, this alternative method allowed me to update the firmware. I’d scp the files over to the BMC in the /tmp/images directory. The solution would automatically decompress the files and make them available for use. 

From there I was able to use the curl commands referenced in the GitHub link above and consult the REST-cheat sheet. 

One tricky issue I ran into with curl is that it stores cookies on your machine. After running the commands a few times, they stopped working due to stale cookies. So I had to delete the cjar file in my directory and log back in to get the updates to work. 

Once I got the hang of scp/curl method and my system was updated, the latest version of firmware got my GUI working. So it’s possible I won’t need to be doing these updates manually going forward. Nonetheless, I wanted to share this information so you’d at least have a starting point should you run into these issues when updating the firmware on your machines.