问题描述
我正在使用Yocto Warrior和SPI TPM ST33HTPH2X32AHD4。
我添加了以下食谱:tpm2-abrmd,tpm2-tools,rng-tools,tpm2-tss。 另外,我在内核上设置了以下开关:
CONFIG_TCG_TPM=m
CONFIG_TCG_CRB=y
CONFIG_TCG_TIS=m
CONFIG_TCG_TIS_CORE=m
CONFIG_TCG_TIS_SPI=m
CONFIG_TCG_TIS_ST33ZP24=m
CONFIG_TCG_TIS_ST33ZP24_SPI=m
CONFIG_HW_RANDOM_TPM=m
最后,我插入了dts:
&spi0 {
status = "okay";
clock-frequency = <20000000>;
// st tpm
st,st33htpm-spi@0 {
compatible = "st,st33htpm-spi";
spi-max-frequency = <20000000>;
reg = <0>;
};
};
我构建了映像,但是我无法使用TPM ...每个tpm实用程序都找不到/ dev / tpm。我怎样才能做到这一点 ?我还应该更新u-boot吗?
解决方法
您确定模块已安装到rootfs中吗?如果IMAGE_INSTALL中没有内核模块软件包,则可以编译模块,但不能将其安装到rootfs。
请验证是否:
- TPM模块在那里(在/ lib / modules /中)
- 验证是否可以手动加载模块
无需更改U-Boot即可在Linux中使用TPM。
,我解决了。这是我的错,因为我对内核交换机和DTB都使用了 git diff 补丁。 内核交换机必须通过添加一个简单的enable.cfg文件进行修改