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, 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 knows how to install u-boot, device-tree blobs and Linux kernel images and initrds for various ARM boards.
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
Does not work for Lenovo ?ThinkPad P50, probably the same for all ?ThinkPads.
There is documentation about upgrading SSD firmware of some models.
Some older BIOS based systems can be updated with Grml and FreeDOS.
Many other packages are available for updating the firmware on specific hardware, so please search the Debian archive for your devices.
These distributions have also advice on updating firmware: Ubuntu Gentoo openSUSE Arch Linux
openseachest can update the firmware of some Seagate SATA, SAS, NVMe and USB storage devices.
Many current Dell devices can be updated with fwupd.
Latitude E series
- Download the file "Latitude_E7x70_1.18.5.exe" (or whatever is the current release).
- Move the file to "/boot/efi/".
- Boot into the one time boot menu with F12 during the BIOS/UEFI start.
- Select the "Flash BIOS Update" menu option.
- Use your mouse to select the update file visually and watch the magic.
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.
- 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.
Extract the eltorito boot image from the image geteltorito -o thinkpad.img Downloads/n1eur31w.iso.
Dump it on a USB thumb drive dd if=thinkpad.img of=/dev/sdX.
- Boot from this thumb drive and follow the instructions of the installer.
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.
Download the bios image .exe file.
apt install cabextract
Copy the .bin file in /boot/efi/EFI/HP/BIOS/New
- Reboot and do the upgrade via the laptop boot menu