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).
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.
Came here to say this. fwupd is so good, it's almost magic, and good vendors will actually support it themselves.
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.