Enterprise Datacenter Management Voodoo
Posts tagged Firmware
dx360 M2 BIOS updates and manipulations
Aug 27th
Updating the eUFI (BIOS) settings for the dx360 M2 is much easier to do now with the IMM that it comes with. You can even update it and make changes even if there is no operating system installed on the system. There are two files you’ll need:
- ASU tool: This is the tool you use to change eUFI settings.
- Linux BIOS update tool. This can be downloaded at IBM’s web site. There is a tool for updating the eUFI, the IMM, and other things like SAS firmware. The main ones you’ll probably need are teh eUFI and IMM updates.
All three of these tools update a machine through the network.
The first act of bravery you will need is to find the ASU tool and the latest eUFI update on IBM’s web site. I found the ASU update here. The ASU tool will allow you to remotely access nodes and make updates to their BIOS.
The best way to navigate IBM’s site for iDataplex is go to the home page, then at the bottom click on support, then choose System X, then dx360 M2 and never select an Operating system. From there you can see other updates you can do.
Once you find it, you can download the Linux x86_64 image and place it on a linux server that has network access to the IMM of the particular node you are trying to update. Then extract it with tar and you’ll see a file called ‘asu64′. This is the tool we will use.
Change eUFI/IMM Settings
Step 1.
Create a file of all the changes you want to the eUFI. Mine looks like this:
set uEFI.TurboModeEnable Enable set uEFI.ProcessorHyperThreading Disable set uEFI.RemoteConsoleRedirection Enable set uEFI.SerialPortSharing Enable set uEFI.SerialPortAccessMode Dedicated set uEFI.Com1TextEmul VT100 set uEFI.Com1ActiveAfterBoot Enable set uEFI.Com1FlowControl Hardware set uEFI.AdjacentCacheLinePrefetch Disable set uEFI.OperatingMode "Efficiency Mode"
Suppose you don’t know what settings are available to change? Then, you can get the current settings of a machine by running:
./asu64 show all --host 10.0.0.16 --user xcat --password f00bar
The IP address is the IP address of the IMM, the default userid is USERID. The default password is PASSW0RD (P-A-S-S-W-zero-R-D). The IP address is usually set by default in the factory. xCAT is able to set it up automatically too.
2. Update it.
Once you know what you want to update, take that batch file you created and then run:
./asu64 batch settings --host 10.0.0.16 --user xcat --password f00bar
That’s it!
Update eUFI or IMM
This is a similar process to the previous tool. Let’s update the IMM first. On my management server, I just run:
./ibm_fw_imm_yuoo24i_linux_32-64.bin -x .
This will extract all the files we need. Then run:
./iflash64 --package imm_yuoo24i.upd --user xcat --password f00bar --host 10.0.0.16 ... Connected to IMM at IP address 10.0.0.16. Update package firmware type: IMM Update package build level: YUOO24I Target's current build level: YUOO24H Would you like to continue with the update? y/n: y The IMM is preparing to receive the update. Transferring image: 100% Transfer complete. Validating image. Updating firmware: 100% Update complete. Performing activation of the firmware: ......... Waiting up to 240 seconds for the activation to complete: ............................................................ ............................................................ ............................................................ ............................................................ Waiting up to 240 seconds for the IMM to answer to build id requests: ............................................................ ............................ The new version of the targeted firmware is YUOO24I. Firmware flashed successfully
The draw back of this is that it takes forever to do the verifications! If you’re going to do this for a lot of machines, I recommend you fork out the different processes and tee the output to a separate file for each one so you can see the output.
This same proceedure is done for updating the eUFI:
./iflash64 --package ibm_fw_uefi_tme126a_anyos_i386.upd --user xcat --password f00bar --host 10.0.0.16
The output looks the same as when you updated the IMM. Note that this procedure is the same for all IBM Nehalem based products.
Suggestion for IBM make an UpdateXpress that supports PXE boot!
Aug 24th
Downloading firmware for Intel Servers is a bear. IBM has tried to make it easier by providing an update CD that has all the various subsystems in it. This is a pretty good idea. But the problem is, in my world, I need to PXE boot all the servers to an image or run a package on the individual machines.
For example, if you have an HS21 xM server, you can go to this page and you are shown all the different subsystems that you can update. My goodness! That is a lot of work. Not to mention that you may not know what a lot of them are.
IBM is doing two things right:
1. They let you update packages right on the command line if you’re running Linux. This is great if I want to update the BIOS on my machines. I just scp the binary to all the machines and run the update and reboot. Boom! Just like that the BIOS is updated. Nice job IBM. In fact, they even let you change BIOS/CMOS settings from the command line. Much easier than waiting for the boot up screen and pressing F2.
2. They have a tool UpdateXpress System pack that has all the updates in it. This tool is basically a bootable CD that has all the updates. You stick the CD in the system then reboot the system and it updates ALL of the system components.
So that’s what they’re doing right. And the thing is, IBM is soooo close to getting it perfect. What do they need to do?
Well, I need the functionality of #2 in a PXE boot environment. Turns out you can’t network boot that UpdateXpress CD that you created. If you could then think how great it would be? You could just take that and put into xCAT and boot all nodes to this PXE boot environment. But they don’t.
I for one, can not afford to take a CD to every machine in my server farm and watch it boot up and do it. I need a PXE boot environment. On the other hand, it takes me a good 2 hours to go through IBM’s website and get all the binary updates that run on the Linux command line. Once I have them all I had to create my own PXE boot environment that would run under xCAT.
I took about 3 days of work to make such an environment work under xCAT’s service kernel. So when I want to update HS22s or LS22s I do:
nodeset compute runimage=http://mgmt/install/updates/hs22v.tgz
You can get my images for HS22′s and LS22′s here
I’ve been creating images like this since 2003 for IBM hardware. I hope that soon I won’t have to anymore. Before I was making DOS images and PXE booting those with memdisk. It’s great that I can now do everything with Linux. IBM is almost there. Once they get the Update Xpress to PXE boot, we’re golden.