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.
Best comment. This solves two cases at once.
No, it isn’t.
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. All my dell machines work just fine with fwupd.
Doesn’t work on all dell laptops. Doesn’t on my inspiron. But dell bios has a “update bios from flash” option. So copy the .exe file into a fat32 USB and flash it there.lol. Done. I’ve done it a million times.
I can confirm works for at least the last 7 years of the entire XPS range and the last 3 years of the latitude range.
Also you can update via the bios/uefi using a usb drive anyway, just pop the exe on and pick that.
Came here to say this. fwupd is so good, it’s almost magic, and good vendors will actually support it themselves.
Why not use fwupd?
Because they’re a Manjaro user and already lost.
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.
Mostly on the newer bios machines. Older ones don’t. Same for hp. Lenovo is all over the place.
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.
They do. Even back in their pre-UEFI days, it was possible to flash BIOS from a properly-formatted USB drive by holding down a magic key combination at power on. But it was not exactly publicized as a supported method.
Ubuntu does it automatically from the software app. But DellXPS 13 might be natively supported…
Next time buy from vendors who use USB flash drive or bootable CD-ROM.
Next time buy from vendors which support fwupd.
Actually Dell supports fwupd very well.
Other thing: so many Laptops dont get updates anymore. I wonder if we could squeeze one out for the Logofail vulnerability
Thanks so much for this post! Ventoy is really the tool I never knew I really needed. Up to now, I have been reflashing and juggling sticks with various ISOs.
But even better, now I could finally update the BIOS on my Framework 13!
tl;dr boot Windows. 🙄
😂😂🤣🤣 (no)
The command prompt to be exact. Which is presumably a version of MS-DOS. Which makes me wonder if you can’t simply boot MS-DOS or FreeDOS — assuming you can find a copy that boots under UEFI. It’s certainly lighter then a whole Windows iso and you can include the firmware with it on a tiny FAT partition.
Windows hasn’t been based on DOS for over 2 decades at this point…
Windows hasn’t but the command prompt they put on the ISO could still be DOS. It’s perfect for this use case, it’s single process and lightweight.