Known ways to update firmware on common hardware

This is a collection of known ways to update your built-in firmware (including BIOS, UEFI and other things like Intel ME) on well known common hardware.

Linux Vendor Firmware Service

fwupd utilizes a firmware database to fetch missing updates for your system and peripherals. Currently the vendor and device coverage is not too broad but it is a good starting point before you dive into vendor specific update procedures.

Servers

Servers, IoT and other devices usually have management systems which also allow you to apply various updates automatically or after downloading a firmware package from the vendor website.

flash-kernel

flash-kernel knows how to install u-boot, device-tree blobs and Linux kernel images and initrds for various ARM boards.

flashrom

flashrom knows how to identify, read, write, verify and erase flash chips for BIOS, EFI and other boot firmware, network cards, SATA controller cards, and other external devices. It is often used for installing coreboot.

Bootable ISO image via grub-imageboot

grub-imageboot provides the ability to boot iso images directly from your grub boot menu.

sudo apt install grub-imageboot;
sudo cp 7wuj43uc.iso /boot/images;
sudo update-grub2;

via Don Armstrong

{X} Does not work for Lenovo ?ThinkPad P50, probably the same for all ?ThinkPads.

SSDs

There is documentation about upgrading SSD firmware of some models.

BIOS

Some older BIOS based systems can be updated with Grml and FreeDOS.

Other

Many other packages are available for updating the firmware on specific hardware, so please search the Debian archive for your devices.

Some Debian ports may have more specific firmware update instructions and documentation for related hardware.

These distributions have also advice on updating firmware: Ubuntu Gentoo openSUSE Arch Linux

Seagate

openseachest can update the firmware of some Seagate SATA, SAS, NVMe and USB storage devices.

Dell

Many current Dell devices can be updated with fwupd.

Latitude E series

Instructions

  1. Download the file "Latitude_E7x70_1.18.5.exe" (or whatever is the current release).
  2. Move the file to "/boot/efi/".
  3. Boot into the one time boot menu with F12 during the BIOS/UEFI start.
  4. Select the "Flash BIOS Update" menu option.
  5. Use your mouse to select the update file visually and watch the magic.

Works on

Lenovo

ThinkPads

Current ?ThinkPads (e.g. P15v Gen1) can be updated with fwupd. In case your device is supported you'll find information about it in the README next to the update on the Lenovo support page.

Instructions

  1. Download the BIOS Update bootable CD image from Lenovo. The file name changes but the latest one for the X220 series was "8duj31us.iso". Select Windows as OS so it's available for download.
  2. Extract the eltorito boot image from the image geteltorito -o thinkpad.img Downloads/n1eur31w.iso.

  3. Dump it on a USB thumb drive dd if=thinkpad.img of=/dev/sdX.

  4. Boot from this thumb drive and follow the instructions of the installer.

Works on

HP

EliteBook

HP insists that one needs Windows to update the firmware. This procedure has worked many times for me so far, but I suppose if you want to reliably be able to manage your laptop without Windows, you're better off not buying expensive laptops from HP.

Instructions

  1. Download the bios image .exe file.

  2. apt install cabextract

  3. cabextract file.exe

  4. Copy the .bin file in /boot/efi/EFI/HP/BIOS/New

  5. Reboot and do the upgrade via the laptop boot menu

Works on


CategoryHardware | CategoryProprietarySoftware