无法在内核中启用 TPM

无法在内核中启用 TPM

我正在建造一台机器约克托项目。我需要TPM模块出于某些目的,但我无法启用它。

我尝试了这样的方法:

我跑了bitbake -c menuconfig virtual/kernel,访问了设备驱动程序 > 字符设备 > TPM 硬件支持并标记了所有与TPM相关的选项。

然后,我运行bitbake -c savedefconfig virtual/kernel将配置保存为deconfig内核构建目录中的文件。我检查了文件并启用了 TPM 选项。

CONFIG_TCG_TPM=y

CONFIG_HW_RANDOM_TPM=y

我复制并添加了它以供下一个版本使用。

bitbake core-image-minimal再次运行并通过运行启动 runqemu。我查了一下/dev/tpm*仍然不存在。

答案1

在内核中启用 TPM 支持只是设置的一部分;您还需要提供对真实 TPM 或 TPM 模拟器的访问。

如果您有一个未被其他任何东西使用的真正的 TPM,您可以将其转发到 QEMU,如下所示:

runqemu qemuparams="-tpmdev passthrough,id=tpm0 -device tpm-tis,tpmdev=tpm0"

如果你想使用TPM 模拟器(可能有更好的模拟器,这是我发现的第一个),您需要将其设置为在套接字上模拟,然后将该套接字转发到 QEMU 并将其用于 QEMU 内的 TPM:

runqemu qemuparams="-chardev socket,id=chrtpm,path=/tmp/swtpm-sock -tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis,tpmdev=tpm0"

QEMU 手册提供有关该主题的更多信息。

相关内容