Yocto和TPM:/dev/TPM在最终映像中丢失

Yocto和TPM:/dev/TPM在最终映像中丢失,yocto,tpm,Yocto,Tpm,我使用的是Yocto Warrior和SPI TPM ST33HTPH2X32AHD4 我添加了以下配方:tpm2 abrmd、tpm2工具、rng工具、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=

我使用的是Yocto Warrior和SPI TPM ST33HTPH2X32AHD4

我添加了以下配方:tpm2 abrmd、tpm2工具、rng工具、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>;
      };
};
&spi0{
status=“好”;
时钟频率=;
//st tpm
st,st33htpm-spi@0 {
compatible=“st,st33htpm spi”;
spi最大频率=;
reg=;
};
};

我建立的形象,但我不能使用TPM。。。每个tpm实用程序都找不到/dev/tpm。我该怎么做?我是否也应该更新u-boot?

您确定模块已安装到rootfs中?如果在IMAGE_INSTALL中没有内核模块包,则可以编译模块,但不能将其安装到rootfs

请核实是否:

  • TPM模块在那里(在/lib/modules/中)
  • 验证是否可以手动加载模块

无需更改U-Boot即可在Linux中使用TPM。

我已解决此问题。这是我的错,因为我对内核交换机和DTB都使用了带有git diff的补丁。 内核开关必须通过添加一个简单的enable.cfg文件进行修改