Hi Jarkko, can rely on /dev/tpm0 and /dev/tpmrm0 for TPM detection? i.e.: /dev/tpmrm0 => TPM 2.0 /dev/tpm0 => both TPM 1.2 or 2.0 none of them => No TPM device I'm trying to get reliably TPM version (1, 2 or no TPM) for various kernel versions (including very old ones like 3.x): So far I have: cat /sys/class/tpm/tpm0/tpm_version_major [ -f /sys/class/tpm/tpm0/device/caps -o -f /sys/class/misc/tpm0/device/caps ] => TPM 1.2 [ ! -d /sys/class/tpm/tpm0/ -a ! -d /sys/class/misc/tpm0/ ] => no TPM Then I grep dmesg | grep -q 'activating TPM-bypass' => no TPM dmesg | grep -q '1\.2 TPM (device-id' => TPM 1.2 dmesg | grep -q '2\.0 TPM (device-id' => TPM 2.0 But according to Mimi there are still some TPM 2.0 devices which does not export sysfs files. And I'd prefer avoid using dmesg (not on some embedded targets and not sure if reliable for all TPM devices). If I understand James's commit fdc915f7f719 ("tpm: expose spaces via a device link /dev/tpmrm<n>") from v4.12-rc1 correctly /dev/tpmrm0 is really for TPM 2.0. But how to detect it for v4.0 - v4.11 when /sys/class/tpm detection fails? I haven't found anything obvious in drivers/char/tpm/tpm2-cmd.c from v4.0. Thanks for info. Kind regards, Petr