How to update Dell BIOS firmware regardless of the OS (Linux, Unix, whatever)

My laptop has been randomly freezing in a way that seemed hardware related, so I thought I'd update my BIOS. I run Linux, which Dell doesn't support well for BIOS updates. They used to be better and I remember updating Dell PowerEdge servers using the dellBiosUpdate utility (apt-get install smbios-utils).

Attempted the same on the E6520 laptop but got stuck at extracting hdr file from the exe. Apparently, the firmware-tools package used to provide a utility called extract_hdr, the functionality was later moved to firmwaretool via the --extract option. A recent version of the package firmware-tools-cli (version 2.1.14-0ubuntu1), included firmwaretool, but it didn't provide the --extract option.

Thought maybe OpenManage is the way to go? Sounds like it supports Debian 6, Ubuntu 10.04 and later (see this), but it also seems that OpenManage is only for server hardware (see this).

Then came across this forum discussion.

Here's the BIOS update process that worked for me on Dell Latitude E6520 and should work on any Dell hardware, regardless of the OS it runs (Linux, Unix, whatever).

1. Obtained the Service Tag

Can get it by physically inspecting the machine or via dmidecode or with the smbios-sys-info utility (apt-get install smbios-utils):

$ sudo smbios-sys-info
Libsmbios version:      2.2.28
Product Name:           Latitude E6520
Vendor:                 Dell Inc.
BIOS Version:           A01
System ID:              0x0494
Service Tag:            56NT4Q1
Express Service Code:   11286699049
Asset Tag:

2. Went to Dell Drivers & Downloads, provided my Service Tag, downloaded the latest BIOS firmware package (A15).

3. Installed UNetbootin (apt-get install unetbootin)

4. Plugged in a USB flash drive, launched UNetbootin, selected:

Distribution: FreeDOS 1.0
Type: USB Drive
Drive: /dev/sdc1      <-- be sure to adjust for your system!

Clicked OK

5. Moved the A15 BIOS firmware file (E6520A15.exe) over to it

6. Rebooted the laptop, hit F12 to get the one time boot menu

7. In boot options, chose USB storage device

8. Got the UNetbootin menu, chose default

9. Chose Option 5: FreeDOS Live CD only

10. This dropped me at the A:\> prompt, typed in C:, hit ENTER

11. Typed in E6520A15.exe (tab completion works), hit ENTER

12. Got the BIOS utility update screen, followed the prompts, got:

You must upgrade to A05 before flashing to this BIOS

13. Went back to Dell Drivers & Downloads > BIOS > Previous Versions > Show ALL Previous Versions, but the earliest version was A08. Downloaded that, added to my USB boot disk, repeated the process, again got:

You must upgrade to A05 before flashing to this BIOS

14. Gave up on dell.com and just googled for "E6520 A05", which gave me a link to it on dell.com. Downloaded, repeated the process and was now able to update BIOS to A05.

15. Once on A05, was able to update to A15.

Leave a comment

NOTE: Enclose quotes in <blockquote></blockquote>. Enclose code in <pre lang="LANG"></pre> (where LANG is one of these).