kas 和 BitBake 配合 meta-qcom 层,在构建内核的同时构建根文件系统和所有软件包。
对于独立构建(仅内核,不使用 Yocto),请参阅不使用 Yocto 构建内核。
访问内核源代码
必需的 meta 层
Qualcomm® Linux BSP 使用meta-qcom Yocto 层构建。
- meta-qcom(层):https://github.com/qualcomm-linux/meta-qcom
qli-<version> 约定(例如 qli-2.0)。有关可用标签,请参阅 Qualcomm Linux 发行说明 - 简介。
使用 kas 同步 meta 层
在您的工作区根目录下运行以下命令。同步后,工作区中将包含一个meta-qcom/ 目录。
支持的机器配置
机器配置文件位于meta-qcom/conf/machine/ 中,遵循 <SoC>-<board>-<variant>.conf 命名约定,其中:
SoC是片上系统名称board是开发板类型variant是产品类型
meta-qcom/conf/machine/include/qcom-base.inc 中选择,每个机器配置都会继承该文件:
对于 LTS BSP 选择
linux-qcom。对于主线(mainline)BSP 选择 linux-qcom-next,并将 PREFERRED_VERSION_virtual/kernel 留空。镜像配方和内核配置
镜像配方位于meta-qcom-distro/recipes-products/images/ 中。下表列出了主要支持的镜像:
表:Qualcomm® Linux 支持的镜像配方
有关 Qualcomm Linux 支持的完整镜像列表,请参阅
meta-qcom-distro/recipes-products/images/。
要修改生效的片段,请更新
meta-qcom 层中内核配方内的 KBUILD_DEFCONFIG 和 KBUILD_CONFIG_EXTRA。以下示例展示了 recipes-kernel/linux/linux-qcom_6.18.bb 中的默认配置:
Yocto 还维护了一个在其之上应用的发行版级片段:
meta-qcom/recipes-kernel/linux/linux-qcom-6.18/configs/bsp-additions.cfg。构建内核和模块
- 打开 kas shell:
- 构建完整镜像(内核 + 根文件系统):
启用调试构建
要编译启用调试的构建,请将DEBUG_BUILD=1 设置为环境变量或在 build/conf/local.conf 中设置:
常见构建错误
配置更改未反映在构建的镜像中 如果重新构建后某个内核配置选项未出现在运行的内核中:- 将缺失的选项显式添加到
kernel/configs/debug.config。 - 在运行 BitBake 之前设置
DEBUG_BUILD=1,以确保应用调试片段:
do_fetch 失败
验证网络连接,并确认内核配方中的 SRCREV 与指定分支上存在的提交匹配。检查配方文件 meta-qcom/recipes-kernel/linux/linux-qcom_6.18.bb 中固定的发布修订版本。
构建期间磁盘空间耗尽
完整的 Yocto 构建至少需要 300 GB 的可用空间和大于 32 GB 的交换分区。清理之前的构建产物以回收空间:
ERROR_QA 或警告被视为错误
这些通常是配方元数据问题。在更改配方设置之前,请检查位于 build/tmp/work/<SoC>-<board>-<variant>/linux-qcom/*/temp/log.do_compile 的完整 BitBake 日志以找出根本原因。
