Skip to main content
对于完整的 BSP 集成和生产镜像构建,推荐使用 Yocto 工作流。它使用 kas 和 BitBake 配合 meta-qcom 层,将内核与根文件系统及所有软件包一起构建。
对于独立构建(仅内核,不使用 Yocto),请参阅 不使用 Yocto 构建内核。

获取内核源码

所需的 meta 层

Qualcomm® Linux BSP 使用 meta-qcom Yocto 层构建。 发布标签遵循 qli-<version> 约定(例如 qli-2.0)。有关可用标签,请参阅 Qualcomm Linux 发行说明 - 简介。

使用 kas 同步 meta 层

在工作区根目录中运行以下命令。同步完成后,工作区将包含一个 meta-qcom/ 目录。

支持的 machine 配置

Machine 配置文件位于 meta-qcom/conf/machine/,遵循 <SoC>-<board>-<variant>.conf 命名约定,其中:
  • SoC 是片上系统名称
  • board 是开发板类型
  • variant 是产品类型
以下示例列出了支持的 machine 配置:
内核配方和版本在公共 include 文件 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/。
Qualcomm Linux 内核 BSP 配方使用以下配置片段: 表:内核配置片段 要修改生效的片段,请在 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。

构建内核和模块

  1. 打开 kas shell:
  1. 构建完整镜像(内核 + 根文件系统):
构建的镜像位于:
内核源码树由 BitBake 在构建期间解压,可在以下位置找到:

启用调试构建

要编译启用调试的构建,请将 DEBUG_BUILD=1 设置为环境变量,或在 build/conf/local.conf 中设置:

常见构建错误

配置更改未反映在构建的镜像中 如果重新构建后,某个内核配置选项没有出现在运行中的内核里:
  1. 将缺失的选项显式添加到 kernel/configs/debug.config。
  2. 在运行 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 以找出根本原因。