交叉编译RK3288开发板armhf版U-Boot出现Missing external blobs错误
RK3288开发板U-Boot编译报错解决
我正在为搭载armv7架构瑞芯微RK3288处理器的开发板编译U-Boot,使用的操作步骤如下:
- 执行默认配置命令:
make evb-rk3288_defconfig
- 配置交叉编译器,可选以下两种之一:
# 方案1:使用Arm官方10.3版本交叉编译器 export CC=/opt/workspace/sdk/gcc-arm-10.3-2021.07-z86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf- # 方案2:使用Linaro 7.5版本交叉编译器 export CC=/opt/workspace/sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
- 执行编译命令:
make CROSS_COMPILE=$CC -j4
编译过程中出现如下错误:
. . . CC tpl/common/spl/spl.o AR tpl/arch/arm/mach-rockchip/built-in.o CC tpl/lib/display_options.o AR spl/common/spl/built-in.o CC spl/lib/display_options.o AR tpl/common/spl/built-in.o AR tpl/lib/built-in.o LD tpl/u-boot-tpl OBJCOPY tpl/u-boot-tpl-nodtb.bin SYM tpl/u-boot-tpl.sym COPY tpl/u-boot-tpl.bin MKIMAGE tpl/u-boot-tpl-rockchip.bin AR spl/lib/built-in.o LD spl/u-boot-spl OBJCOPY spl/u-boot-spl-nodtb.bin SYM spl/u-boot-spl.sym CAT spl/u-boot-spl-dtb.bin COPY spl/u-boot-spl.bin CAT idbloader.img BINMAN all Image 'main-section' is missing external blobs and is non-functional: blob-ext Some images are invalid
问题原因
该报错由U-Boot的镜像打包工具binman触发,原因是当前编译配置依赖瑞芯微RK3288平台的闭源二进制固件blob,源码目录下没有对应文件导致打包校验失败。
解决方法
方法一:直接跳过blob校验(无特殊功能需求首选)
编译时添加BINMAN_ALLOW_MISSING=1参数强制跳过检查:
make CROSS_COMPILE=$CC -j4 BINMAN_ALLOW_MISSING=1
方法二:关闭闭源固件依赖
执行完make evb-rk3288_defconfig后,运行make menuconfig进入配置界面,关闭以下配置项:
- 进入
Boot images菜单,取消勾选Allow binman to fetch missing blobs from external locations - 进入
Rockchip platform support菜单,取消勾选Build with Rockchip binary blobs
保存配置后重新执行编译命令即可。
方法三:补充对应闭源固件
如果需要用到闭源固件提供的DDR初始化、高速外设支持等功能,可从瑞芯微官方SDK中提取RK3288对应的ddr.bin、usbplug.bin等固件文件,放置到U-Boot源码根目录下的rockchip-firmware文件夹中,重新编译时binman会自动调用对应文件完成打包。
内容的提问来源于stack exchange,提问作者Tunahan Yeniyayla
相关产品推荐
相关产品推荐

