We sometimes see problems updating our Dell machines to the latest firmware, ie. update_firmware -y fails:

Running updates...
-	Installing dell_dup_componentid_00159 - 1.4.7Installation failed for
package: dell_dup_componentid_00159 - 1.4.7
aborting update...

The error message from the low-level command was:

Could not parse output, bad xml for package: dell_dup_componentid_00159

Dell have been unable to tell me why this is, or provide a fix or workaround.

Here's what I did to get the firmware installed:

Identify the component for which the update is being installed. In this case that is dell_dup_componentid_00159.

Find the update for that component under /usr/share/firmware/dell:

# find /usr/share/firmware/dell -name "dell_dup_componentid_00159*"
# ls /usr/share/firmware/dell/dup/system_ven_0x1028_dev_0x028c/dell_dup_componentid_00159_version_1.4.7/*.hdr

Install the update:

# cd /usr/share/firmware/dell/dup/system_ven_0x1028_dev_0x028c/dell_dup_componentid_00159_version_1.4.7
# dellBiosUpdate -f PER410-010407.hdr -u

As this is a system BIOS update, it is necessary to reboot for the update to be finalised.

# reboot

Note: the firmware packages are installed from the Dell repositories using yum -y update $(bootstrap_firmware). However, they do not seem to be up-to-date as the latest BIOS update for the R410 is v1.4.8 which was released on Sept. 13, 2010. But that's a different issue!

13 thoughts on “Updating Dell firmware when update_firmware fails

  1. Hi,
    Thanks for this tip, it worked.
    Seems like Dell is a real amateur with support for Linux, how hard can it be to update it for them?
    A word of warning, I had a server waiting for a press on the famous F1 key after updating the firmware…

  2. Thanks for the tip.  I had the same issue with an R710 BIOS update, and the manual update fixed it.  You may want to clean up the blog post a little so that the "dellBiosUpdate -f …" command looks more like one line & properly formatted.  At first I thought all I had to do was execute the .hdr file with the -u flag.  🙂

  3. Thanks – WordPress does not fold long lines very well. I have edited slightly so the actual update command is more easily-readable.

  4. Thanks for the tip. I had this same issue on several R710s running CentOS 5.5 x86_64. It's too bad the update_firmware utility doesn't provide better info. I also tried downloading the BIOS .bin file from support.dell.com and it also failed to install.

    update_firmware was initially attempting to update the BIOS from 2.1.15 to 2.2.10, which failed with the same xml parse error. Following the dellBiosUpdate and a reboot, update_firmware was then able to complete all of the devices, even updating the BIOS from 2.2.10 to 2.2.11

  5. Pingback: linux_on_dell by jarak - Pearltrees

  6. Thanks for this great tip. "Amuzingly" I had to run the dellBiosUpdate command twice prior to reboot… but at least I managed to get it done successfully on five M610. Thanks!

  7. On my case, the update_firmware –yes error was that it couldn't find a damn 98-setusb….. file, that is a udev rule.
    Even finding this with "yum whatprovides" and copying to the /etc/udev/rules.d the update_firmware fails. The dellBiosUpdate did the trick 🙂

  8. This is great and I was able to upgrade the Bios, but how do you go about updating other firmware on the system such as the PERC700 raid controller firmware.

    Also, i found these commands on the net that allow me to update to an earlier version than what is in the osma repository:
    sh ./DELL_IMAGE.BIN –extract FOO
    modprobe dell_rbu # standard Linux kernel module
    smbios-rbu-bios-update –test -f FOO/payload/* # make sure it's for this system
    smbios-rbu-bios-update -u -f FOO/payload/* # update
    taken from: http://permalink.gmane.org/gmane.linux.hardware.dell.poweredge/40351

Leave a reply

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


This site uses Akismet to reduce spam. Learn how your comment data is processed.