As of this writing, BIOS updating via the Linux Vendor Firmware Service remains a work in progress. If you’re a Linux user and you want to update your BIOS, it is possible to do this by booting off of a Windows Preinstallation Environment USB key.
WARNING:
The usual warnings apply - no warranties given, read the instructions carefully, cross-check them against the documentation that I’ve linked to, and if things break you get to keep the pieces. Only do this if you know what you’re doing!
This worked for me to update to BIOS version 3.06, using Windows 11 to create a WinPE USB key. It may - or may not - work for different Windows or BIOS versions.
You will need:
-
A Windows PC (I did this with Win11; if anybody successfully updates their BIOS with Win10 I will update this post)
-
A USB key that is smaller than 32GB (so it’ll play nice with FAT32 - see explanation here)
-
The latest Framework BIOS updater for Windows
To create the WinPE USB key, do this on your Windows PC (further notes here and here):
-
Format your USB key. (I used Rufus to do this, and set the partition table to MBR)
-
Download and install the Windows Assessment and Deployment Kit (Windows ADK) and Windows PE add-on (link here)
-
Run “Deployment and Imaging Tools Environment” as administrator (it’ll be in Start > Windows Kits). You should now see a command prompt.
-
Run the following command in the command prompt:
copype amd64 C:\WinPE_amd64
(Replace C:\WinPE_amd64 with the directory of your choice)
You can then close this particular command prompt for now.
- Now open a regular command prompt as administrator and run this command:
Dism /Mount-Image /ImageFile:“C:\WinPE_amd64\media\sources\boot.wim” /index:1 /MountDir:“C:\WinPE_amd64\mount”
(Again, replace C:\WinPE_amd64 with the directory of your choice)
-
Go to C:\WinPE_amd64\mount (or whatever directory you’ve used as MountDir in Step 5), and add the BIOS updater to that directory.
-
Now open a regular command prompt as administrator and run this command to create a new WinPE image with the BIOS updater included:
Dism /Unmount-Image /MountDir:“C:\WinPE_amd64\mount” /commit
(Replace C:\WinPE_amd64 with whatever directory you’ve used)
- Run Deployment and Imaging Tools Environment as administrator and run the following command, changing the WinPE directory (“C:\WinPE_amd64” below) and USB drive letter (“F:” below) as necessary:
MakeWinPEMedia /UFD C:\WinPE_amd64 F:
You should now have a USB key with WinPE and the Framework BIOS updater in it.
On your Framework laptop:
-
Boot from the USB key. (You may have to change the boot order in BIOS settings to do this)
-
You should now see a command prompt. Assuming you put the BIOS updater in the “mount” directory in Step 6, you should now run these commands:
X:
Framework_Laptop_BIOS_[version number].exe
- Wait.
Congratulations, you’ve updated your BIOS.
Troubleshooting:
The MakeWinPEMedia command doesn’t work
-
Make sure you run the command in Deployment and Imaging Tools Environment. (The Microsoft documentation isn’t entirely clear on this.)
-
Make sure you’re using a USB key that is between 512MB and 32GB.