KVM guest cannot use TPM after upgrade to Fedora 31

For some time I have been using my laptop’s TPM 2.0 device from my Windows guest by passing it through to the VM (exclusively). In order to do that I had to always stop the tpm2-abrmd service before starting the guest. This has worked with at least with Fedora 29 and 30.

Since I upgraded to Fedora 31 this is no longer working. When I start the guest, I get the following error message: libvirt.libvirtError: internal error: child reported (status=125): unable to open /dev/tpm0: Device or resource busy

I cannot see that there is anything that is using the /dev/tpm0 device at this point. Of course I have stopped the tpm2-abrmd service.

Has anyone else seen this? Any suggestions?

I have the same problem. I had a passthrough tpm working fine until after the upgrade to Fedora 31. Was wondering if you have gotten it to work in the meantime and if so, would you be willing to share your solution?


For me it magically started to work again after Fedora 31 made the next kernel version available. I think it was when I upgraded to 5.4, but it is certainly working now with 5.5.10-200.

Hi! Is weird but I’m using 5.6 kernel and still have the problem

What’s the error you get? Or is it just not working without error messages?
Did it work before or has it never worked for you?

Finally is worksing I should use the /dev/tpmrm0 device, and all works fine!