使用Yocto构建Raspberry Pi3镜像失败,请求技术支持
Yocto构建Raspberry Pi3镜像失败问题
操作流程
- 基于Ubuntu 20.04系统,使用Yocto官方推荐的
my-kirkstone分支 - 克隆
meta-raspberrypi、meta-openembedded、openembedded-core及poky层,所有层均切换至my-kirkstone分支 - 执行环境初始化脚本:
source oe-init-build-env并创建构建目录 - 在
bblayers.conf中添加meta-openembedded子层:meta-oe、meta-multimedia、meta-python、meta-networking - 在
local.conf中配置:MACHINE = "raspberrypi3",并添加INHERIT += "rm_work"以节省磁盘空间 - 确认
meta-raspberrypi目录下仅rpi-test-image.bb为可用镜像,执行bitbake rpi-test-image,构建约2小时后失败
错误信息
构建失败时的核心错误如下:
ERROR: python3-setuptools-60.9.3-r0 do_compile: ExecutionError('/home/yocto/build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/python3-setuptools/60.9.3-r0/temp/run.do_compile.32409', 1, None, None) ERROR: Task (/home/yocto/poky/meta/recipes-devtools/python/python3-setuptools_60.9.3.bb:do_compile) failed with exit code '1'
排查及解决建议
验证分支一致性
确认所有克隆的Yocto层(poky、openembedded-core、meta-openembedded、meta-raspberrypi)均正确切换至kirkstone官方分支(若my-kirkstone是自定义分支,需确保其与官方kirkstone代码同步)临时关闭
rm_workINHERIT += "rm_work"会清理编译临时文件,导致无法查看完整错误日志。先在local.conf中注释该行,执行以下命令重新构建:bitbake rpi-test-image -c cleanall bitbake rpi-test-image构建失败后查看
/home/yocto/build/tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/python3-setuptools/60.9.3-r0/temp/log.do_compile.xxx日志,获取具体错误细节补全系统依赖
在Ubuntu系统中安装Yocto构建必需的依赖包:sudo apt-get update && sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm替换setuptools版本
kirkstone分支中python3-setuptools_60.9.3可能存在兼容性问题,在local.conf中添加以下配置强制使用稳定版本:PREFERRED_VERSION_python3-setuptools = "58.1.0"之后重新执行清理和构建命令
检查网络环境
确保构建过程中网络稳定,若存在网络限制,可配置Yocto国内镜像源加速依赖包下载,避免因包下载不完整导致编译失败
内容的提问来源于stack exchange,提问作者Vulsan Bianca
相关产品推荐
相关产品推荐

