背景介绍在为 KYX T7Y 开发板主控Rockchip RK3326 / PX30 系列适配 Armbian 系统时发现 Armbian 官方的构建脚本对 RK3326/PX30 的 only-blobs 启动方案支持存在缺陷。由于 Armbian 官方拉取的 Rockchip rkbin 仓库结构已更新移除了 bin/ 目录层级且不再提供 RKTRUST 模板文件导致在编译 U-Boot 阶段会出现各种“找不到文件”或“无法生成 trust.bin”的报错最终导致系统镜像无法启动。本指南记录了如何通过修改userpatches/config/sources/families/rockchip-rk3326.conf来彻底修复这些问题。️ 核心修复点1. 修正 rkbin 文件路径与版本号Armbian 官方脚本中写死的 blob 路径带有bin/前缀且版本号与实际仓库不符。我们将路径直接指向rk33/并匹配仓库中实际存在的版本。# 修正前 # DDR_BLOBbin/rk33/rk3326_ddr_333MHz_v2.12.bin # MINILOADER_BLOBbin/rk33/rk3326_miniloader_v1.40.bin 修正后 DDR_BLOBrk33/rk3326_ddr_333MHz_v1.10.bin MINILOADER_BLOBrk33/rk3326_miniloader_v1.12.bin BL31_BLOBrk33/rk3326_bl31_v1.14.elf2. 重写 trust.ini 动态生成逻辑由于新版 rkbin 移除了 RKTRUST 模板我们需要在uboot_custom_postprocess()函数中动态生成它。关键陷阱旧版脚本中生成的 trust.ini 存在致命错误BL31 的 SEC0 且 ADDR0x10000这与 Rockchip 官方的 ATF 加载地址不符会导致板子完全无法启动。我们参考了官方 RK3326TRUST.ini 模板重写了生成逻辑确保安全固件能被正确加载function uboot_custom_postprocess() { if [[ ${BOOT_SCENARIO} only-blobs ]]; then display_alert RK3326 only-blobs postprocess preparing trust.ini info # 动态查找 bl31 和 bl32 blob local bl31_blob$(find $RKBIN_DIR/rk33 -name rk3326_bl31_*.elf | head -1) local bl32_blob$(find $RKBIN_DIR/rk33 -name rk3326_bl32_*.bin | head -1) # 严格按照官方模板格式生成 cat gt; trust.ini lt;lt;EOF [VERSION] MAJOR1 MINOR0 [BL30_OPTION] SEC0 [BL31_OPTION] SEC1 PATH${bl31_blob} ADDR0x00040000 [BL32_OPTION] SEC1 PATH${bl32_blob} ADDR0x08400000 [BL33_OPTION] SEC0 [OUTPUT] PATHtrust.img EOF # 步骤 1: 生成 idbloader.bin (DDR blob miniloader) run_host_command_logged tools/mkimage -n ${BOOT_SOC_MKIMAGE} -T rksd -d $RKBIN_DIR/$DDR_BLOB idbloader.bin cat $RKBIN_DIR/$MINILOADER_BLOB idbloader.bin # 步骤 2: 生成 uboot.img run_host_x86_binary_logged $RKBIN_DIR/tools/loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img ${LOADER_UBOOT_OFFSET} # 步骤 3: 生成 trust.bin run_host_x86_binary_logged $RKBIN_DIR/tools/trust_merger trust.ini mv trust.img trust.bin fi } 如何使用将修改后的rockchip-rk3326.conf放入 Armbian build 环境的userpatches/config/sources/families/目录。确保你的板级配置如kyx-t7y.conf中指定了BOARDFAMILYrockchip-rk3326。运行编译命令./compile.sh kyx-t7y build 总结如果你在适配其他基于 PX30/RK3326 的开发板时遇到 U-Boot 编译报错或烧录后无任何串口输出的问题大概率也是 trust.ini 生成逻辑失效导致的。希望这份修复指南能帮到大家你可以把这段文字连同你的rockchip-rk3326.conf和kyx-t7y.conf一起打包发到 GitHub 或相关的开发者社区。感谢你的开源精神