TPM(设备 ID 0x0,修订 ID 78)

TPM(设备 ID 0x0,修订 ID 78)

我尝试在 Debian 8 上使用我的笔记本电脑中内置的 tpm(可信平台模块)。大多数 tpm_* 程序都会返回答案:

root@debian:~# tpm_takeownership 
Enter owner password: 
Confirm password: 
Enter SRK password: 
Confirm password: 
Tspi_TPM_TakeOwnership failed: 0x00000008 - layer=tpm, code=0008 (8), The TPM target command has been disabled

tcsd 回馈:

root@debian:~# tcsd -f
TCSD TDDL ERROR: Could not find a device to open!

模块已加载:

root@debian:~# lsmod | grep tpm
tpm_tis                17231  0 
tpm                    31511  2 tpm_tis

最后,dmesg 回复:

root@debian:~# dmesg | grep tpm
[    6.743307] tpm_tis 00:05: 1.2 TPM (device-id 0x0, rev-id 78)

TPM 在 BIOS 中打开。有什么线索吗?

答案1

我正在使用 Atmel 可信平台模块在 BeagleBone Black 上进行安全启动。如果您没有找到解决方案,这就是我所做的。

我使用 Buildroot 为 BeagleBone Black(BBB) 创建一个简单的嵌入式 Linux。我添加了tpm 工具和 tpm-tss与构建根。

我添加了以下选项作为模块:

  • 硬件随机数生成器核心支持
  • TPM 硬件支持
  • TPM 接口规范 1.2 接口 / TPM 2.0 FIFO 接口
  • TPM 接口规范 1.2 接口(I2C – Atmel)

我还修改了 BBB 的设备树并添加以下修改:

&i2c2 {
    tpm29:tpm@29 {
                compatible = "atmel,at97sc3204t";
                reg = <0x29>;
        };
};

当我在 BBB 上启动嵌入式 Linux 时,我会加载以下驱动程序,如下所示:

# modprobe tpm_i2c_atmel
# modprobe tpm_tis
# modprobe tpm_tis_core
# modprobe tpm

然后我像这样启动 tcsd 守护进程:

# /usr/sbin/tcsd

你可以确保你/usr/sbin/tcsdtop/htop命令中看到了。

完成这些步骤后,我就可以与我的 TPM 交谈了。

答案2

在 BIOS 中启用 TPM 可能需要电源周期才能有效。 BIOS 菜单中可能有 2 个不同的项目需要配置。

我有一个额外的模块:tpm_bios.

Adevice-id听起来0x0不对。例如,对于 Atmel TPM,它应该是0x3204

第一个要尝试的有用命令是tpm_version, thentpm_getpubektpm_selftest, before tpm_takeownership

相关内容