TPM issues in systemd-259 (slow boot, boot failures on some hardware)
It appears that `systemd-tpm2-setup.service` and `systemd-tpm2-setup-early.service` are slowing down the boot process. Some logging: ### systemd-analyze critical-chain ``` The time when unit became active or started is printed after the "@" character. The time the unit took to start is printed after the "+" character. graphical.target @13.129s └─multi-user.target @13.129s └─tuned-ppd.service @9.450s +724ms └─tuned.service @9.161s +286ms └─polkit.service @8.966s +193ms └─basic.target @8.100s └─systemd-pcrphase-sysinit.service @8.058s +40ms └─sysinit.target @8.037s └─systemd-pcrnvdone.service @8.002s +33ms └─systemd-tpm2-setup.service @5.632s +2.368s └─systemd-tpm2-setup-early.service @728ms +4.901s └─tpm2.target @1.127s └─dev-tpm0.device ``` ### systemctl status systemd-tpm2-setup.service ``` ● systemd-tpm2-setup.service - TPM SRK Setup Loaded: loaded (/usr/lib/systemd/system/systemd-tpm2-setup.service; static) Active: active (exited) since Sat 2026-02-21 11:39:35 MST; 2min 31s ago Invocation: b729d38682414241abd86e7fa5bc53ff Docs: man:systemd-tpm2-setup.service(8) Main PID: 1091 (code=exited, status=0/SUCCESS) Mem peak: 3.4M CPU: 34ms Feb 21 11:39:33 engine systemd[1]: Starting TPM SRK Setup... Feb 21 11:39:33 engine systemd-tpm2-setup[1091]: SRK already stored in the TPM. Feb 21 11:39:33 engine systemd-tpm2-setup[1091]: SRK fingerprint is [redacted in case it's supposed to be a secret]. Feb 21 11:39:33 engine systemd-tpm2-setup[1091]: SRK saved in '/var/lib/systemd/tpm2-srk-public-key.pem' matches SRK in TPM2. Feb 21 11:39:35 engine systemd-tpm2-setup[1091]: 2 NvPCRs already initialized. Feb 21 11:39:35 engine systemd[1]: Finished TPM SRK Setup. ``` ### systemctl status systemd-tpm2-setup-early.service ``` ● systemd-tpm2-setup-early.service - Early TPM SRK Setup Loaded: loaded (/usr/lib/systemd/system/systemd-tpm2-setup-early.service; static) Active: active (exited) since Sat 2026-02-21 11:39:33 MST; 3min 5s ago Invocation: 2183b8d260e14716b1bb75234e2502c9 Docs: man:systemd-tpm2-setup.service(8) Main PID: 805 (code=exited, status=0/SUCCESS) Mem peak: 2.9M CPU: 33ms Feb 21 11:39:28 engine systemd-tpm2-setup[805]: SRK already stored in the TPM. Feb 21 11:39:28 engine systemd-tpm2-setup[805]: SRK fingerprint is [redacted in case it's supposed to be a secret]. Feb 21 11:39:28 engine systemd-tpm2-setup[805]: SRK public key saved to '/run/systemd/tpm2-srk-public-key.pem' in PEM format. Feb 21 11:39:28 engine systemd-tpm2-setup[805]: SRK public key saved to '/run/systemd/tpm2-srk-public-key.tpm2b_public' in TPM2B_PUBLIC format. Feb 21 11:39:33 engine systemd-tpm2-setup[805]: WARNING:esys:src/tss2-esys/api/Esys_NV_DefineSpace.c:345:Esys_NV_DefineSpace_Finish() Received TPM Error Feb 21 11:39:33 engine systemd-tpm2-setup[805]: ERROR:esys:src/tss2-esys/api/Esys_NV_DefineSpace.c:121:Esys_NV_DefineSpace() Esys Finish ErrorCode (0x0000014c) Feb 21 11:39:33 engine systemd-tpm2-setup[805]: 1 NvPCRs initialized. (1 NvPCRs were already initialized.) Feb 21 11:39:33 engine systemd[1]: Finished Early TPM SRK Setup. ``` I found https://github.com/systemd/systemd/issues/40159 which seems to be reporting this exact issue in systemd 259, and https://github.com/systemd/systemd/issues/40485 which has the same 0x0000014c error, but it's about a boot loop, not a boot slowdown. Seems *something* is fishy with TPM support in systemd 259.
issue