You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yocto构建Qt6树莓派3镜像时遇RM SIGABRT错误及Ubuntu崩溃求助

问题:Yocto构建libarchive时出错并导致Ubuntu系统崩溃

构建配置

Build Configuration:
BB_VERSION           = "2.2.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "arm-poky-linux-gnueabi"
MACHINE              = "raspberrypi3"
DISTRO               = "poky"
DISTRO_VERSION       = "4.1.4"
TUNE_FEATURES        = "arm vfp cortexa7 neon vfpv4 thumb callconvention-hard"
TARGET_FPU           = "hard"
meta                 
meta-poky            
meta-yocto-bsp       = "langdale:3e95f268ce04b49ba6731fd4bbc53b1693c21963"
meta-raspberrypi     = "langdale:8e3cbfa598de106a78d9a9e27aa25ded51416896"
meta-oe              
meta-multimedia      
meta-networking      
meta-python          = "langdale:cbbaa82238cd60f08c9b9cb58dde59d5f9318c7b"
meta-qt6             = "6.5:a65fb409f4469c087ae3e23ee80fbb2531f1856e"

构建错误日志

ERROR: libarchive-3.6.2-r0 do_package: Error executing a python function in exec_func_python() autogenerated:


The stack trace of python calls that resulted in this exception/failure was:

File: 'exec_func_python() autogenerated', lineno: 2, function: <module>

     0001:
 *** 0002:sstate_task_postfunc(d)
     0003:

File: '/home/m/Downloads/yocto/build/../sources/poky/meta/classes-global/sstate.bbclass', lineno: 824, function: sstate_task_postfunc

     0820:
     0821:    omask = os.umask(0o002)
     0822:    if omask != 0o002:
     0823:       bb.note("Using umask 0o002 (not %0o) for sstate packaging" % omask)
 *** 0824:    sstate_package(shared_state, d)
     0825:    os.umask(omask)
     0826:
     0827:    sstateinst = d.getVar("SSTATE_INSTDIR")
     0828:    d.setVar('SSTATE_FIXMEDIR', shared_state['fixmedir'])

File: '/home/m/Downloads/yocto/build/../sources/poky/meta/classes-global/sstate.bbclass', lineno: 679, function: sstate_package

     0675:
     0676:    sstatebuild = d.expand("${WORKDIR}/sstate-build-%s/" % ss['task'])
     0677:    sde = int(d.getVar("SOURCE_DATE_EPOCH") or time.time())
     0678:    d.setVar("SSTATE_CURRTASK", ss['task'])
 *** 0679:    bb.utils.remove(sstatebuild, recurse=True)
     0680:    bb.utils.mkdirhier(sstatebuild)
     0681:    for state in ss['dirs']:
     0682:        if not os.path.exists(state[1]):
     0683:            continue

File: '/home/m/Downloads/yocto/sources/poky/bitbake/lib/bb/utils.py', lineno: 728, function: remove

     0724:        # shutil.rmtree(name) would be ideal but its too slow
     0725:        cmd = []
     0726:        if ionice:
     0727:            cmd = ['ionice', '-c', '3']
 *** 0728:    subprocess.check_call(cmd + ['rm', '-rf'] + glob.glob(path))
     0729:        return
     0730:    for name in glob.glob(path):
     0731:        try:
     0732:            os.unlink(name)

File: '/usr/lib/python3.10/subprocess.py', lineno: 369, function: check_call

     0365:    if retcode:
     0366:        cmd = kwargs.get("args")
     0367:        if cmd is None:
     0368:            cmd = popenargs[0]
 *** 0369:        raise CalledProcessError(retcode, cmd)
     0370:    return 0
     0371:
     0372:
     0373:def check_output(*popenargs, timeout=None, **kwargs):

Exception: subprocess.CalledProcessError: Command '['rm', '-rf', '/home/m/Downloads/yocto/build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/libarchive/3.6.2-r0/sstate-build-package/']' died with <Signals.SIGABRT: 6>.


ERROR: Logfile of failure stored in: /home/m/Downloads/yocto/build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/libarchive/3.6.2-r0/temp/log.do_package.121192
ERROR: Task (/home/m/Downloads/yocto/build/../sources/poky/meta/recipes-extended/libarchive/libarchive_3.6.2.bb:do_package) failed with exit code '1' 

Pseudo log:

path mismatch [5 links]: ino 19665829 db '/home/m/Downloads/yocto/build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/libarchive/3.6.2-r0/package/usr/src/debug/libarchive/3.6.2-r0/tar/subst.c' req '/home/m/Downloads/yocto/build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/libarchive/3.6.2-r0/sstate-build-package/packages-split/libarchive-src/usr/src/debug/libarchive/3.6.2-r0/tar/subst.c'.

Setup complete, sending SIGUSR1 to pid 121193.

系统崩溃截图

系统崩溃截图


解决办法
  • 清理libarchive构建状态
    针对伪文件系统路径不匹配问题,执行以下命令清理相关缓存和工作目录:

    bitbake -c cleansstate libarchive
    rm -rf build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/libarchive/
    

    之后重新启动构建。

  • 临时禁用SSTATE加速
    错误发生在SSTATE打包阶段,可临时关闭该功能绕过问题,在local.conf中添加:

    SSTATE_ENABLED = "0"
    

    构建完成后可改回"1"恢复加速。

  • 检查存储与内存健康
    系统崩溃+文件路径异常可能由磁盘错误或内存故障导致:

    • 检测磁盘:
      sudo fsck /dev/sdX  # 替换为构建所在的分区设备名
      
    • 检测内存:
      sudo memtester 1024 5  # 测试1024MB内存,循环5次
      
  • 更新Yocto层代码
    当前Langdale版本与Qt6 6.5可能存在兼容性细节问题,拉取各层最新代码:

    cd sources/meta-raspberrypi && git pull
    cd ../meta-oe && git pull
    cd ../meta-qt6 && git pull
    
  • 限制构建并行任务数
    Yocto构建内存消耗大,避免内存耗尽导致系统崩溃,在local.conf中调整:

    BB_NUMBER_THREADS = "4"
    PARALLEL_MAKE = "-j4"
    

    根据自身CPU核心数和内存大小调整数值,8GB内存建议设置为4。


内容的提问来源于stack exchange,提问作者Martin Dusek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:12:06