Failed to Update

I am using F31. Since 2 days I am getting the following error pop-up as soon as I boot into the system:

update-error

When I ran fwupdmgr from the command line I got this after ~20second:

[xxx@wasteland ~]$ fwupdmgr --version
client version:	1.3.3
compile-time dependency versions
	gusb:	0.3.0
	efivar:	37
Failed to connect to daemon: Error calling StartServiceByName for org.freedesktop.fwupd: Timeout was reached

But as soon as I ran it again I’ve got immediatelly:

[xxx@wasteland ~]$ fwupdmgr --version
client version:	1.3.3
compile-time dependency versions
	gusb:	0.3.0
	efivar:	37
daemon version:	1.3.3

Any idea? I’m up to date with all the updates. I do it daily.

1 Like

fwupdmgr is a part of fwupd package and is a service for updating firmware of supporting devices from Linux – including BIOSes of supported notebooks. Package description reads:

fwupd is a daemon to allow session software to update device firmware.

The list of supported devices is not very big, as far as I know. As for notebooks - there are some ThinkPads and Dell ones supported. More info can be found on the projects website:

https://fwupd.org/


It looks like fwupd daemon fails to start for some reason.

You can try looking at

sudo systemctl status fwupd
sudo journalctl -u fwupd

for any additional clues.

And the short version is, your system updates are fine, there’s some problem with fwupd daemon – but it shouldn’t be critical to system well-being or security.

4 Likes

I have the same issue it is reported as a bug against to fwupd

https://bugzilla.redhat.com/show_bug.cgi?id=1731758

https://bugzilla.redhat.com/show_bug.cgi?id=1775729

You can avoid the mesg trough downgrade the package to 1.2.2

sudo dnf downgrade fwupd

and when you need update you can exclude this package. sudo dnf upgrade -x fwupd

It is what i am doing to skip this until next updates.

4 Likes

@nightromantic, @xtym
Thank you for your feedback.

I know it’s nothing serious, it’s just annoying. The service looks dead.

From journalctl, I am getting the following error since Nov 23rd:

Nov 26 18:53:29 wasteland systemd[1]: Starting Firmware update daemon...
Nov 26 18:53:54 wasteland fwupd[2367]: 17:53:54:0687 FIXME                failed to allocate dbus proxy object: Error calling StartServiceByName for com.intel.tss2.Tabrmd: Timeout was reach>
Nov 26 18:53:54 wasteland fwupd[2367]: ERROR:esys:src/tss2-esys/esys_context.c:69:Esys_Initialize() Initialize default tcti. ErrorCode (0x000a000a)
Nov 26 18:53:59 wasteland fwupd[2367]: 17:53:59:0776 FuEngine             failed to add udev device /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0: failed to open (null): Bad address
Nov 26 18:53:59 wasteland systemd[1]: Started Firmware update daemon.

Running info on the rpm yields something strange:

[xxx@wasteland ~]$ sudo dnf info fwupd
Last metadata expiration check: 1:01:00 ago on Tue 26 Nov 2019 07:04:03 PM CET.
Installed Packages
Name         : fwupd
Version      : 1.3.3
Release      : 1.fc31
Architecture : x86_64
Size         : 15 M
Source       : fwupd-1.3.3-1.fc31.src.rpm
Repository   : @System
From repo    : updates
Summary      : Firmware update daemon
URL          : https://github.com/fwupd/fwupd
License      : LGPLv2+
Description  : fwupd is a daemon to allow session software to update device firmware.

Available Packages
Name         : fwupd
Version      : 1.3.3
Release      : 1.fc31
Architecture : i686
Size         : 2.0 M
Source       : fwupd-1.3.3-1.fc31.src.rpm
Repository   : updates
Summary      : Firmware update daemon
URL          : https://github.com/fwupd/fwupd
License      : LGPLv2+
Description  : fwupd is a daemon to allow session software to update device firmware.

It seems that the same version is available. Re-installing gives an error:

Running transaction
  Preparing        :                                                                                  1/1 
  Running scriptlet: fwupd-1.3.3-1.fc31.x86_64                                                        1/1 
  Reinstalling     : fwupd-1.3.3-1.fc31.x86_64                                                        1/2 
  Running scriptlet: fwupd-1.3.3-1.fc31.x86_64                                                        1/2 
  Running scriptlet: fwupd-1.3.3-1.fc31.x86_64                                                        2/2 
  Cleanup          : fwupd-1.3.3-1.fc31.x86_64                                                        2/2 
  Running scriptlet: fwupd-1.3.3-1.fc31.x86_64                                                        2/2 
Failed to try-restart pesign.service: Unit pesign.service not found.

  Verifying        : fwupd-1.3.3-1.fc31.x86_64                                                        1/2 
  Verifying        : fwupd-1.3.3-1.fc31.x86_64                                                        2/2 

Reinstalled:
  fwupd-1.3.3-1.fc31.x86_64                                                                               

