想一起玩可信平台模块东西,我安装了裤子并尝试开始tcsd
,但我得到了这个错误:
TCSD TDDL ERROR: Could not find a device to open!
但是,我的内核加载了多个 TPM 模块:
# lsmod | grep tpm
tpm_crb 16384 0
tpm_tis 16384 0
tpm_tis_core 20480 1 tpm_tis
tpm 40960 3 tpm_tis,tpm_crb,tpm_tis_core
那么,如何确定我的计算机是否缺少 TPM,以及 TrouSerS 是否存在错误?
两者都不dmidecode
也不cpuid
输出有关“tpm”或“信任”的任何内容。往里看/var/log/messages
,一方面我看到rngd: /dev/tpm0: No such file or directory
,但另一方面我看到kernel: Initialise system trusted keyrings
并根据这个内核文档可信密钥使用 TPM。
编辑:我的计算机的 BIOS 设置菜单中没有提及任何有关 TPM 的内容。
另外,看看/proc/keys
:
# cat /proc/keys
******** I--Q--- 1 perm 1f3f0000 0 65534 keyring _uid_ses.0: 1
******** I--Q--- 7 perm 3f030000 0 0 keyring _ses: 1
******** I--Q--- 3 perm 1f3f0000 0 65534 keyring _uid.0: empty
******** I------ 2 perm 1f0b0000 0 0 keyring .builtin_trusted_keys: 1
******** I------ 1 perm 1f0b0000 0 0 keyring .system_blacklist_keyring: empty
******** I------ 1 perm 1f0f0000 0 0 keyring .secondary_trusted_keys: 1
******** I------ 1 perm 1f030000 0 0 asymmetri Fedora kernel signing key: 34ae686b57a59c0bf2b8c27b98287634b0f81bf8: X509.rsa b0f81bf8 []
答案1
TPM 不一定出现在 ACPI 表中,但模块在找到受支持的模块时确实会打印一条消息;例如
[ 134.026892] tpm_tis 00:08: 1.2 TPM (device-id 0xB, rev-id 16)
所以这dmesg | grep -i tpm
是一个很好的指标。
明确的指标是固件的设置工具:TPM 涉及通过固件设置进行管理的所有权程序。如果您的设置没有提及任何与 TPM 相关的内容,那么您就没有 TPM。
TPM 最初发现于服务器和商用笔记本电脑(以及 ChromeBook,如伊卡洛斯),并且在台式机或“非商用”笔记本电脑中很少见;这种情况在过去几年发生了变化,Windows 11 现在需要 TPM。任何支持 Intel TXT 的设备都有 TPM。
答案2
也可以通过sysfs检测它:
[ -d $(ls -d /sys/kernel/security/tpm* 2>/dev/null | head -1) ] && \
echo "TPM available" || echo "TPM missing"
并且自从内核5.6(犯罪7084eddf6be9 tpm:添加 tpm_version_major sysfs 文件),可以使用sysfs文件检测版本:
$ cat /sys/class/tpm/tpm*/tpm_version_major
1
注意:某些 TPM 不导出 sysfs(固件错误)。
其他方法是检查/dev/tpm0
或/dev/tpmrm0
。所有 TPM 设备都应具有/dev/tpm0
./dev/tpmrm0
仅适用于 TPM 2.0,但在 v4.12-rc1 中添加了它(fdc915f7f719 tpm:通过设备链接 /dev/tpmrm 公开空间):
[ -c /dev/tpmrm0 ] && echo "TPM 2.0" # since v4.12-rc1
[ -c /dev/tpm0 ] && echo "TPM 1.2 or 2.0"