How to upgrade Dell BIOS on Ubuntu


Intro


According to Ubuntu Wiki Dell has discontinued support for Linux. Just such a "nice" surprise. How to upgrade the BIOS then when all of the files are now distributed as a Windows executables? Fortunately, before trying any of not so easily looking solutions on the Ubuntu Wiki I have found out some other way to do it. The following section describes the detailed steps required to upgrade the BIOS on Ubuntu.

Upgrade


1) First of all, you need to install the required package:

$ sudo apt-get install smbios-utils

2) The above package package provides the getSystemId command that we can use to verify the System ID of the machine that is a hex value that is unique for any of the Dell products or products family. I.e. when running the command on my PowerEdge R300 the following output was returned:

$ sudo getSystemId 
Libsmbios version:      2.2.28
Product Name:           PowerEdge R300
Vendor:                 Dell Inc.
BIOS Version:           1.5.1
System ID:              0x020F
Service Tag:            ABCDEFG
Express Service Code:   13772621908
Asset Tag:              
Property Ownership Tag:

3) Now you need to go into the following website, find out the directory containing the System ID that you've just found in its name and use the one that has the latest BIOS version in its name too. I.e. for the above machine this was the following one:

system_bios_ven_0x1028_dev_0x020f_version_1.5.2

5) Go into the directory and download the bios.hdr file. Put it somewhere on your machine and launch the following command to start the BIOS upgrade process:

$ sudo modprobe dell_rbu
$ sudo dellBiosUpdate -u -f bios.hdr

6) Reboot your machine. It should come up with the BIOS version that you've already downloaded and installed. You may check that by running the following command after reboot:

$ sudo dmidecode -s bios-version
1.5.2

12 comments:

  1. Thanks, it works on D830 running Ubuntu 13.10 french version :D

    ReplyDelete
  2. This doesn't work for me. I have DELL Inspiron 17R, and after I try to run on console the command:
    sudo getSystemId
    I get:
    ERROR: Could not parse system SMBIOS table.

    ReplyDelete
  3. Thanks very much. The above worked for updating the BIOS from A04 to A05 on my Dell Studio 1735 laptop.

    NOTE: Under 5) above, the command:

    sudo dellBiosUpdate -u -f bios.hdr

    ...works better if done like this:

    sudo dellBiosUpdate -u -f bios.hdr --reboot

    It should (briefly) confirm within the terminal, then start to reboot. You should then see a WHITE Dell screen that confirms the BIOS update is happening. The first reboot with the new BIOS will be a lot longer than usual before Ubuntu appears.

    ReplyDelete
  4. Looks great. Thanks for sharing the info. Unfortunately, I cannot find my System ID on that website. I have a Dell Latitude E6430u, and my ID is 0x0584, and it's not on that page.

    ReplyDelete
  5. where should i put the file? I put the file in my download folder but I receive the following error "IOError: [Errno 2] No such file or directory: 'bios.hdr'

    ReplyDelete
    Replies
    1. @Anonymous:

      You can put the bios.hdr file anywhere. If you're receiving the above error then it means that either you're providing wrong path to the file in dellBiosUpdate command or that the file got corrupted when downloading it from the http://linux.dell.com/repo/firmware/bios-hdrs/ website.

      Delete
  6. When entering sudo getSystemID, this is what the terminal shows: sudo: getSystemID: command not found

    The Optiplex 760 I'm working on has A03 Bios and they have Bios's up to 13...really would appreciate an answer on how to get my system id.

    Thanks

    ReplyDelete
    Replies
    1. @Anonymous:

      Have you installed smbios-utils package?

      Delete
    2. I show that in my synaptic package manager as being loaded, I also show a libsmbios2 loaded.

      Any help would be much appreciated

      Delete
    3. @Anonymous:

      Try to provide a full path into the command.

      Delete
  7. I can't seem to locate an updated BIOS for my XPS L502X - it is listed for Windows on the Dell Support site but not in this repo.

    When running getSystemId it returns 0x04B6 and currently running v.A06. Any ideas?

    ReplyDelete
  8. bro i got error
    Performing BIOS update...
    Traceback (most recent call last):
    File "/usr/sbin/dellBiosUpdate", line 115, in
    def ensureRbuDriver():
    File "/usr/sbin/dellBiosUpdate", line 153, in main
    exit_code = updateBios(HdrFile(options.hdr), options)
    File "", line 3, in __init__
    File "/usr/lib/python2.7/dist-packages/libsmbios_c/trace_decorator.py", line 108, in trace
    result = func(*args, **kw)
    File "/usr/lib/python2.7/dist-packages/libsmbios_c/rbu_hdr.py", line 65, in __init__
    raise InvalidRbuHdr("Not a valid RBU HDR File. Header doesnt have '$RBU' header.")
    libsmbios_c.rbu_hdr.InvalidRbuHdr: Not a valid RBU HDR File. Header doesnt have '$RBU' header.
    gihan@macbookpro-retina:~/Desktop$ sudo dmidecode -s bios-version
    sudo: unable to resolve host macbookpro-retina
    A12
    gihan@macbookpro-retina:~/Desktop$

    ReplyDelete