So probably I just have to wait for an update… or downgrade it.

On a side note, looking at the journalctl for fwupd, for dates before Nov 23, I have the following:

Nov 22 19:13:37 wasteland systemd[1]: Starting Firmware update daemon...
Nov 22 19:13:37 wasteland fwupd[2379]: 18:13:37:0897 FuPluginUefi         /boot/efi does not have sufficient space, required 33.6 MB, got 27.1 MB
Nov 22 19:13:43 wasteland systemd[1]: Started Firmware update daemon.
Nov 22 21:16:03 wasteland systemd[1]: fwupd.service: Succeeded.

How can I instruct grub to keep only current and one more kernel? I don’t need to have 3 or 4 kernels to fall back. But I need space on my /boot drive:

/dev/sda1 96M 71M 26M 74% /boot/efi

Thanks

Hi;

If you look with detail you will see than the available package of fwupd is for arquitecture i686 (32bits) so it why you do see 2 packages.

I am not sure about than you mean about instruct grub, if you want delete the kernels there are 2 ways.

1) Check what is the actual kernel in use (you don’t delete this one )

uname -r

This command will show you the kernel in use

2) List all kernels than you do have installed

rpm -qa kernel

This command will show you all kernels installed

3) Delete old kernels

3.1) Deleting them one by one

sudo dnf remove kernel*x.xx.x-xxx.fcxx.x86_64

an example: sudo dnf remove kernel*5.3.7-301.fc31.x86_64

3.1) Deleting all except the last 3 kernels

sudo dnf remove $(dnf repoquery --installonly --latest-limit=-3)

Note: if you wish leave only the last 2 the value of --lates-limit=-2 (yes it is negative value)

Be careful to delete kernels and check very well than you are deleting the old kernels than you don’t wish keep.

Edit: If you did mean fix always a value to only go at a # of versions < 3 check the link under
but I don’t would recommend you do it

here you can find the information

https://docs.fedoraproject.org/en-US/fedora/rawhide/system-administrators-guide/package-management/DNF/#sec-Configuring_DNF_and_DNF_Repositories

Regards.

1 Like

You are right, I missed that. It makes sense.

I am talking about the boot process, when I have the choice to boot from the last 3 installed kernels (in my case having an extra choice for Windows boot)
It seems to me, Grub keeps the boot options on the /boot partition. So to clear up space I want to keep only the last 2:

[xxx@wasteland ~]$ ls -alh /boot/
total 255M
dr-xr-xr-x.  6 root root 4.0K Nov 14 20:38 .
dr-xr-xr-x. 19 root root 4.0K Nov  2 02:21 ..
-rw-r--r--.  1 root root 208K Nov 12 20:29 config-5.3.11-300.fc31.x86_64
-rw-r--r--.  1 root root 209K Oct 29 15:54 config-5.3.8-300.fc31.x86_64
-rw-r--r--.  1 root root 208K Nov  6 17:34 config-5.3.9-300.fc31.x86_64
drwx------.  5 root root 1.0K Jan  1  1970 efi
-rw-r--r--.  1 root root 181K Aug  2 11:22 elf-memtest86+-5.01
drwxr-xr-x.  2 root root 4.0K Nov  2 01:50 extlinux
drwx------.  3 root root 4.0K Oct 10 09:35 grub2
-rw-------.  1 root root  71M May 29  2018 initramfs-0-rescue-9a82614cd3ce4150802427d233099e5d.img
-rw-------.  1 root root  23M May 30  2018 initramfs-4.16.12-300.fc28.x86_64-nouveau.img
-rw-------.  1 root root  24M Jun  2 14:03 initramfs-5.1.5-300.fc30.x86_64-nvidia.img
-rw-------.  1 root root  29M Nov 14 20:38 initramfs-5.3.11-300.fc31.x86_64.img
-rw-------.  1 root root  31M Nov  5 12:36 initramfs-5.3.8-300.fc31.x86_64.img
-rw-------.  1 root root  31M Nov 12 20:45 initramfs-5.3.9-300.fc31.x86_64.img
drwxr-xr-x.  3 root root 4.0K Apr 25  2018 loader
-rw-r--r--.  1 root root 179K Aug  2 11:22 memtest86+-5.01
-rw-------.  1 root root 4.3M Nov 12 20:29 System.map-5.3.11-300.fc31.x86_64
-rw-------.  1 root root 4.3M Oct 29 15:54 System.map-5.3.8-300.fc31.x86_64
-rw-------.  1 root root 4.3M Nov  6 17:33 System.map-5.3.9-300.fc31.x86_64
-rwxr-xr-x.  1 root root 8.0M May 29  2018 vmlinuz-0-rescue-9a82614cd3ce4150802427d233099e5d
-rwxr-xr-x.  1 root root 8.9M Nov 12 20:30 vmlinuz-5.3.11-300.fc31.x86_64
-rw-r--r--.  1 root root  167 Nov 12 20:24 .vmlinuz-5.3.11-300.fc31.x86_64.hmac
-rwxr-xr-x.  1 root root 8.9M Oct 29 15:54 vmlinuz-5.3.8-300.fc31.x86_64
-rw-r--r--.  1 root root  166 Oct 29 15:49 .vmlinuz-5.3.8-300.fc31.x86_64.hmac
-rwxr-xr-x.  1 root root 8.9M Nov  6 17:35 vmlinuz-5.3.9-300.fc31.x86_64
-rw-r--r--.  1 root root  166 Nov  6 17:29 .vmlinuz-5.3.9-300.fc31.x86_64.hmac

