linux-surface / surface-uefi-firmware

UEFI firmware updates for surface using fwupd. WIP, be careful.
110 stars 9 forks source link

Warning no updates to process. Called in error? #20

Open unxpected-uxp opened 2 years ago

unxpected-uxp commented 2 years ago

Hi, I've downgraded my firmware on a Surface Pro 6 about three weeks ago. Two days ago there was a new UEFI update that got installed automatically, so I wanted to downgrade again.

I use a usb stick with Ubuntu installed on it (not a Ubuntu-Live-Installation stick... a full Ubuntu install on the stick). So my thought was: Put in the stick, boot Ubuntu, re-do the fwupdmgr install command in terminal (since it's a full installation it was still there exactly as I left it, just had to press the arrow up key in terminal and hit enter), reboot, profit

fwupdmgr install showed as expected:

Decompressing…           [***************************************]
Authenticating…          [ -                                     ]
Authenticating…          [***************************************]
Installing on System Firmware…                                   ]
Scheduling…              [***************************************]
Successfully installed firmware

Upon rebooting I only see the progress bar below the Windows logo for a split second (and it's on 100% from the beginning) and the firmware isn't changed. When manually selecting the Linux firmware upgrade from the boot order I see the following in the top-left corner:

warning no updates to process. called in error?
error file '/boot/' not found
no such device: /.disk/info.
no such device: /.disk/mini-info.

Any ideas? Thanks in advance!

Edit: When I did this last month I had UEFI version 235.3732.768.0 (June 2021), there was no problem going down to 235.3261.768.0 (September 2020). As of version 237.3982.768.0 (28th February 2022) whenever I try to flash (any) older version, all that happens is that I see the blue progress bar for a split second (it goes from 0% to 100% instantly) and no change in the UEFI is done. However, when trying to flash the latest (February 2022) version it works and re-flashes it (progress bar goes slowly from 0 to 100 in ~20 seconds).

Would there be a way to modify the UEFI file itself to make it "act" as the newest version so it can be "re"-flashed?

xz-dev commented 2 years ago

Where is your efi partition, it's mounted at /boot?

xz-dev commented 2 years ago

I find the way to update it, it's a little late, sorry Change /etc/fwupd/uefi_capsule.conf

DisableCapsuleUpdateOnDisk=true
unxpected-uxp commented 2 years ago

I just tried that (thanks for answering after months!). It now downgraded on my SP6 from 238.167.768 to 237.3982.768. Unfortunately that version has undervolt disabled (which is why I want to downgrade in the first place) as well. I then tried going down to 235.3261.768 and the same thing happens. It reboots, shows the blue progress bar for a split second (0% to 100% instantly) and it doesn't flash the UEFI.

Maybe you have another idea?

qzed commented 2 years ago

To me this sounds like it's a firmware check that prevents flashing at that point.

Maybe Microsoft blocked downgrading below some versions? IIRC the undervolting capability has some security implications, so maybe they locked that?

xz-dev commented 2 years ago

You can run fwupdmgr get-history to see what's happened