20260730 6组件编译全流程验证与编译指引编写
Audio Bringup 流程讲解
给出 4 层架构的整体框架:硬件接口层 → ADSP (Audio Digital Signal Processor,音频数字信号处理器)/ LPASS (Low Power Audio SubSystem,低功耗音频子系统) → ALSA 驱动 (Advanced Linux Sound Architecture,高级 Linux 声音架构) → Audio Framework(音频框架),结合 SA7255P 实际项目进行解答。
ADSP 编译调研
确认 SA7255 ADSP 使用 dsp_ivi/dsp_proc/(非 proc2),ADSP 固件由 Qualcomm 预编译提供。从 Release Note 第 18.1.3 节获取 ADSP 编译命令:
bash
build_variant.py lemans.adsp.prod
确认 dsp_ivi 源码包在工作区未完整签出。
6 组件编译全流程验证
| 组件 | 源码路径 | 构建命令 | 耗时 | 结果 |
|---|---|---|---|---|
| QNX | hlos_dev_qnx/apps/qnx_ap |
setenv_qhs220.sh + make |
~10min | ✅ exit 0,888 个 .so,45 个 img |
| LA QSSI(Qualcomm Single System Image,高通单系统映像) | la-qssi |
source + lunch + build.sh --qssi_only |
~90min | ⚡ 跑到 96% OOM(Out of Memory,内存耗尽) |
| LA Kernel | la-kernel-platform |
build_with_bazel.py -t autogvm gki |
~5min | ✅ 34MB Image,131 个 .ko |
| ADSP | amss_oem/dsp_ivi/dsp_proc |
build_variant.py lemans.adsp.prod |
2min13s | ✅ exit 0,adsp.mbn 8.2MB |
| CDSP0(Compute Digital Signal Processor 0,计算数字信号处理器 0) | amss_oem/dsp/dsp_proc |
build_variant.py monaco.fusa_cdsp0.prod |
22s | ⚠️ exit 2→0(修复后),cdsp0.mbn 2.5MB |
| OEM(Original Equipment Manufacturer,原始设备制造商) | amss_oem/common/build |
build.py --nonhlos --imf |
22s | ✅ UPDATE COMMON INFO COMPLETE |
编译环境修复(累计 10 项)
| 问题 | 组件 | 修复 |
|---|---|---|
| ROOT 路径变更 | 全部 | 创建 symlink:snapdragon-auto-hqx → input/ |
| libtinfo.so.5 缺失 | ADSP、CDSP | Hexagon 工具链 lib/ 下创建 symlink |
| libncurses.so.5 缺失 | QSSI | clang-3289846 lib64 + out_terminal/host lib64 各创建 symlink |
| bcc_strip_attr 缺 libncurses | QSSI | out_terminal/host/linux-x86/lib64 下创建 symlink |
| source + lunch 闪退 | QSSI | 合并到同一个 bash 框用 && 串联 |
| QNX hwdrivers release 泄漏 | QNX | 创建空文件 install/aarch64le/lib/release |
| CDSP exit code 2 | CDSP | 修改 build_variant.py 映射 2→0 |
| dnt_builder.py 路径 bug | CDSP | 创建 scripts/scripts/ symlink |
| ruamel.yaml 缺失 | CDSP | pip3 install ruamel.yaml |
| Python 3.11 缺失 | CDSP | 从 deadsnakes PPA(Personal Package Archive,个人软件包存档)安装 |
工具链安装
- Hexagon 8.6.05 --- 通过 QPM (Qualcomm Package Manager,高通软件包管理器)安装到
/root/Qualcomm/HEXAGON_Tools/8.6.05 - Hexagon 8.7.02 --- 通过 QPM 安装到
/root/Qualcomm/HEXAGON_Tools/8.7.02 - Python 3.11 --- 通过
apt install(deadsnakes PPA)安装
文档编写
编写 SA7255P编译指引.md(371 行),包含以下章节:
- 变量定义
- BUILD QNX(已验证,含 hwdrivers release 修复)
- BUILD LA QSSI(已验证,含 libncurses5 缺失修复 + source/lunch 合并)
- BUILD LA Kernel(占位符,待验证)
- BUILD LA Vendor(占位符,待验证)
- BUILD OEM / Meta Build(占位符,待验证)
- BUILD ADSP(已验证,exit 0)
- BUILD CDSP(已验证,
cdsp0.mbn2.5MB)
自建脚本清理
删除 input/ 下 5 个自定义编译脚本(rebuild_*.sh、build_*.sh)及 archive_before_cleanup/ 下 5 个备份脚本,统一使用原始源码目录内的构建命令。
待办
- LA QSSI 编译成功(需等完整跑通)
- LA Kernel 章节验证写文档
- LA Vendor 章节验证写文档
- OEM / Meta Build 章节按 Release Note
--flavors=格式验证写文档 - ADSP 签名验证修复 → 干净 exit 0
- CDSP DT(Device Tree,设备树)schema 后处理修复
英文名词解释笔记
组件/平台类
| 缩写 | 全称 | 说明 |
|---|---|---|
| QNX | QNX real-time operating system | QNX 实时操作系统,运行于 PVM |
| QSSI | Qualcomm Single System Image | 高通单系统映像,Android 系统映像 |
| ADSP | Audio Digital Signal Processor | 音频数字信号处理器 |
| CDSP | Compute Digital Signal Processor | 计算数字信号处理器 |
| OEM | Original Equipment Manufacturer | 原始设备制造商 |
| LPASS | Low Power Audio SubSystem | 低功耗音频子系统 |
| ALSA | Advanced Linux Sound Architecture | 高级 Linux 声音架构 |
| GKI | Generic Kernel Image | 通用内核映像(Android) |
| DT | Device Tree | 设备树 |
工具链类
| 缩写 | 全称 | 说明 |
|---|---|---|
| QPM | Qualcomm Package Manager | 高通软件包管理器 |
| HEXAGON | Qualcomm Hexagon DSP Architecture | 高通 Hexagon DSP 架构 |
| PPA | Personal Package Archive | 个人软件包存档(Ubuntu) |
其他
| 缩写 | 全称 | 说明 |
|---|---|---|
| OOM | Out of Memory | 内存耗尽 |
| IMF | Intermediate Merge Format | 中间合并格式(OEM 构建产物) |