完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目前我正在启用 SecureBoot,有人可以指导我并指出我错过了哪些步骤吗? 这是我的步骤如下: 步骤一、下载cst-3.3.1.tgz 步骤 2. tar xvf cst-3.3.1.tgz && cd cst-3.3.1/keys 步骤 3. cst-3.3.1/keys $ echo "4242424E" > ser $ echo "test" > key_pass.txt $ echo "test" >> key_pass.txt $ ./hab4_pki_tree.sh ++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++ 此脚本是飞思卡尔 高保证引导代码签名工具的一部分。它生成一个基本的 PKI 树。PKI 树由一个或多个超级根密钥 (SRK) 组成,每个 SRK 有两个从属密钥: + 一个命令序列文件 (CSF) 密钥 + 图像密钥。 可以将其他密钥添加到 PKI 树中,但 为此提供了一个单独的脚本。此脚本假定 openssl 安装在您的系统上并且包含在您的搜索 路径中。最后,生成的私钥 使用文件 key_pass.txt 提供的密码进行密码保护。 文件格式为密码重复两次: my_password my_password PKI 树中的所有私钥都是 PKCS #8 格式,将由 相同的密码保护。 ++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++ 是否要使用现有的 CA 密钥(是/否)?:n 是否要使用椭圆曲线密码术(是/否)?:n 输入密钥长度PKI 树的位:2048 输入 PKI 树持续时间(年):20 应该生成多少个超级根密钥?4 您是否希望 SRK 证书设置 CA 标志?(是/否)?:是的 步骤 4. cd ../crts && ../linux64/bin/srktool \ > -h 4 \ > -t SRK_1_2_3_4_table.bin \ > -e SRK_1_2_3_4_fuse.bin \ > -d sha256 \ > -c ./SRK1_sha256_2048_65537_v3_ca_crt.pem,\ > ./SRK2_sha256_20 48_65537_v3_ca_crt.pem, \ > ./SRK3_sha256_2048_65537_v3_ca_crt.pem,\ > ./SRK4_sha256_2048_65537_v3_ca_crt.pem 证书数量 = 4 SRK 表二进制文件名 = SRK_1_2_3_4_table.bin SRK Fuse 二进制文件名 = SRK_1_2_3_4_fuse.bin SRK Fuse 二进制转储: SRK HASH[0] = 0xDA7CCBEB SRK HASH[1] = 0xD7D9F573 SRK HASH[2] = 0x20DEBFD6 SRK HASH [ 3] = 0x0E4AAC11 SRK 哈希[4] = 0xB0965A65 SRK 哈希[5] = 0x1A89C7DA SRK 哈希[6] = 0x6D960E3F SRK 哈希[7] = 0xE080A6D8 步骤 5. CONFIG_SECURE_BOOT=y 在 uboot 中重建它。 第 6 步。 $ cp imx-uboot/tools/mkimage ./imx-mkimage/iMX8M/mkimage_uboot $ cp imx-uboot/arch/arm/dts/myb-imx8mm-base.dtb ./imx-mkimage/iMX8M/fsl-imx8mm-ddr4 -evk.dtb $ cp imx-uboot/spl/u-boot-spl.bin ./imx-mkimage/iMX8M/ $ cp imx-uboot/u-boot-nodtb.bin ./imx-mkimage/iMX8M/ # firmware-imx-8.7 $ cp firmware-imx-8.7/firmware/ddr/synopsys/ddr4_dmem_1d.bin ./imx-mkimage/iMX8M/ $ cp firmware-imx-8.7/firmware/ddr/synopsys/ddr4_dmem_2d.bin ./ imx-mkimage/iMX8M/ $ cp 固件-imx-8.7/firmware/ddr/synopsys/ddr4_imem_1d.bin ./imx-mkimage/iMX8M/ $ cp firmware-imx-8.7/firmware/ddr/synopsys/ddr4_imem_2d.bin ./ imx-mkimage/iMX8M/ #imx8mm-atf $ cp imx-atf/build/imx8mm/release/bl31.bin ./imx-mkimage/iMX8M/ $ cd imx-mkimage $ make SOC=iMX8MM clean $ make SOC=iMX8MM flash_ddr4_evk =========偏移量转储========= 加载器图像: header_image_off 0x0 dcd_off 0x0 image_off 0x40 csf_off 0x2c600 spl hab块:0x7e0fc0 0x0 0x2c600 第二个加载程序图像: sld_header_off 0x57c00 sld_csf_off 0x58c20 sld hab 块:0x401fcdc0 0x57c00 0x1020 $ make SOC=iMX8MM print_fit_hab_ddr ./../scripts/pad_image.sh bl31.bin ./../scripts/pad_image.sh u-boot-nodtb.bin fsl-imx8mm-ddr4-evk.dtb TEE_LOAD_ADDR=0xbe000000 ATF_LOAD_ADDR= 0x00920000 版本=v1 ./print_fit_hab.sh 0x60000 fsl-imx8mm-ddr4-evk.dtb 0x40200000 0x5AC00 0x9BDB0 0x4029BDB0 0xF69B0 0x83B0 0x920000 0xFED60 0xA160 第 7 步。从 imx-uboot 源代码复制模板 $ cp ./myir-imx-uboot/doc/imx/habv4/csf_examples/mx8m/csf_fit.txt cst-3.3.1 $ cp ./myir-imx-uboot/doc/imx/habv4/csf_examples/mx8m/csf_spl.txt 步骤 8. 修改 csf_spl.txt 中的块 块 = 0x7e0fc0 0x0 0x2c600 “flash.bin” 步骤 9. 修改 csf_fit.txt 中的块 块 = 0x401fcdc0 0x57c00 0x1020“flash.bin”\ 0x40200000 0x5AC00 0x9BDB0“flash.bin”\ 0x4029BDB0 0xF69B0 0x83B0“flash.bin”\ 0x920000 0xFED60 0xA160“flash.bin” Step 10. 签署flash.bin然后更新uboot $ ../linux64/bin/cst -i csf_spl.txt -o csf_spl.bin 安装 SRK 安装 CSFK 验证 CSF 安装密钥 验证数据 CSF 已成功处理并在 csf_spl.bin 中提供可用的签名数据 $ ../linux64/bin/cst - i csf_fit.txt -o csf_fit.bin 安装 SRK 安装 CSFK 验证 CSF 安装密钥 验证数据 CSF 已成功处理并在 csf_fit.bin 中提供可用的签名数据 $ cp flash.bin signed_flash.bin $ dd if=csf_spl.bin of=signed_flash.bin seek=$((0x2c600)) bs=1 conv=notrunc 3912+0 records in 3912+0 records out 3912 bytes (3.9 kB, 3.8 KiB) copied, 0.00899194 s, 435 kB/s $ dd if=csf_fit.bin of=signed_flash.bin seek=$((0x58c20)) bs=1 conv=notrunc 3928+0 records in 3928+0 records out 3928 bytes (3.9 kB, 3.8 KiB) 复制, 0.00964808 秒, 407 kB/秒 $ dd if=/tmp/signed_flash.bin of=/dev/mmcblk1 bs=1k seek=33 && sync && reboot 第 11 步。检查 hab_status u-boot=> hab_status 安全启动已禁用 HAB 配置:0xf0,HAB 状态:0x66 ---------- HAB 事件 1 -------------- 事件数据: 0xdb 0x00 0x14 0x43 0x33 0x21 0xc0 0x00 0xbe 0x00 0x0c 0x00 0x03 0x17 0x00 0x00 0x00 0x00 0x00 0x68 STS = HAB_FAILURE (0x33) RSN = HAB_INV_CERtiFICATE (0x21) CTX = HAB_CTX_COMMAND (0xC0) ENG = HAB_ENG_ANY (0x00) ---------- HAB 事件 2 -------------- 事件数据: 0xdb 0x00 0x14 0x43 0x33 0x0c 0xa0 0x00 0x00 0x00 0x00 0x00 0x40 0x1f 0xdd 0xc0 0x00 0x00 0x00 0x20 STS = HAB_FAILURE (0x33) RSN = HAB_INV_ASSERTION (0x0C) CTX = HAB_CTX_ASSERT (0xA0) ENG = HAB_ENG_ANY (0x00) ---------- HAB 事件 3 -------------- 事件数据: 0xdb 0x00 0x14 0x43 0x33 0x0c 0xa0 0x00 0x00 0x00 0x00 0x00 0x00 0x7e 0x0f 0xc0 0x00 0x00 0x00 0x20 STS = HAB_FAILURE (0x33) RSN = HAB_INV_ASSERTION (0x0C) CTX = HAB_CTX_ASSERT (0xA0) ENG = HAB_ENG_ANY (0x00) ---------- HAB 事件 4 ------------------ 事件数据: 0xdb 0x00 0x14 0x43 0x33 0x0c 0xa0 0x00 0x00 0x00 0x00 0x00 0x00 0x7e 0x0f 0xe0 0x00 0x00 0x00 0x01 STS = HAB_FAILURE (0x33) RSN = HAB_INV_ASSERTION (0x0C) CTX = HAB_CTX_ASSERT (0xA0) ENG = HAB_ENG_ANY (0x00) ---------- HAB 事件 5 -------------- 事件数据: 0xdb 0x00 0x14 0x43 0x33 0x0c 0xa0 0x00 0x00 0x00 0x00 0x00 0x00 0x7e 0x10 0x00 0x00 0x00 0x00 0x04 STS = HAB_FAILURE (0x33) RSN = HAB_INV_ASSERTION (0x0C) CTX = HAB_CTX_ASSERT (0xA0) ENG = HAB_ENG_ANY (0x00) ---------- HAB 事件 6 -------------- 事件数据: 0xdb 0x00 0x14 0x43 0x33 0x0c 0xa0 0x00 0x00 0x00 0x00 0x00 0x40 0x1f 0xcd 0xc0 0x00 0x00 0x00 0x04 STS = HAB_FAILURE (0x33) RSN = HAB_INV_ASSERTION (0x0C) CTX = HAB_CTX_ASSERT (0xA0) ENG = HAB_ENG_ANY (0x00) ---------- HAB 事件 7 -------------- 事件数据: 0xdb 0x00 0x14 0x43 0x33 0x21 0xc0 0x00 0xbe 0x00 0x0c 0x00 0x03 0x17 0x00 0x00 0x00 0x00 0x00 0x58 STS = HAB_FAILURE (0x33) RSN = HAB_INV_CERTIFICATE (0x21) CTX = HAB_CTX_COMMAND (0xC0) ENG = HAB_ENG_ANY (0x00) Step 12. 熔断程序 u-boot=> 保险丝程序 6 0 0xDA7CCBEB u-boot=> 保险丝程序 6 1 0xD7D9F573 u-boot=> 保险丝程序 6 2 0x20DEBFD6 u-boot=> 保险丝程序 6 3 0x0E4AAC11 u-boot=> 保险丝程序 7 0 0xB0965A65 u-boot=> 保险丝程序 7 1 0x1A89C7DA u-boot=> 保险丝程序 7 2 0x6D960E3F u-boot=> 保险丝程序 7 3 0xE080A6D8 u-boot=>保险丝程序0 0 0x200 u-boot=>保险丝程序1 3 0x8000000 u-boot=>保险丝程序1 3 0x200000 u-boot=>保险丝程序1 3 0xC00000 u-boot=>重置 重置后,iMX8MM 无法启动,谁能帮我澄清一下? 我想知道正确的方法是什么或者我错过/错误的步骤是什么? |
|
相关推荐
1个回答
|
|
步骤四、在U-boot中启用SecureBoot相关配置,包括将签名密钥导入到U-boot中并启用验证选项。具体步骤可以参考U-boot文档。
步骤五、在操作系统中启用对SecureBoot的支持,包括在内核配置中启用相关选项并将签名密钥导入到操作系统中。 步骤六、在制作启动镜像时,对镜像进行签名,并在U-boot中启用验证选项。 需要注意的是,每个平台的SecureBoot方案可能会有所不同,具体实现方法需要根据平台和场景进行调整。在实施SecureBoot之前,需要对平台和相关方案进行深入了解,并进行充分的测试和验证。 |
|
|
|
只有小组成员才能发言,加入小组>>
1912个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36369 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4404 浏览 0 评论
6063 浏览 1 评论
6771 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4221 浏览 0 评论
625浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
621浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
615浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
698浏览 2评论
802浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 00:55 , Processed in 1.271130 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号