ARM技术论坛
直播中

luoye240

3年用户 9经验值
擅长:可编程逻辑 嵌入式技术 模拟技术
私信 关注
[问答]

rk3568,我在打包SDK编译环境的时候Start packing firmwares报错,想知道能不能只运行这一步检验

我根据紫光同创的资料运行sudo RK_ROOTFS_SYSTEM=debian ./build.sh*,然后在Start packing firmwares这一步报错,完整运行一次所有编译要接近一个半小时,我感觉这应该是编译的最后一步,所以问问只运行这一步的命令是什么

初次接触嵌入式新人,如果问了蠢问题还请谅解,感谢

报错信息

[36m==========================================[0m
[36m          Start packing firmwares[0m
[36m==========================================[0m
[36mLinking /home/rk/SDK/output/firmware/parameter.txt from /home/rk/SDK/device/rockchip/.chip/parameter-buildroot-fit.txt...[0m
[35mPreparing partiton oem[0m
[36mMerging /home/rk/SDK/device/rockchip/common/extra-parts/oem/normal into /home/rk/SDK/output/extra-parts/oem[0m
[35mPacking /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem.fs[0m
Using host tools in /home/rk/SDK/buildroot/output/rockchip_rk3568/host (except for mke2fs)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem (auto sized)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(14271KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(1/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(18367KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(2/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(22463KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(3/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(26559KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(4/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(30655KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(5/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(34751KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(6/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(38847KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(7/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(42943KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(8/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(47039KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(9/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(51135KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(10/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(55231KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(11/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(59327KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(12/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(63423KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(13/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(67519KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(14/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(71615KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(15/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(75711KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(16/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(79807KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(17/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(83903KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(18/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(87999KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(19/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(92095KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
Retring with increased size....(20/20)
Making /home/rk/SDK/output/extra-parts/oem.img from /home/rk/SDK/output/extra-parts/oem with size(96191KB)
/sbin/mke2fs: symbol lookup error: /sbin/mke2fs: undefined symbol: test_io_manager
FATAL:  Failed to make image!
[31mERROR: Running /home/rk/SDK/device/rockchip/common/scripts/mk-extra-parts.sh - post_build_hook failed![0m
[31mERROR: exit code 1 from line 74:[0m
[31m    fakeroot -- "$FAKEROOT_SCRIPT"[0m
[31mERROR: call stack:[0m
[31m    mk-extra-parts.sh: post_build_hook(74)[0m
[31m    mk-extra-parts.sh: main(89)[0m
[31mERROR: Running /home/rk/SDK/device/rockchip/common/scripts/mk-firmware.sh - build_firmware failed![0m
[31mERROR: exit code 1 from line 22:[0m
[31m    "$RK_SCRIPTS_DIR/mk-extra-parts.sh"[0m
[31mERROR: call stack:[0m
[31m    mk-firmware.sh: build_firmware(22)[0m
[31m    mk-firmware.sh: post_build_hook(93)[0m
[31m    mk-firmware.sh: main(98)[0m
[31mERROR: Running /home/rk/SDK/device/rockchip/common/build-hooks/99-all.sh - build_all failed![0m
[31mERROR: exit code 1 from line 28:[0m
[31m    "$RK_SCRIPTS_DIR/mk-firmware.sh"[0m
[31mERROR: call stack:[0m
[31m    99-all.sh: build_all(28)[0m
[31m    99-all.sh: build_hook(136)[0m
[31m    build-helper: try_func(63)[0m
[31m    build-helper: try_hook(96)[0m
[31m    build-helper: source(165)[0m
[31m    99-all.sh: main(147)[0m
[31mERROR: Running /home/rk/SDK/device/rockchip/common/build-hooks/99-all.sh - try_func build_hook all failed![0m
[31mERROR: exit code 1 from line 67:[0m
[31m    build_hook[0m
[31mERROR: call stack:[0m
[31m    build-helper: try_func(67)[0m
[31m    build-helper: try_hook(96)[0m
[31m    build-helper: source(165)[0m
[31m    99-all.sh: main(147)[0m

回帖(2)

陈静

2025-8-20 14:36:28

根据您的描述,您在 RK3568 SDK 编译环境中执行打包固件步骤(Start packing firmwares)时遇到错误。以下是针对问题的分析和解决方案:




问题分析与建议方案




  1. 单独执行打包命令的方法

    在 Rockchip 的 Buildroot SDK 中,可通过以下命令仅执行打包步骤


    sudo ./build.sh firmware

    说明



    • firmware 参数会跳过编译阶段,直接执行固件打包流程。

    • 添加环境变量确保系统类型一致:
      sudo RK_ROOTFS_SYSTEM=debian ./build.sh firmware




  2. 为什么可以这样操作?  



    • SDK 的 build.sh 脚本支持分步操作。firmware 参数专门用于触发固件打包逻辑。

    • 该步骤依赖于前序编译阶段生成的组件(如内核、rootfs),需确保这些文件已成功构建(位于 output/images/ 目录)。




  3. 需要检查的关键点




    • 前序编译是否成功

      确认以下文件是否存在(路径示例):


      ls output/images/kernel.img    # 内核文件
      ls output/images/rootfs.ext4   # Debian 文件系统

      如果文件缺失,需先解决编译错误再打包。




    • 完整错误信息

      您截取的日志不完整(停在 [35mPrepar),需提供完整的错误输出。查找包含 ERRORfailed 的关键行,例如:


      !!! ERROR: Failed to generate rockchip parameter file

      错误信息通常在日志末尾或标有红色/黄色字体的部分。






  4. 常见打包错误解决方向



    • 权限问题:确保 sudo 执行且输出目录可写(检查 /home/rk/SDK/output/firmware)。

    • 文件缺失:检查 device/rockchip/.chip/parameter-buildroot-fit.txt 是否存在。

    • 脚本逻辑错误:尝试手动执行打包子脚本:
      sudo device/rockchip/common/mkfirmware.sh






操作步骤总结


# 1. 确保编译产物存在
ls output/images/{kernel.img,rootfs.ext4}

# 2. 单独执行打包(完整命令)
sudo RK_ROOTFS_SYSTEM=debian ./build.sh firmware

# 3. 捕获完整错误日志
./build.sh firmware 2>&1 | tee build.log  # 保存日志到文件



扩展建议




  • 调试技巧

    mkfirmware.sh 脚本中加入 set -x 以打印详细执行过程:


    sed -i '2i set -x' device/rockchip/common/mkfirmware.sh



  • 环境清洁

    如果怀疑缓存问题,清理旧固件但不删除编译产物:


    rm -rf output/firmware   # 删除旧固件目录
    ./build.sh firmware      # 重新生成



请提供完整的错误日志后,我会进一步给出针对性解决方案。嵌入式开发初期遇到此类问题非常常见,无需顾虑!

举报

chenwei6991627

2025-8-21 08:39:33
肯定是先编译没有问题才打包啊
举报

更多回帖

发帖
×
20
完善资料,
赚取积分