问题描述
我目前正在尝试使用 TPM (SLB 9670) 在 Raspberry Pi 3 型号 B+ 上执行完整性测量。 我已经安装了 TPM 并且工作正常,因为我可以执行一些基本命令,比如 tpm2_getrandom() 等等。现在我想使用 IMA 执行完整性测量,并且我已经使用以下配置重新编译了新内核:
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
CONFIG_INTEGRITY=y
CONFIG_IMA=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_AUDIT=y
CONFIG_IMA_LSM_RULES=y
CONFIG_IMA_WRITE_POLICY=y
CONFIG_IMA_READ_POLICY=y
CONFIG_IMA_APPRAISE=y
CONFIG_IMA_APPRAISE_BOOTPARAM=y
CONFIG_HW_RANDOM_TPM=y
CONFIG_TCG_TPM=y
CONFIG_TCG_TIS_CORE=y
CONFIG_TCG_TIS=y
但 ima 由于某种原因仍然没有检测到 TPM 并给出错误:
我做了一些研究,发现这可能是因为 ima 在 TPM 之前被初始化,所以我也尝试编译另一个版本的内核,在那里我更改了 devices/clk 中的代码行/bcm/clk-bcm2835: 来自:
postcore_initcall(__bcm2835_clk_driver_init);
到
subsys_initcall(__bcm2835_clk_driver_init);
但是还是不行。 请帮忙!
解决方法
您走在正确的道路上,我相信缺少的是 SPI 和 TPM 内核模块必须配置为内置。查看此 doc 了解详细步骤。