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文件进行修改

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...