我正在建造一台机器约克托项目。我需要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 手册提供有关该主题的更多信息。