Updating BMC Firmware and BIOS for ncn-m001

Retrieve the model name and firmware image required to update an HPE or Gigabyte ncn-m001 node.

NOTE

  • On HPE nodes, the BMC firmware is iLO 5 or iLO 6 and BIOS is System ROM.
  • The commands in the procedure must be run on ncn-m001.

Prerequisites

WARNING: This procedure should not be performed during a CSM install while ncn-m001 is booted as the PIT node using a remote ISO image. Doing so may reset the remote ISO mount, requiring a reboot to recover.

The following information is needed:

  • IP address of ncn-m001 BMC
  • IP address of ncn-m001
  • Root password for ncn-m001 BMC

Find the model name

Use one of the following commands to find the model name for the node type in use.

  • (ncn-m001#) Find HPE model name.

    curl -k -u root:password https://ipaddressOfBMC/redfish/v1/Systems/1 | jq .Model
    
  • (ncn-m001#) Find Gigabyte model name.

    curl -k -u root:password https://ipaddressOfBMC/redfish/v1/Systems/Self | jq .Model
    

Get the firmware images

  1. (ncn-m001#) View a list of images stored in FAS that are ready to be flashed.

    In the following example, ModelName is the name found in the previous section.

    cray fas images list --format json | jq '.[] | .[] | select(.models | index("ModelName"))'
    

    Locate the images in the returned output for the ncn-m001 firmware and/or BIOS.

    Look for the returned s3URL. For example:

    "s3URL": "s3:/fw-update/4e5f569a603311eb96b582a8e219a16d/image.RBU"
    
  2. (ncn-m001#) Get the firmware images using the s3URL path from the previous step.

    In the following example command, 4e5f569a603311eb96b582a8e219a16d/image.RBU is the path in the s3URL, and the image will be saved to the file image.RBU in the current directory.

    cray artifacts get fw-update 4e5f569a603311eb96b582a8e219a16d/image.RBU image.RBU
    

Flash the firmware

Flash Gigabyte ncn-m001

  1. (ncn-m001#) Start a webserver from the directory containing the downloaded image:

    python3 -m http.server 8770
    
  2. (ncn-m001#) Update BMC.

    Be sure to substitute the correct values for the following strings in the example command:

    • passwd = Root password of ncn-m001 BMC
    • ipaddressOfBMC = IP address of ncn-m001 BMC
    • ipaddressOfM001 = IP address of ncn-m001 node
    • filename = Filename of the downloaded image
    curl -k -u root:passwd https://ipaddressOfBMC/redfish/v1/UpdateService/Actions/SimpleUpdate -H 'Content-Type: application/json' \
        -d '{"ImageURI":"http://ipaddressOfM001:8770/filename", "TransferProtocol":"HTTP", "UpdateComponent":"BMC"}'
    

    Wait for the BMC to update and reboot:

    sleep 200
    ping ipaddressOfBMC
    

    When the ping returns that the node has rebooted, check that the firmware version is at the expected value:

    curl -k -u root:passwd https://ipaddressOfBMC/redfish/v1/UpdateService/FirmwareInventory/BMC
    
  3. (ncn-m001#) Update BIOS.

    Be sure to substitute the correct values for the following strings in the example command:

    • passwd = Root password of ncn-m001 BMC
    • ipaddressOfBMC = IP address of ncn-m001 BMC
    • ipaddressOfM001 = IP address of ncn-m001 node
    • filename = Filename of the downloaded image
    curl -k -u root:passwd https://ipaddressOfBMC/redfish/v1/UpdateService/Actions/SimpleUpdate -H 'Content-Type: application/json' \
        -d '{"ImageURI":"http://ipaddressOfM001:8770/filename", "TransferProtocol":"HTTP", "UpdateComponent":"BIOS"}'
    

    This will return a json packet simular to:

    {"@odata.type":"#UpdateService.v1_5_0.UpdateService","Messages":[{"@odata.type":"#Message.v1_0_7.Message","Message":"A new task /redfish/v1/TaskService/Tasks/596 was created.","MessageArgs":["/redfish/v1/TaskService/Tasks/596"],"MessageId":"Task.1.0.New","Resolution":"None","Severity":"OK"},{"@odata.type":"#Message.v1_0_7.Message","Message":"Device is prepareing flash firmware for action SimpleUpdate.","MessageArgs":["SimpleUpdate"],"MessageId":"UpdateService.1.0.PrepareUpdate","Resolution":"None","Severity":"OK"}]}
    

    When updating the Gigabyte BIOS, the BIOS version number will not change until the node is rebooted. To verify a successful update, check the task that was created. Using the return json packet, find the line:

    "A new task /redfish/v1/TaskService/Tasks/596 was created."  
    

    Using the task number (596 in the above example), check the state of the task:

    curl -sku root:password https://ipaddressOfBMC/redfish/v1/TaskService/Tasks/596 | jq .TaskState
    

    State should be “Running” until BIOS update is finished. Once finished, the state will be “Completed”. If you receive a state other than “Running” or “Completed”, check the task for other messages.

    After updating BIOS, ncn-m001 will need to be rebooted. Follow the Reboot NCNs procedure to reboot ncn-m001.

Flash HPE ncn-m001

The web interface will be used to update iLO 5 or iLO 6 (BMC) firmware and/or System ROM (BIOS) on the HPE ncn-m001 node.

  1. (linux#) Copy the iLO 5 or iLO 6 firmware and/or System ROM files to a local computer from ncn-m001 using scp or other secure copy tools.

    scp root@ipaddressOfM001Node:pathToFile/filename .
    
  2. Open a web browser window and type in the name or IP address of the iLO device for ncn-m001.

  3. Log in with root and the root password for the iLO device.

    1. Click on "Firmware & OS Software" on the left menu.
    2. Click on "Update Firmware" on the right menu.
    3. Check "Local File".
    4. Click "Choose File" and select the iLO firmware file or System ROM file.
    5. Click "Confirm TPM override".
    6. Click "Flash".

    After updating System ROM (BIOS), ncn-m001 will need to be rebooted. Follow the Reboot NCNs procedure to reboot ncn-m001.