How to update the BIOS on the Lenovo Legion Go from Bazzite (No Windows required)

THIS METHOD HAS ONLY BEEN TESTED ON THE LENOVO LEGION GO. While some users have successfully followed it on other devices, this is not recommended at this time as no testing has been done. Please only follow this guide if you are using a Lenovo Legion Go. PLEASE BE AWARE THAT DOING THIS ON OTHER DEVICES RISKS MAKING A BRICK

Updating the BIOS on the Legion Go from Bazzite works, and means not needing to keep a pesky Windows partition around for updates. Here’s how to do so. (Credit to the ChimeraOS devs and aarron-lee on github for the original fwupdtool instructions)

Warning: Your battery must be above 25% for the fwupdtool tool to function correctly. In addition, only perform this process when on AC power.

Note: If you have secure boot enabled, you will need to disable it prior to updating your BIOS. Please see the end of the guide for the steps needed to re-enable it afterwards.

  1. Download the BIOS update from Lenovo
  2. Use 7z (or file-roller, etc) to extract the contents of the EXE file
  3. The file we want is the isflash.bin file. Keep that one, the rest don’t matter.
  4. Run this command:

sudo fwupdtool install-blob isflash.bin

  1. Select the ‘System Firmware’ option from the presented menu
  2. After fwupdtool finishes, select ‘Y’ to reboot.

Let the update run. After the initial update screen, your Legion Go may sit on a black screen for anywhere from 30 seconds to several minutes. Just wait. The system will automatically reboot to another ‘Updating…’ screen after that, and then will wind up in the GRUB menu eventually.

Once you are in the GRUB menu (as the BIOS update has re-enabled secure boot and wipes your custom enrolled keys if you had any, so you won’t be able to boot) do the following:

  1. Reboot back into the BIOS
  2. Disable Secure Boot
  3. (Optional) Set UMA back to ‘Auto’ (or whatever your preferred setting is) as the BIOS update will have set it back to 3gb.
  4. Save, and reboot. If you don’t use Secure Boot at all, you’re done. Congrats!

If you do use Secure Boot, you will need to boot back into Bazzite’s Desktop mode, and run

ujust enroll-secure-boot-key

and reboot once more. Follow the normal MOK enroll process, and afterwards enable secure boot in the BIOS again, and all should be working.

Please note that this process has not been tested on Dual-boot systems, as it is presumed that on a dual-boot system you can simply update via Windows.

8 Likes

failed to search for magic as firmware size was 0x21f4888 and limit was 0x2000000: invalid magic for file

This seems like a possibly bad download. I’d re-download and confirm md5sums if needed.

Thank you so much!!! I followed the exact steps, but on a ROG Ally and updates successfully. No USB, no clunky windows installations needed.

Redownloading worked. Surprised it broke the first time considering it successfully unarchived. Thank you.

1 Like

can you explain how you did it? inside the rog ally bios executable there is not a file called “isflash.bin” but only a file with the “339” extension

1 Like

Just replace the name with the one from the ASUS file

it kept giving me an error about magic…in the end I downloaded the ez flash file and it worked Thanks anyway

Honestly, since the ROG Ally can update the BIOS from within the BIOS using ASUS EzFlash, even if there’s some way to do it from within Linux I would just go with the ‘Known working’ method on the ROG Ally.

This method was written for and tested with just the Legion Go, I don’t own an Ally so can’t comment on it’s suitability for that device. My understanding is that the user who used this method on an Ally had a very specific reason for not being about to use the EzFlash method in the ROG Ally BIOS. Them using this method was risky and could have resulted in a brick if anything had gone wrong since it had not been tested on the Ally at all.

in reality, once the command is launched, the rog restarts in ez mode and installs the firmware from there…

1 Like

Yeah, that makes sense. Just stick to using EzFlash for the time being. I’m not really sure if any testing will ever happen with the Ally since given EzFlash in BIOS being a thing there’s very little reason for anyone to want to test alternate methods outside of niche scenarios.

I would stick to EZ Flash and usb stick but it needs both the USB stick and the power plugged in to update. My hub only supports power out and not power in. So this solution was perfect for me.

I’m getting a message “failed to open file “isflash.bin” no such file in directory” do I need to extract the file to a specific location for it to find it? Thanks!!

I cant seem to get this to work no matter what i try. Ive reinstalled the bios update multiple times from the lenovo site and all i get is this everytime

failed to search for magic as firmware size was 0x21f4888 and limit was 0x2000000: invalid magic for file

(Edit)Nvm i got it. I plugged in the power adapter and it ran fine. My fault lol

You just need to make sure you’re in the same directory you extracted the file to in when you run the command in terminal.

1 Like