20260803 LA Vendor与CDSP修复及BP模块实测
LA Vendor 编译修复
问题
prebuilt_HY11/Android.mk 的通配 */*/Android.mk 只能匹配两层目录,覆盖不到 target/product/gen4_gvm/Android.mk,导致 c2d2.h 等 copy-header 与 libdrmMinimalfs 等 prebuilt 模块没有进入 ninja 图,EVS (Exterior View System,外部视野系统)/ camera.v4l2 编译报 c2d2.h: No such file。lagvm_qssi 重合并会把原注册覆盖掉。
修复
在 prebuilt_HY11/Android.mk 末尾追加 gen4_gvm 的 Android.mk 引用:
bash
PREBUILT_MK=${VENDOR_BUILD_DIR}/vendor/qcom/proprietary/prebuilt_HY11/Android.mk
grep -q "target/product/gen4_gvm/Android.mk" "${PREBUILT_MK}" || \
echo "-include \$(PREBUILT_DIR_PATH)/target/product/gen4_gvm/Android.mk" >> "${PREBUILT_MK}"
grep -q 先检查是否已注册,未注册时才追加 -include 指令,避免重复写入。
验证
bash build.sh dist -j8 --target_only两次均BUILD_EXIT=0。- ninja 图中
all_copied_headers已含c2d2.h等 27 个头文件。 vendor.img429MB、gen4_gvm-target_files-eng.tsdl.zip526MB,均为当日 13:53 生成。
LA Vendor 合并命令修复
la-qssi 的 kernel_platform、device/qcom/common 等 12 个路径是 symlink(符号链接),rsync -a 尝试用链接覆盖 la-vendor-build 中的真实非空目录,报 cannot delete non-empty directory / rsync error code 23。
修正:首条 System OSS 合并与 device/qcom 合并均加 --no-links 参数,实测退出码 0。skipping non-regular file 为正常提示。
LA QSSI 产物验证
system.img1.2G(11:24)、product.img236M(11:23)、system_ext.img227M(11:28)。out/dist共 103 个文件,与文档预期一致;qssi_au-target_files-eng.tsdl.zip1.6G(11:29)。- QSSI 为 standalone 构建(
--qssi_only),只产 System 侧镜像,非全局构建;vendor/kernel/super.img 由 LA Vendor 与 super 合并步骤生成。 - 7/31 时间的 host 工具文件未变化,不重新生成属正常现象。
CDSP0 编译修复
问题
当日 14:40 构建实际失败于 dt-schema (Device Tree Schema,设备树模式校验)校验,但 build_variant.py 把 scons 返回码 2 转成退出码 0,看起来成功,实际 cdsp0.mbn 仍是 7/30 旧产物。
失败链:
dtschema新版接口缺少load/process_schemas,与高通工具不兼容。ruamel.yaml 0.19移除了工具使用的safe_load。- 构建工具实际由 Python 3.10 调用,依赖需装在 3.10 环境。
- 当前 shell 缺少
HEXAGON_ROOT、SECTOOLS、DTC_PATH、LD_LIBRARY_PATH。
修复
bash
echo "1" | sudo -S apt-get install -y swig python3.11-dev
python3.10 -m pip install --user "dtschema==2022.7" "ruamel.yaml==0.17.21"
cd ${CDRT}/snapdragon-auto-hqx-4-5-6-0_amss_standard_oem/dsp/dsp_proc/build/ms
export HEXAGON_ROOT=/root/Qualcomm/HEXAGON_Tools
export SECTOOLS=${CDRT}/snapdragon-auto-hqx-4-5-6-0_amss_standard_oem/common/sectoolsv2/ext/Linux/sectools
export DTC_PATH=/usr/bin
export LD_LIBRARY_PATH=$HOME/.local/lib
python3.11 ./build_variant.py monaco.fusa_cdsp0.prod
先安装 swig 与 Python 3.11 开发头文件,并把 dtschema 与 ruamel.yaml 固定到与高通工具兼容的版本(装到 Python 3.10 环境),再设置 Hexagon 工具链、安全工具、设备树编译器路径后执行构建。
验证
- 日志确认
Build monaco.fusa_cdsp0.prod returned code 0.,无 Build errors。 signed/cdsp0.mbn2.5MB,时间戳2026-08-03 15:02。- 7255 CDSP 使用
dsp/dsp_proc,ADSP 使用dsp_ivi/dsp_proc,本 release 无dsp_proc2。
文档更新
SA7255P编译.md:- LA Vendor System OSS 合并加
--no-links并说明 code 23 原因。 - 新增
prebuilt_HY11注册步骤。 - CDSP 新增 Python 依赖步骤与
build_variant.py退出码陷阱说明。 - 产物验证补充时间戳检查。
- LA Vendor System OSS 合并加
- 新增
output/SA7255P源码下载与编译指南.md(440 行):- 前置条件(账号 / QPM(Qualcomm Package Manager,高通软件包管理器)/ Hexagon 8.6.05、8.7.02 / QNX SDP)。
- 7 套源码下载(高通 Git 3 个 + CodeLinaro repo 3 个 + QPM prebuilt)。
- QNX、LA QSSI、LA Kernel、LA Vendor、super.img、META、ADSP、CDSP 编译命令与产物验证。
- 常见问题清单。
BUILD BP 剩余模块实测
实测通过
| 模块 | 构建命令 | 工具链 | 产物 |
|---|---|---|---|
| CDSP1 | lemans.fusa_cdsp1.prod |
Hexagon 8.6.05 | cdsp1.mbn 2.6MB(17:52) |
| GPDSP0 | lemans.gpdsp0.prod |
Hexagon 8.6.05 | gpdsp0.mbn 5.9MB(18:04) |
| GPDSP1 | lemans.gpdsp1.prod |
Hexagon 8.6.05 | gpdsp1.mbn 5.9MB(18:08) |
三个日志均确认 returned code 0。
版本结论
build_cfg.xml按 chip 选择hexagon_rtos_release:lemans 全部 8.6.05(含 cdsp1/gpdsp0/gpdsp1),monaco 为 8.7.02(cdsp0)。- 7255(monaco)没有 cdsp1 变体;CDSP1 仅 8255(lemans)有构建命令。
- 确认新分模块文档结构(系统环境 / 全局变量 / CODE SYNC / BUILD QNX / BUILD LAGVM / BUILD BP / COMMON BUILD),待 boot/aop/tz 实测后写入。
ARM LLVM 工具链补齐
问题
boot/aop/tz 构建缺失 ARM LLVM 工具链。RN 的 QPM 包名写作 Snapdron_SD_LLVM_ARM(即 Snapdragon LLVM for ARM Toolchain);GUI 默认装的 19.0.0 版本过新,boot/aop/tz 分别需要 14.0.0 / 4.0.12 / 16.0.7。sdllvm_arm 因已安装 19.0.0 拒绝降级安装,改为从 snapdragon_llvm_for_arm_open_access 用 CLI 下载三个版本的 tar.gz,解压到 /pkg/qct/software/llvm/release/arm/<版本>。
版本对照
| 模块 | LLVM 版本 |
|---|---|
| boot | 14.0.0 |
| aop | 4.0.12 |
| tz | 16.0.7 |
TZ 要求的 GCC Linaro GNU 9.4.0 不在 QPM 产品列表,先按非必需处理,待 TZ 实测确认。
关键路径
| 项目 | 路径 |
|---|---|
| 工作区根 | /home/tsdl/SA7255P_HQX_Build_Coredump_Env/input |
| 编译指引 | /home/tsdl/SA7255P_HQX_Build_Coredump_Env/output/260730/SA7255P编译.md |
| 新下载编译指南 | /home/tsdl/SA7255P_HQX_Build_Coredump_Env/output/SA7255P源码下载与编译指南.md |
| LA Vendor 日志 | /tmp/build_la_vendor_0803_fix1.log、/tmp/build_la_vendor_0803_fix2.log |
| CDSP 日志 | /tmp/build_cdsp_0803_fix.log |
| rsync 日志 | /tmp/rsync_qssi_merge.log、/tmp/rsync_qcom_device.log |
| CDSP1 日志 | /tmp/build_cdsp1_0803.log |
| GPDSP0 日志 | /tmp/build_gpdsp0_0803.log |
| GPDSP1 日志 | /tmp/build_gpdsp1_0803.log |
| LLVM 解压 | /pkg/qct/software/llvm/release/arm/{4.0.12,14.0.0,16.0.7} |
| 解压日志 | /tmp/extract_llvm_0803.log |
遗留项
super.img仍为 7/31 产物,本轮未重跑 super 合并。systemd-oomd处于屏蔽状态,是否恢复待确认。- Hexagon 工具链路径修正、dtschema 版本、
-j8等为本机适配值。 - boot / aop / tz 待使用 14.0.0 / 4.0.12 / 16.0.7 实测。
output/260803/SA7255P编译-分模块版.md待生成。
英文名词解释笔记
组件/平台类
| 缩写 | 全称 | 说明 |
|---|---|---|
| LA | Lightly-loaded Android | 轻量 Android 系统 |
| QSSI | Qualcomm Single System Image | 高通单系统映像 |
| GVM | Guest Virtual Machine | 客户虚拟机 |
| ADSP | Audio Digital Signal Processor | 音频数字信号处理器 |
| CDSP | Compute Digital Signal Processor | 计算数字信号处理器 |
| GPDSP | General Purpose Digital Signal Processor | 通用数字信号处理器 |
| AOP | Always On Processor | 常开处理器 |
| TZ | TrustZone | ARM 安全区 |
| EVS | Exterior View System | 外部视野系统(Android 车机环绕影像) |
| BP | (原始记录未给出全称) | 高通固件构建分组,本日指 CDSP1/GPDSP0/GPDSP1 等模块 |
构建工具类
| 缩写 | 全称 | 说明 |
|---|---|---|
| QPM | Qualcomm Package Manager | 高通软件包管理器 |
| HEXAGON | Qualcomm Hexagon DSP Architecture | 高通 Hexagon DSP 架构 |
| LLVM | Low Level Virtual Machine | 通用编译器工具链 |
| ARM | Advanced RISC Machine | ARM 处理器架构 |
| GCC | GNU Compiler Collection | GNU 编译器套件 |
| DTC | Device Tree Compiler | 设备树编译器 |
| dt-schema | Device Tree Schema | 设备树模式校验工具 |
| SWIG | Simplified Wrapper and Interface Generator | 简化包装器与接口生成器 |
| scons | Software Construction Tool | Python 构建工具 |
| rsync | Remote Sync | 远程文件同步工具 |
| ninja | Ninja Build System | 高速增量构建系统 |
| OSS | Open Source Software | 开源软件 |
其他
| 缩写 | 全称 | 说明 |
|---|---|---|
| HIDL | Hardware Interface Definition Language | 硬件接口定义语言 |
| RN | Release Note | 版本说明 |
| symlink | Symbolic Link | 符号链接 |
| SDK | Software Development Kit | 软件开发工具包 |