Upgrading BIOS on Dell Latitude E7440

| tagged with
  • bios
  • upgrade
  • linux

Modern computers have a lot of firmware, much of which is rather tricky for non-Windows users to upgrade. My Dell Latitude E7440 is no exception. While there are many well-documented options for flashing the BIOS with FreeDOS, this computer is particularly tricky as the upgrade executable weighs in at over 9 megabytes, larger than even the largest biosdisk image.

First we’ll grab a FreeDOS boot image (specifically a 10 MB hard disk image),

$ wget http://downloads.joelinoff.com/fdos11.tar.gz
$ tar -zxf fdos11.tar.gz
$ sudo kpartx -v -a fdos11.img
add map loop0p1 (252:0): 0 2094561 linear /dev/loop0 63
$ mkdir /tmp/hi
$ sudo mount /dev/mapper/loop0p1 /tmp/hi
$ sudo cp ~/Downloads/E7440A08.exe /tmp/hi
$ sudo umount /tmp/hi
$ sudo kpartx -v -d fdos11.img
del devmap : loop0p1
loop deleted : /dev/loop0
$ sudo cp fdos11.img /boot/bios.img

Next we’ll add an entry to the GRUB menu. The easiest way to accomplish this on a Debian machine is to add the following to /etc/grub.d/40_custom followed by running update-grub,

menuentry "Flash BIOS" {
linux16 /boot/memdisk
initrd16 /boot/bios.img
}

Finally, reboot and select the Flash BIOS entry in GRUB.

references

  • https://wiki.archlinux.org/index.php/Flashing_BIOS_from_Linux
  • http://stackoverflow.com/questions/1419489/loopback-mounting-individual-partitions-from-within-a-file-that-contains-a-parti
  • http://www.fdos.org/bootdisks/