New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
systemd-pcrphase should become a NOP silently, if a TPM could not be found #25700
Comments
So, systemd-pcrphase says there is no TPM device.
|
Hmm, looks like a firmware/kernel/driver bug:
i.e. Linux can't use the TPM, and doesn't expose a device for it hence, and hence we can't use it. |
(smells to me the TPM driver should get some tweaks to make this work regardless of garbage firmware info. Please contact TPM driver people) |
Hi, I reached out to the linux-integrity mailing list (thread can be seen here: It looks like there's been a lot of recent activity on the TPM driver, so I will report back if anything changes when I update to kernel 6.1 (and eventually 6.2), or if there are any updates from the driver devs. |
So I am not sure we can do anything about this: firmware tells us a TPM is available (and we thus enable our TPM codepaths), but then Linux is not able to take possession of this. Maybe we should add a kernel cmdline option that can be used to at least escape this situation by forcing the TPM codepaths to be disabled? |
or hmm, maybe pcrphase should simply exit cleanly if the device is simply not available. |
If everything points to the fact that TPM2 should work, but then the driver fails to initialize we should handle this gracefully and not cause failing services all over the place. Fixes: systemd#25700
If everything points to the fact that TPM2 should work, but then the driver fails to initialize we should handle this gracefully and not cause failing services all over the place. Fixes: systemd#25700
If everything points to the fact that TPM2 should work, but then the driver fails to initialize we should handle this gracefully and not cause failing services all over the place. Fixes: #25700
If everything points to the fact that TPM2 should work, but then the driver fails to initialize we should handle this gracefully and not cause failing services all over the place. Fixes: systemd#25700
If everything points to the fact that TPM2 should work, but then the driver fails to initialize we should handle this gracefully and not cause failing services all over the place. Fixes: systemd#25700 (cherry picked from commit 0318d54)
systemd version the issue has been seen with
252.3-1-arch
Used distribution
Arch Linux
Linux kernel version used
6.0.12-arch1-1 #1 SMP PREEMPT_DYNAMIC
CPU architectures issue was seen on
x86_64
Component
other
Expected behaviour you didn't see
When booting with a unified kernel image (generated by mkinitcpio), the system is able to reach boot without service failures and launch a wayland compositor.
Unexpected behaviour you saw
When booting with a unified kernel images, I get dropped into emergency mode before boot finishes because the
boot.mount
service fails. (Boot, or rather the EFI system partition, has a vfat filesystem, the system has only one SSD, and it is not encrypted).After commenting out my ESP from my /etc/fstab, I was able to boot successfully using the UKI. However, the services systemd-pcrphase(-sysinit) fail because the TCTI device file is not found at /dev/tpmrm0.
(Furthermore, attempting to launch a wayland compositor fails because sway reports no DRM backend can be found.)
Steps to reproduce the problem
HOOKS=(systemd autodetect modconf kms keyboard keymap consolefont block filesystems fsck)
and the preset:The kernel parameters in /etc/kernel/cmdline are
quiet bgrt_disable nvidia-drm.modeset=1
.2. Boot from a usb and set the partition type GUID of the root partition to 8304 (corresponding to UUID
4f68bce3-e8cd-4db1-96e7-fbcaf984b709
) with gdisk (I think I could also just pass the partition as a kernel parameter in /etc/kernel/cmdline, but thought I should mention I am using the discoverable partitions spec and it seems to be working fine).3. Reboot into the system (I am using rEFInd's auto detection as a bootloader).
Notes: the system has an ASRock X370 Killer SLI/ac motherboard, a Ryzen 2600 CPU, and a GTX 1050 Ti GPU. Also, I saw #25352, and I do not have tpm2-abrmd installed.
Link to the complete log (1400 lines): https://www.klgrth.io/paste/u3z8p/raw
Additional program output to the terminal or log subsystem illustrating the issue
The text was updated successfully, but these errors were encountered: