TPMs erscheinen nicht unbedingt in den ACPI-Tabellen, aber die Module geben eine Meldung aus, wenn sie ein unterstütztes Modul finden; zum Beispiel
[ 134.026892] tpm_tis 00:08: 1.2 TPM (device-id 0xB, rev-id 16)
Also dmesg | grep -i tpm
ist ein guter Indikator.
Der definitive Indikator ist das Setup-Tool Ihrer Firmware:TPMs beinhalten Besitzverfahren, die vom Firmware-Setup verwaltet werden. Wenn Ihr Setup nichts TPM-bezogenes erwähnt, haben Sie kein TPM.
TPMs sind normalerweise in Servern und Business-Laptops (und ChromeBooks, wie von icarus erklärt) zu finden, sie sind selten in Desktops oder „Nicht-Business“-Laptops. Alles, was Intel TXT unterstützt, hat ein TPM.
Kann es auch über sysfs erkennen:
$ [ -d $(ls -d /sys/kernel/security/tpm* 2>/dev/null | head -1) ] && echo "TPM available" \
|| echo "TPM missing"
Und seit Kernel 5.6 (commit 7084eddf6be9 tpm:Add tpm_version_major sysfs file), Version kann mit sysfs file ermittelt werden:
$ cat /sys/class/tpm/tpm*/tpm_version_major
1
HINWEIS:Einige TPM exportieren keine sysfs (Fehler?).
Eine andere Möglichkeit besteht darin, nach /dev/tpm0
zu suchen oder /dev/tpmrm0
. Alle TPM-Geräte sollten /dev/tpm0
haben . /dev/tpmrm0
ist nur für TPM 2.0, wurde aber in v4.12-rc1 hinzugefügt (fdc915f7f719 tpm:Leerzeichen über einen Gerätelink /dev/tpmrm verfügbar machen):
[ -c /dev/tpmrm0 ] && echo "TPM 2.0" # since v4.12-rc1
[ -c /dev/tpm0 ] && echo "TPM 1.2 or 2.0"