How to update the BIOS on a Dell laptop running Linux
For models not supported by lvfs
Completed successfully on a Dell Inspiron 3595 running Manjaro
This fix does not require Manjaro, it should work on any distro.
It took me a looong time to figure out how to do this for various reasons, and there are a lot of forum posts on the net about this exact problem. So for posterity I offer up this guide for any future googlers.
TLDR for advanced users: Use Ventoy to boot the Windows 10 installer and open the command prompt in the “Repair my PC” menu to launch the Dell BIOS update executable from a second USB.
- Grab two USBs that are at least 8 GB in capacity.
- Download the BIOS update file from the Dell support website.
- Copy it to the first USB. Mine was formatted as NTFS but I don’t think it’s critical to the process.
- Download Ventoy. If you’ve never heard of this, spend a minute reading about it. It’s a cool tool.
- Flash Ventoy to your second USB.
- Acquire an .iso of Windows 10. I chose Windows 10 because Windows 7 didn’t boot on my laptop (not sure why), and Windows 11 was too heavy for the CPU. I also tried Freedos but my laptop only has UEFI boot enabled, and no legacy option, which is apparently not supported. Note - you don’t actually need to install or activate Windows in any way so I didn’t feel it was necessary to be too picky about how I acquired the image.
- Copy the Windows 10 .iso file to your Ventoy USB.
- Boot from the Ventoy USB and select Windows 10. (F12 on most Dell laptops to interrupt the boot sequence)
- Click “Repair my PC” in the bottom left hand corner - DO NOT install.
- Click on the “Use command prompt” option which should be in the “Troubleshoot” menu.
- Insert your first USB with the Dell BIOS update file on it.
- Change directory to your first USB.
It automatically mounted mine as
D:
Simply type the name of the drive to change to it. - Type the name of the BIOS update file to execute.
For example:
Inspiron_3595_1.5.0.exe
If you forget the name of the file, typedir
to get a list of files in the current directory. - Watch the magic happen and don’t freak out if it reboots more than once - just let it do its thing until it’s finished.
- (Optional) boot into the BIOS to confirm that the update has been successful (check the version number).
The entire process was fairly quick, less than 5 mintes, and it automatically rebooted twice. The only indication I had that it was finished was that on the third reboot it booted back into Linux. I went back into the BIOS later to confirm that the BIOS version number matched the version number on the Dell website (in this case, 1.5.0).
fwupd can install from exe using the Dell script in https://github.com/fwupd/fwupd/tree/main/contrib/firmware_packager
However that model is supported natively too: https://fwupd.org/lvfs/devices/com.dell.uefi3b49e316.firmware
IE: install gnome-firmware from flatpak or native package manager and it can do the whole thing, no need to download some exe.
That all seems … incredibly complicated.
Why not use fwupd? (link is the Arch wiki but should be relevant for any distro). I’ve been using fwupd to keep my Dell XPS15 BIOS updated for the last few years, with no problems at all.
This is way too long and complicated for just a bios update. Dell laptops actually have a “update bios from flash” option in the boot menu. So all you need is a USB stick formatted to FAT32, copy the bios update file (that you download from their website) into it, boot into boot menu and choose “update bios from flash”. I have done this so many times and even made a YouTube video about it.
Does Dell… not offer a way to update the bios via flash drive or network? The fuck? Every board I’ve ever owned had the option to at least flash from USB.
Other thing: so many Laptops dont get updates anymore. I wonder if we could squeeze one out for the Logofail vulnerability