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/
目录。
支持的 machine 配置
Machine 配置文件位于meta-qcom/conf/machine/,遵循
<SoC>-<board>-<variant>.conf 命名约定,其中:
SoC是片上系统名称board是开发板类型variant是产品类型
meta-qcom/conf/machine/include/qcom-base.inc 中选择,每个 machine 配置
都会继承该文件:
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 或警告被视为错误
这些通常是配方元数据问题。在更改配方设置之前,请检查完整的 BitBake 日志
build/tmp/work/<SoC>-<board>-<variant>/linux-qcom/*/temp/log.do_compile
以找出根本原因。
