Yocto和TPM:最终映像上缺少/ dev / tpm

问题描述

我正在使用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文件进行修改