If I am not mistaken, you can specify how many kernel versions should be available for boot.

It’s clear that from the above output and from the following one, that I have 3 kernels:

[xxx@wasteland ~]$ rpm -qa kernel
kernel-5.3.8-300.fc31.x86_64
kernel-5.3.9-300.fc31.x86_64
kernel-5.3.11-300.fc31.x86_64
1 Like

You just need delete the oldest kernel and delete old initramfs files

  1. Delete the old kernel

sudo dnf remove kernel*5.3.8-300.fc31.x86_64

  1. Delete old initramfs files

sudo rm -v /boot/initramfs-4.16.12-300.fc28.x86_64-nouveau.img

sudo rm -v /boot/initramfs-5.1.5-300.fc30.x86_64-nvidia.img

Note: you don’t need delete the intramfs of the kernel 5.3.8 this will be done with the first command

Regards.

1 Like

Thanks, I’ll try it and let you know. Probably tomorrow. Now I’m off :slight_smile:

P.S. Won’t Grub add another entry next time a kernel update will happens?

To understand than we are going to change, please read the link posted before about DNF CONFIG.

The first than you will need is a text editor that can work in the console, we will use nano in this case (you can use others like vim, etc…), so we will install nano if you have not it already.

sudo dnf install nano

Now we will change the value installonly_limit=3 to the value 2 -->installonly_limit=2 in the file dnf.conf.

sudo nano /etc/dnf/dnf.conf

After that you did change the value to 2 you need grab the changes with Ctrl+O (to save) and Ctrl+X (to Exit). Nano will ask you for confirmation of changes before you write out the file.

Note: Please don’t use a value inferior than 2, because if you do it you will be deleting your actual kernel while updating to the new one, this will give you only problems and an inoperative system probably.

In anyway, i think you would be ok without change anything, at least you would see first if it is really necessary to you.

Regards.

1 Like

Done, thanks.
It worked as expected.

P.S. vim fan here.

1 Like

I have the same problem and nothing helped yet. Does anyone knows the Solution? I reinstalled the root partition already.

Hi @danieldaeschle welcome to the community

Just delete the package tpm2-abrmd

sudo dnf remove tpm2-abrmd && sudo dnf --refresh upgrade

Regards

Thank you. It works for now.

Can anybody point out what tpm2-abrmd does (Yes, it implements the TMP2 protocol etc etc, but for what?)?

I understand that uninstalling it solves the issue because it is the package that is timing out. What I would like to know is what functionality is it providing/what will we miss when uninstalling it, and why this solution is accepted apparently with so little trouble (I mean, I would say that an actual solution would be fixing what is not behaving in tpm2-abrmd).

TL;DR: Anybody cares to explain what tpm2-abrmd is and what it does?

Hi @jorchube welcome to ask fedora.

I will point a bit about it.

There out is a lot information about TMP2 This take lot of time to understand to be honest i am still in way but i did take the decision of in this moment just delete this package i could just disable or stop the demond until this issue get solve, it is jut my decision (it it than i did and yes i have also secure boot disable)

There out is a lot information, so please feel free to help to contribute with it.

I

If you do read the whole post this one is not the solution than was accepted The solution is downgrade the package until than the bugs reported will be solved, again feel free to report in the bug and contribute.

Feel free to contribute, all help is necessary.

Regards.

Hi @xtym

Thank you :slight_smile:

You are right. I was having in mind other threads where this discussion has happened (github, etc) where this uninstall solution has also been proposed.

Again you are right, I should have read a little bit more instead of asking.

For anybody curious, a Trusted Processing Module is (roughly, and with little accuracy) a piece of hardware that can provides some cryptographic functionalities, such a RNG, cryptographic key generation, storage of something akin to a hash of the current installed software, and can be used as a guarantee that the software installed in the computer has not been changed, or to provide a secure or trusted boot chain.

So the tpm2-abrmd daemon interacts with/uses this TPM (if your computer has it), for LUKS, for example.

Parsing the dmesg output we can check whether our computer has a TPM chip. Mine, for example, seems to not have one:

$ dmesg | grep -i tpm
[    0.902602] ima: No TPM chip found, activating TPM-bypass!
1 Like

It might be that the hardware is not on your computer, or it could be that it’s present but not enabled. Sometimes there are BIOS settings to enable/disable TPM.

1 Like