Updating the BIOS for my Latitude E6400 from Linux

The BIOS on my beloved Latitude E6400 has never been updated. The problem was that I did not have a valid Windows license for this computer.

I initially tried to solve this by moving one of the hard drives from another one of our Latitude E6400s, but for some reason Windows refused to boot on my E6400 (there were slight differences in hardware, different wifi adapter and a faster Intel CPU in my laptop).

Plan B was to try updating the BIOS by using a FreeDOS cd with the BIOS utilities on it, but FREEDOS did not seem to like (as in did not have a valid driver) the DVD drive in the E6400s.

Plan C was to do the updating from within Linux itself. The following procedure I pieced together from a number of different sites.

The first thing I did was to confirm what version I currently had installed:

  1. $ sudo dmidecode -s bios-version
  2. A14

The next step was to set up the repository in order to download the firmware tools:

  1. wget -q -O - "http://linux.dell.com/repo/firmware/bootstrap.cgi" | bash

Note, that the previous command requires administrative or root access, and sudo does not cut it. You need to log in to a root shell.

  1. sudo su -
will do nicely.

Now we install the binaries: aptitude install firmware-addon-dell Now I needed to know what the device ID was:

  1. sudo bootstrap_firmware -a |grep system-bios

The results in my case:

  1. system-bios-ven-0x1028-dev-0x0233/system(ven_0x1028_dev_0x0233) system-bios-ven-0x1028-dev-0x0233

From here I did a look up of my device (0x0233) here:
http://linux.dell.com/repo/firmware/bios-hdrs/

I looked for the bios revision that I was interested in (at the time of writing this the latest BIOS version was A27), so I followed this link:
http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev...

I downloaded the bios.hdr file. Which is what I used to flash the BIOS. The command for that is:

  1. sudo dellBiosUpdate -u -f ./bios.hdr

After a reboot the bios began the update procedure. I verified the new BIOS version with dmidecode:

  1. $ sudo dmidecode -s bios-version
  2. A27

It should be noted that I was running Ubuntu 10.04 (LTS) with kernel 2.6.32-25-generic x86_64