I have an early 11th gen framework, mostly stock hardware, stock firmware, linux only. I’ve backed up, and reset the drive, ready to upgrade my firmware from factory software to latest software. I have successfully followed the instructions to change my display hinges, but this guide is not like that guide.
If you’ve done the whole process in linux, what are your advice?
Thank you!
1.Format a USB drive as FAT32/GPT
2. Download the EFI shell ZIP containing the updated BIOS/Firmware for your model laptop
3. Extract/unzip into formatted flash drive
4. Make sure all the files are not contained within that first folder but located as the first thing you see when you open the USB
5. Boot from USB while laptop is plugged into power, specifically I would advise a “dumb” power supply like charging via a USB-A to USB-C cable, not a USB PD power supply
6. Profit
You can’t do this from within Linux, if you are asking how to format a drive within linux, there are many utilities that do this. I have KDE Partition Manager for instance. Other than that, I’m not really sure what “tips” are needed?
Which BIOS revision are you on currently? You can check from within the BIOS. Please be specific since the knowledgebase article mentions a requirement that you be on BIOS 3.17 to update using the EFI shell update
Below I have linked to downloads for previous BIOS revisions, you may install each EFI update using the same process as above. These are official links so don’t worry about installing some random BIOS software. I’d go one BIOS update at a time, starting from the beginning assuming you aren’t already on 3.17.
My Bios is ‘Insyde H2O Version GFW30.03.02’ which might mean version 3.02.
From studying the instructions it sounds like I have to apply updates in a specific sequence to get all the way to the latest. Also, do I have to make decisions and use efi shell and/or lvfs to complete the process?
“I’d go one BIOS update at a time, starting from the beginning assuming you aren’t already on 3.17.”
does that mean there is nuance to the sequence?
I’d just start with the first BIOS update they launched and go in sequence down the stack of links I posted. Skip 3.09 (I didn’t link 3.09). You cannot use LVFS to update (I wish you could), use the EFI update tool as linked in the posts using the steps I listed and you will be totally fine. I remember having some power issues that caused me great anxiety, which is why I suggested being plugged into a “dumb” power supply that only powers 5V. The laptop checks for power to be supplied before committing to the update but the PD firmware gets updated at the same time which can cause…problems. problems which are avoided by using a low voltage power supply. Just make sure your battery is charged up to like 90% but not 100% as that also causes an error when updating.
I’am not saying you’re wrong about about OP doing best in ignoring me. But I’m using the Framework 13 11th gen factory second laptop. With Gentoo Linux installed using efi-stub.
Then why are you talking about chroot? I’ve only heard that used in reference to Chromebooks tbh. My mistake then and I apologize. Additionally, I know ChromeOS has a built in method of creating a recovery media and that’s the other thing that led me to believe you were on ChromeOS. Apologies either way, but what recovery media are you referring to then?
Given that my bios version now reads 30.03.20, is there nothing else I could conceivably do to complete the firmware update? This was a lot of buildup and effort for me. I would like to be done-done before moving on.
Whenever I reset and install linux, as I do, Am I missing out on any basic functionality if I don’t ‘apt install fwupd’ or the like?
Some parts of the laptop do get updates through LVFS
The fingerprint reader immediately springs to mind and there was most recently a UEFI database revocation update pushed through LVFS
I would still have fwupd installed and use it but these BIOS updates are generally around once a year at best. Given how old the laptop is (and Framework’s…difficulties), I don’t expect too many more updates.
The only other thing I would check is to make sure the laptop is behaving as expected, charging correctly from all ports etc. If you want to be extra thorough, check the EC and TB Retimer version numbers and compare to what was listed with the release to make sure they really did update.
tldr: After enjoying my Framework 13 for four years, upgrading the firmware successfully had rather profound and personal feeling. I am so happy that I now have improved power management and can get a better battery! This company and community are something else, and I am happy to pay premium while they keep it this way.
details:
I planned the upgrade by stripping out the Windows details, and tried to tie it together with the help of Google Gemini. below are the instructions that actually worked well. Still I was afraid of bricking it and didn’t feel very confident. But It sounds like bricking errors were not too common and Ghost Legion knows their stuff, so I went ahead.
firmware upgrade instructions for framework laptop for 11 gen intel, zero prior firmware upgrades, linux only.
Here’s a step-by-step guide to updating your 11th Gen Framework Laptop’s BIOS to the latest version using the LVFS method where possible, and the EFI Shell method when necessary, addressing the specific requirements and issues outlined in your provided data:
Preparation:
Check Current BIOS Version: You’ve already done this: InsydeH2O Version GFW30.03.02. This is crucial for determining the update path. Take a photo of the current bios screen to capture your before state.
Battery Charge: Ensure your battery is not at 100%. LVFS updates can be finicky with a fully charged battery. Discharge it slightly, then plug in AC power.
Configure fwupd:
Enable the LVFS testing repository: sudo fwupdmgr enable-remote lvfs-testing
Crucially: Disable capsule updates: sudo nano /etc/fwupd/uefi_capsule.conf and add the line DisableCapsuleUpdateOnDisk=true. Save and exit. This prevents update failures.
Update Process:
Since your current version is 3.02, you’ll need to proceed incrementally, as some versions have dependencies on prior versions. We’ll prioritize LVFS where possible, but use EFI Shell when required.
Update to 3.17 (LVFS): This is the first version supporting LVFS in your update path.
Run sudo fwupdmgr refresh to refresh the firmware metadata.
Run sudo fwupdmgr update. Follow any on-screen prompts.
Important: Be aware that this and future updates may erase NVRAM boot variables. Have a plan for restoring your bootloader (GRUB) if necessary. Have your OS install media handy.
Update to 3.19 (EFI Shell): This version has a required Intel CSME update, which LVFS cannot deliver.
Download the 3.19 BIOS update ZIP file.
Format a USB drive as FAT32.
Extract the ZIP file contents to the USB drive.
Cleanly unmount the USB drive.
Boot your Framework laptop, pressing F12 to enter the boot menu.
Select the USB drive to boot from.
The startup.nsh script should run automatically. Follow the on-screen instructions. The system will reboot and install the update.
Update to 3.20 (EFI Shell): This version also requires the EFI Shell method as LVFS won’t update the CSME.
Download the 3.20 BIOS update ZIP file.
Repeat the EFI Shell update procedure from step 2.
Update to the Latest (Check Framework Website): After 3.20, check the Framework website for the latest BIOS version. It’s likely that future updates will also require the EFI Shell method. Follow the instructions provided with each release.
Post-Update:
Bootloader Restoration (If Necessary): If you encounter a “cannot find a bootable device” error, press F3 during boot to access the one-time boot menu. Select your EFI boot file. You may need to reinstall or repair GRUB.
Verify Update: After each update, you can verify the new BIOS version in the BIOS settings (F2 during boot).
critique:
Battery level and charging requirements: Why would software need to be sensitive to battery level? Isn’t this an excessive risk of bricking things?
At step 2 the upgrade software kept looping and restarting. I had to carefully time the shutdown button to avoid corruption. At step 3 it didn’t clearly say “it’s now safe to shut down”.
Some of the manual steps, like adding a line to a config file, or running various packages and updates in a sequence, were pretty rough, and the mixture of instructions were hard for me to parse. I didn’t really know what was going on and was just familiar enough with bash to get through it.
I am in awe of the developers who do understand what’s going on and built all this and shared just enough info that I could pull this off!