Skip to content

Update Framework BIOS on NixOS

Posted on:December 2, 2023 at 06:19 AM


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.


  1. Make sure your laptop is plugged in and not running on its battery.

  2. Enable fwupd via

    services.fwupd.enable = true;
  3. Rebuild your system using nixos-rebuild. I used the switch flag because fwupd needs to run after reboot. I cannot say for certain if the test will work but better safe than a bricked laptop.

  4. Add the LVFS testing channgel via

    fwupdmgr enable-remote lvfs-testing
  5. Then run the following

    fwupdmgr refresh
    fwupdmgr get-updates
    fwupdmgr update
  6. 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.