Introduction
I have been playing with my NixOS config for my Framework laptop and noticed that there was a significantly more recent version of the BIOS available. There are some basic instructions for updating the bios using fwupdmgr, firmware update manager client utility, in the nixos-hardware Framework’s readme. Those instruction did not work for me but after some digging I found this thread on the Framework discourse. Of course, if I had looked properly, I could have found the complete instructions on the Framework knowledge base.
What you want to pay extra special attention to is the “Linux/LVFS Beta Testing BIOS” section.
One thing you will notice are these instructions to modify the /etc/fwupd/uefi_capsule.conf
file and include/uncomment a line that says DisableCapsuleUpdateOnDisk=true
.
Thankfully, the Nix community has noticed this and added a fix so we do not have to mess around with configuration files.
It was initially brought up in this PR and a fix was merged in this PR.
With all that said, here was you need to do to update your Framework laptop’s BIOS using NixOS.
Note: I have an 11th Gen Intel Framework laptop. The process might be slightly different for another generation and/or architecture.
Instructions
-
Make sure your laptop is plugged in and not running on its battery.
-
Enable
fwupd
viaservices.fwupd.enable = true;
-
Rebuild your system using
nixos-rebuild
. I used theswitch
flag becausefwupd
needs to run after reboot. I cannot say for certain if thetest
will work but better safe than a bricked laptop. -
Add the LVFS testing channgel via
fwupdmgr enable-remote lvfs-testing
-
Then run the following
fwupdmgr refresh fwupdmgr get-updates fwupdmgr update
-
The prompt will recommend that you reboot and you should do so. The system will reboot and
fwupd
will begin updating your BIOS.
Do not worry if it appears to take a while. My system took a few minutes to update, rebooted, showed nothing but a black screen for another minute and then continued with the boot process normally. You got this.
👋