Firmware updates don't install - how are they supposed to work

I’m running Fedora 30 on a ThinkPad T480s.

When I run “Software”, three firmware updates appear, one System and two UEFI. If I click install, they go away, but come back again when I reboot.

Similarly, if I run fwupdmgr refresh followed by fwupdmgr update, the same three updates are listed, are “scheduled”, and then I am prompted to reboot. But rebooting doesn’t install them, because after reboot I can run fwupdmgr again and they re-appear.

How is this supposed to work, and how do I get them to install?

1 Like

Welcome to the community @davidga. Please take a minute to go over the posts in the #start-here category if you haven’t had a chance yet.

What is the output of

efibootmgr -v

After having issued the fwupdmgr update command? (And before the reboot).

This is the output:

BootNext: 0001
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0017,0018,0019,001A,001C,001D,001E,001B,0023,0001
Boot0000* Fedora	HD(1,GPT,680ab3cc-e62b-4ddc-8936-3a60f7d4d519,0x800,0x80000)/File(\EFI\fedora\shimx64.efi)
Boot0001* Linux-Firmware-Updater	HD(1,GPT,680ab3cc-e62b-4ddc-8936-3a60f7d4d519,0x800,0x80000)/File(\EFI\fedora\shimx64.efi)\.f.w.u.p.d.x.6.4...e.f.i...
Boot0010  Setup	FvFile(721c8b66-426c-4e86-8e99-3457c46ab0b9)
Boot0011  Boot Menu	FvFile(126a762d-5758-4fca-8531-201a7f57f850)
Boot0012  Diagnostic Splash Screen	FvFile(a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380)
Boot0013  Lenovo Diagnostics	FvFile(3f7e615b-0d45-4f80-88dc-26b234958560)
Boot0014  Startup Interrupt Menu	FvFile(f46ee6f4-4785-43a3-923d-7f786c3c8479)
Boot0015  Rescue and Recovery	FvFile(665d3f60-ad3e-4cad-8e26-db46eee9f1b5)
Boot0016  MEBx Hot Key	FvFile(ac6fd56a-3d41-4efd-a1b9-870293811a28)
Boot0017  USB CD	VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,86701296aa5a7848b66cd49dd3ba6a55)
Boot0018  USB FDD	VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,6ff015a28830b543a8b8641009461e49)
Boot0019  NVMe0	VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,001c199932d94c4eae9aa0b6e98eb8a400)
Boot001A  ATA HDD0	VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f600)
Boot001B  USB HDD	VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,33e821aaaf33bc4789bd419f88c50803)
Boot001C  PCI LAN	VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)
Boot001D  Other CD	VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a35406)
Boot001E  Other HDD	VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f606)
Boot001F* USBR BOOT CDROM	PciRoot(0x0)/Pci(0x14,0x0)/USB(11,1)
Boot0020* USBR BOOT Floppy	PciRoot(0x0)/Pci(0x14,0x0)/USB(11,0)
Boot0021* ATA HDD	VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f6)
Boot0022* ATAPI CD	VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a354)
Boot0023* PCI LAN	VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)

Mmh, at a first look it seems fine.
In fact Boot0001 corresponds to Linux-Firmware-Updater

I guess this means it’s supposed to reboot into some kind of updater? It does not. It just reboots normally.

Look at this bug report: Lenovo: Can't update firmware on Lenovo T480s · Issue #1101 · fwupd/fwupd · GitHub

It is related to your laptop model.

It seems that someone is able to update and someone else is not.

2 Likes

OK, I’ve solved my own problem, but I’m not entirely sure how. I reset my BIOS settings to factory defaults, and now it works. So something in my BIOS was preventing changing the boot device, I guess?

1 Like

No, look at the boot order. The firmware update comes last. You need to change the boot order before rebooting.

:thinking:
Are you sure?
BootNext is Boot0001 and Boot0001 corresponds to Linux-Firmware-Updater. This means that for the next boot the selected entry will be the Linux-Firmware-Updater

From efibootmgr man page:

  • BootNext - the boot entry which is scheduled to be run on next boot. This supercedes BootOrder for one boot only, and is deleted by the boot manager after first use. This allows you to change the next boot behavior without changing BootOrder.