Fujitsu PRIMERGY: How to change BIOS settings remotely

If you have multiple servers and you need to change BIOS settings, it is not wise to bring up BIOS setup screen on each server and change the values. It's time consuming. Also you easily make a mistake like forget to change a value on one of the servers.

To avoid this, we normally automate a process with a tool or a script to replicate the changes on all target servers, but is there an interface to do this on Fujitsu PRIMERGY servers? Yes, there is. You can change BIOS settings through iRMC (integraded Remote Management Controller) which is similar to DELL iDRAC or HP iLO. iRMC accepts an XML file as a BIOS configuration file, and it will enable the changes after a reboot.

Here is an example. I will change the CPU Hyper-Threading setting from "Enable" to "Disable" through iRMC on PRIMERGY BX2580 M2.

  1. Create a BIOS configuration change XML file. To disable Hyper-Threading, create a file like this:
  2. $ cat input.xml
    <?xml version="1.0" encoding="utf-8"?>
    <config>
      <sysId>BX2580M2</sysId>
      <configuration>
        <token api="BSPBR"></token>
        <supportedSetting>
          <id>HyperThreading</id>
          <name>Hyper-Threading</name>
          <setupItemID>0x0057</setupItemID>
          <value>Disabled</value>
        </supportedSetting>
      </configuration>
    </config>
    
  3. Send the XML file to the iRMC BIOS restore interface. I use the curl command to do an HTTP POST to iRMC.
  4. $ curl --basic -u <iRMC username>:<iRMC password> --data @<XML file> http://<iRMC IP address>/biosrestore
    example)
    $ curl --basic -u admin:admin --data @input.xml http://192.168.10.21/biosrestore
  5. Reboot the server. You can see the value is changed to Disabled in BIOS after the reboot.

If you need to change multiple settings, you just need to add "<supportedSetting>(BIOS setting you want to change)</supportedSetting>" to the XML file like the following (change both "HT" and "Hardware Prefetcher" to "Disabled":

$ cat input.xml
<?xml version="1.0" encoding="utf-8"?>
<config>
  <sysId>BX2580M2</sysId>
  <configuration>
    <token api="BSPBR"></token>
    <supportedSetting>
      <id>HyperThreading</id>
      <name>Hyper-Threading</name>
      <setupItemID>0x0057</setupItemID>
      <value>Disabled</value>
    </supportedSetting>
    <supportedSetting>
      <id>HardwarePrefetcher</id>
      <name>Hardware Prefetcher</name>
      <setupItemID>0x012E</setupItemID>
      <value>Disabled</value>
    </supportedSetting>
  </configuration>
</config>

If you need to change multiple servers, you can create a script to send the same XML file to iRMC.

2 comments:

ArkellJulianeMagali said...

Hi! Is there a similar way to view all the BIOS settings?

Tchek said...

Hi,

Very good post but can you tell me how enable intel virtualization Technology
and vt-d settings or if you have a list of all supported settings please?

Thanks in advance.

Best regards.

Good Bye, Folks!

As you may have heard, Fujitsu has completely discontinued Data Center Products and Solutions business in North America on April 1st, 2021. ...