Ubuntu – Why do firmware updates not apply

firmwareuefiupdate-managerupdatesxps

I cannot get firmware updates to apply on a Dell XPS 9360 running Ubuntu 18.04. Files are copied to the boot partition and found upon reboot, but the update does not seem to be applied after the reboot has finished.

Update procedure

I recently upgraded this laptop from 16.04 to 18.04 and for the first time I received a notification that firmware updates are available. Clicking the notification opens Ubuntu Software which shows the available updates:

  • Version 1.3.1.0 for XPS 13 9360 TPM 2.0
  • Version 0.2.9.0 for XPS 13 9360 System Firmware

After pressing Update All in Ubuntu Software, I can confirm (in a terminal) that *.cab files have been copied to /boot/efi/EFI/ubuntu/fw/ and I get asked to reboot.

During reboot, a short messages confirms that the update files are found and the screen blinks a few times. To me this seems as if the system switches into update modes and applies the updates before completing the reboot.

Failed result

Afterwards, the system boots normally into Ubuntu but updates do not seem to have been applied:

  • Ubuntu Software still lists the same updates
  • fwupdmgr still lists the same updates
  • sudo dmidecode -s bios-version still shows the old version 2.2.1 instead of 2.9.0
  • cat /sys/class/tpm/tpm0/ppi/version shows version 1.3 instead of 1.3.1 (I don't know for sure if this is a valid way to check the firmware version of TPM; when trying to install tpm-tools, starting trousers.service failed)

Attempted alternatives

  • Trying with fwupdmgr lead to the same results: Files end up in boot partition and are found upon reboot but do not get applied.
  • Booting into update manager and manually selecting the *.cap files fails as well (could select the file but not proceed because the button stayed grayed out)

My question remains: How can I apply the firmware updates offered by Ubuntu Software and fwupdmgr?

Best Answer

I found this troubleshooting guide by the developers of fwupdate which suggests to try to apply updates one by one:

Booting into fwupx64.efi but nothing happens

Are you applying multiple capsules simultaneously? This could mean doing a TPM update and BIOS update at the same time, or an FMP update and BIOS update at the same time. I am doing multiple updates and it fails

  1. Re-run the cleanup systemd unit.

    • You'll need to remove a state file (in /var/lib/fwupdate/done or somewhere similar - distro dependent)
    • This removes the payloads from EFI system partition, Boot entries and all NVRAM variables.
  2. Re-run just one update at a time. If this fixes your problem, please report an issue with the relevant details.

Following these steps I succeeded to install the system firmware update:

$ sudo fwupdmgr clear-offline
$ sudo fwupdmgr clear-history
$ sudo fwupdmgr install ${HOME}/.cache/fwupdmgr/afddc660b9a0f8045feaa4703f8258a5d197dad1-Signed_1152921504627781711.cab

After a reboot, the DELL system firmware updated itself.

I was not able to also install the TPM firmware upgrade yet. Maybe the troubleshooting guide on how to solve issues with applying a single update helps in debugging the issue and finding enough information for a bug report. I have not tried yet.

Related Question