我们正在运行一款最新的 Intel NUC,它配备了 TPM 2.0 芯片(供应商是谁,我还不知道)。目前,我只是试图加载驱动程序,让它对系统可见,但到目前为止还没有成功
我尝试过 Linux 内核 3.2、3.16 和 4.2。根据内核新手内核 4.0 是引入 TPM 2.0 驱动程序的时候。
我目前加载驱动程序的步骤:
ls -la /lib/modules/`uname -r`/kernel/drivers/char/tpm
列出可用的 tpm 驱动程序modprobe <items from above>
很多人说 tpm_tis 是他们唯一需要的东西,但对我来说却不行- 检查
/sys/class/tpm
4.* 和/sys/class/misc/
3.* 上的 tpm0 硬件 - 运行
tcsd -f
只会给我一个通信错误 - 三次检查 BIOS 以查看 TPM 是否已启用。它实际上是出厂时就启用的,但显然不应该启用?
输出ls -la /lib/modules/`uname -r`/kernel/drivers/char/tpm
:
total 248
drwxr-xr-x 3 root root 4096 Dec 10 18:38 .
drwxr-xr-x 7 root root 4096 Dec 10 18:38 ..
drwxr-xr-x 2 root root 4096 Dec 10 18:38 st33zp24
-rw-r--r-- 1 root root 10984 Nov 18 05:26 tpm_atmel.ko
-rw-r--r-- 1 root root 11760 Nov 18 05:26 tpm_crb.ko
-rw-r--r-- 1 root root 11160 Nov 18 05:26 tpm_i2c_atmel.ko
-rw-r--r-- 1 root root 14904 Nov 18 05:26 tpm_i2c_infineon.ko
-rw-r--r-- 1 root root 20816 Nov 18 05:26 tpm_i2c_nuvoton.ko
-rw-r--r-- 1 root root 24808 Nov 18 05:26 tpm_infineon.ko
-rw-r--r-- 1 root root 66552 Nov 18 05:26 tpm.ko
-rw-r--r-- 1 root root 15784 Nov 18 05:26 tpm_nsc.ko
-rw-r--r-- 1 root root 31624 Nov 18 05:26 tpm_tis.ko
-rw-r--r-- 1 root root 14072 Nov 18 05:26 xen-tpmfront.ko
任何额外的步骤/方向/提示都将不胜感激。
更新
我成功安装了 4.4 内核,它成功加载了驱动程序(我现在看到了 tpm0 /sys/class/tpm/tpm0
)。但运行时tcsd -f
出现以下错误:
TCSD TDDL ioctl: (25) Inappropriate ioctl for device
TCSD TDDL Falling back to Read/Write device support.
TCSD TCS ERROR: TCS GetCapability failed with result = 0x1e
另外,为了确保我拥有最新版本的 Trousers,我也从源代码编译了它,但仍然没有成功。我注意到的一件事是里面tpm0
没有pcrs
文件
答案1
我认为你的tpm
正在工作(用检查dmesg | grep -i tpm
)但tpm-tools
只与 tpm 1.2 设备兼容(来源)。
有一些新的项目,希望它们能对我们有所帮助:
- IBM:http://sourceforge.net/projects/ibmtpm20tss/
- 英特尔:https://github.com/01org/TPM2.0-TSS
- 基于 TSS2 的 tpm2-tools:https://github.com/01org/tpm2.0-tools