Here are two ways to update the firmware on Dell iDRAC6 remote access cards.

Both methods require downloading the BIOS from Dell and extracting it from the bundle. For example, this is the 1.70.21 firmware:

mkdir /tmp/dell
cd /tmp/dell
wget http://ftp.dell.com/esm/IDRAC6_FRMW_LX_R299265.BIN

Grab this and extract like this:

cd /tmp/dell
sh IDRAC6_FRMW_LX_R299265.BIN --extract ./idrac6-1.70.21

The firmware image is now in /tmp/dell/idrac6-1.70.21/payload/firmimg.d6

If you are just updating one machine, then the simplest way to perform the update is to use the Dell bmcfwul tool locally. This is supplied in the dell_ie_nitrogen package, and is installed to /usr/libexec/dell_dup/dell_ie_nitrogen/bmcfwul

Install the new firmware like this:

/usr/libexec/dell_dup/dell_ie_nitrogen/bmcfwul -input=/tmp/dell/idrac6-1.70.21/payload/firmimg.d6

If you have several machines to update, the most convenient way to perform the update is with tftp.

First, copy the firmware image to the tftp server, and put it in /tftproot, or wherever the root of your tftp server is located:

scp /tmp/dell/idrac6-1.70.21/payload/firmimg.d6 $ip_of_tftp_server:/tftproot

Then, trigger a firmware upgrade on the machines remotely using either racadm or ssh:

racadm -r host.to.update -u root -p calvin fwupdate -g -u -a $ip_of_tftp_server

or

ssh host.to.update racadm fwupdate -g -u -a $ip_of_tftp_server

6 thoughts on “Updating Dell iDRAC6 firmware on linux

  1. I tried to follow your steps to update our PowerEdge R510 firmware. But it's failing with the below error:
     
    root@skipper:/tmp/dell# sh IDRAC6_FRMW_LX_R299265.BIN –extract ./idrac6-1.70.21IDRAC6_FRMW_LX_R299265.BIN: 38: [: Linux: unexpected operator
    IDRAC6_FRMW_LX_R299265.BIN: 52: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 53: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 56: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 57: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 58: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 59: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 97: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 100: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 103: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 104: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 105: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 108: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 109: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 110: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 111: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 112: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 113: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 116: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 117: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 118: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 119: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 120: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 121: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 122: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 123: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 124: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 125: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 126: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 129: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 130: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 131: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 132: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 133: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 134: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 135: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 138: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 141: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 144: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 147: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 148: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 149: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 150: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 151: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 152: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 155: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 156: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 157: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 158: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 159: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 160: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 161: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 162: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 163: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 193: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 263: [: Linux: unexpected operator
    IDRAC6_FRMW_LX_R299265.BIN: 959: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 960: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 963: [: Linux: unexpected operator
    IDRAC6_FRMW_LX_R299265.BIN: 969: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 970: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 971: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 976: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 977: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 1000: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 1001: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 1004: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 1006: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 1007: [: -eq: unexpected operator
    IDRAC6_FRMW_LX_R299265.BIN: 1019: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 943: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    IDRAC6_FRMW_LX_R299265.BIN: 1141: IDRAC6_FRMW_LX_R299265.BIN: arithmetic expression: expecting primary: "_LIMIT++"
    IDRAC6_FRMW_LX_R299265.BIN: 353: IDRAC6_FRMW_LX_R299265.BIN: typeset: not found
    sleep: missing operand
    Try `sleep –help' for more information.
     
     
    Please help
     

  2. Try using bash instead of sh?

    What OS is this on? The article didn’t say, but I was running on CentOS 5.x which symlinks /bin/sh -> bash.

    R.

  3. Robin, try this:
    $ cd /bin
    $ sudo mv sh sh.backup
    $ ln -s bash sh
    $ sudo aptitude install libstdc++5 rpm

    Finally, yo can execute the firmware update script downloaded from dell

  4. Crashbit,

    Thanks for the reply but the platform in question was CentOS 5.x which:

    1. comes with /bin/sh symlinked to /bin/bash already
    2. uses yum not apt(itude).

    R.

  5. I managed to update using the -n (no security) flag and the run-able (bin) installers.

    Everything back up and running now.

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

required