Skip to main content
本页面记录了在 Qualcomm Linux 上进行 Yocto 构建时遇到的常见错误 及其解决方案。

缺少 en_US.UTF-8 区域设置

发生场景:此问题在最小化的 Ubuntu 安装(包括 基础 WSL2 镜像 (Ubuntu 22.04))上很常见,这些安装默认只提供 C.UTF-8 区域设置。 BitBake 需要 en_US.UTF-8 区域设置,如果不存在则会 在启动时立即失败。 错误消息:
解决方案:在运行任何 kas 或 bitbake 命令之前, 生成并启用 en_US.UTF-8 区域设置。
运行这些命令后,打开一个新的 shell 会话,使更新后的 区域设置生效,然后重试构建。

严格的 umask 导致构建失败

发生场景:如果您的 shell 会话配置了严格的 umask (例如 0027 或 0077),OE-core 的完整性检查器会在构建开始前 拒绝该配置。 错误消息:
解决方案:在开始构建之前,在您的 shell 中设置 umask 022。这样可以确保 Yocto 创建的文件对所有用户可读,这是构建系统正常 运行所必需的。
要使此设置在您的构建会话中持久生效,请将其添加到您的 shell 启动文件中:

构建期间 CPU 使用率过高导致系统过载

发生场景:BitBake 会并行调度任务,并以多个作业调用 make 以加快构建速度。在 CPU 核心数量有限的主机上,或者当构建与其他 工作负载同时运行时,这可能会使 CPU 使用率非常高,导致系统无响应。 解决方案:通过设置 BB_NUMBER_THREADS 和 PARALLEL_MAKE 变量来限制构建的并行度,如 Yocto Project Limiting the Host Resources Usage 指南中所述。请将这些 变量添加到 meta-qcom/ci/base.yml 中的 local_conf_header 下:
meta-qcom/ci/base.yml
根据您希望构建使用的 CPU 核心数量调整这些值,然后重新运行 kas build 命令。