sdk 目录介绍

源码目录结构及功能

QUECPI-QCLINUX-BL01/
├── build-qcom-wayland/ # Yocto 的构建目录
├── downloads/ # 构建过程中,缓存下载的源码和工具(如开源软件包、内核源码等)
├── layers/ # 为了划分不同的用户自定义的项目工程模块,方便模块化的开发维护
├── quectel_build/ # 移远通信(Quectel)自定义的构建目录和脚本
├── sources/ # 内核源代码目录,存放项目本地开发的源码(非 Yocto 标准目录)
├── src/ # 存放项目本地开发的源码(非 Yocto 标准目录)和驱动相关设备树
├── sstate-cache/ # 共享状态缓存,如已编译的工具链、库的缓存
└── setup-environment  # 初始化构建环境的脚本

build-qcom-wayland/ 介绍

build-qcom-wayland/
├── buildhistory/ # 使能编译日志记录功能时,会生产的目录,包含每个包文件列表、编译依赖图等
├── cache/ # bitbake解析class文件的缓存
├── conf/ # 用户的配置文件
├── tmp-glibc/ # 构建时所有的输出都存放在该目录下
│      ├── cache/ # BitBake解析metedata(包括recipes和config文件)后,将解析的结果缓存在该目录,以提高后续效率
│      ├── deploy/ # 部署文件目录,最终需要的文件(boot system image等)都在该目录中
│      │   ├── images/ # 存放boot system image 等文件
│      │   ├── ipk/ # 存放系统产生的所有ipk类型的安装包
│      │   └── licenses/ # 系统使用的各种软件的许可信息
│      ├── hosttools/
│      ├── log/ # bitbake日志信息
│      ├── pkgdata/
│      ├── sstate-control/ # 状态跟踪文件(openenembedded构建系统将此目录用于共享状态清单文件。共享状态代码使用这些文件来记录由每个状态任务安装的文件,以便在清理recipes或即将安装新版本时可以删除这些文件。当一个任务的文件覆盖另一个任务的文件时,构建系统还使用清单检测并生成警告)
│      ├── stamps/ # 记录BitBake跟踪task执行时间的一些信息
│      ├── sysroots/ # 构建出的根文件系统内容
│      ├── sysroots-components/ # 制作sysroots前需要额外添加的一些组件
│      ├── sysroots-uninative/
│      ├── work/ # 包含和CPU架构相关的工作目录
│      └── work-shared/ # 各个recipes共享的内容,比如gcc工具链、系统库等
├── tmp-qcom-guestvm-glibc/
└── workspace/

layers/ 介绍

layers/
├── meta-openembedded/ # OpenEmbedded 核心元数据的集合,包含大量共享的 recipes(如工具链、库、应用等), 扩展 Yocto 的软件包支持,提供额外的开源软件
│      │   ├── meta-oe/ # 通用软件
│      │   ├── meta-python/ # Python 相关
│      │   └── meta-networking/ # 网络工具
├── meta-qcom/ # 高通(Qualcomm)硬件平台的 BSP(Board Support Package)层, 内核、驱动、固件、硬件适配配置(如 machine 定义)等
├── meta-qcom-distro/ # 用户自定义的发行版(Distribution)配置层, 定制化的发行版策略(如 DISTRO 配置、镜像recipes、软件包组合等)
├── meta-qcom-hwe/ # 高通硬件增强(Hardware Enablement)相关功能,包含内核补丁、硬件加速支持(如 GPU/VPU)、实时性扩展等
├── meta-qcom-qim-product-sdk/ 高通QIM产品的 SDK 扩展层,产品专用的软件栈、测试工具、示例代码等
├── meta-qt5/ # Qt 5 框架的支持层,包含 Qt 库、工具(如 qtcreator)和应用程序的 recipes
├── meta-quectel/ # 移远通信(Quectel)模组(如 4G/5G 模组)的驱动和工具支持
├── meta-rust/ # Rust 语言工具链和生态支持,Rust 编译器(rustc)、Cargo 包管理器和 Rust 库
├── meta-security/ # 安全性增强工具和策略,如 selinux、apparmor、加密工具(openssl 增强)等
├── meta-selinux/ # SELinux(安全增强 Linux)的策略和工具,SELinux 策略文件、标签配置等
├── meta-updater/ # 系统 OTA(Over-The-Air)更新支持
├── meta-virtualization/ # 虚拟化技术支持(如容器/Docker、KVM)
└── poky/ # Yocto Project 的核心层,础构建系统(BitBake、OpenEmbedded Core)、核心 recipes(如 busybox、glibc),提供构建嵌入式 Linux 系统的最小工具链和框架

quectel_build/ 介绍

quectel_build/ 构建
├── compile/
│      │   ├── quectel-features-config/        # 自动生成配置文件
│      │   ├── build.sh                         # 构建脚本,构建AP侧环境
│      │   ├── config_parser.py                  # 配置文件解析器
│      │   ├── export_sdk.sh                     # 打包交叉工具链sdk包
│      │   ├── version_parser_auto.py          # 配置文件解析器
│      │   └── version_parser.py                  # 配置文件解析器
├── config/ 定制项目列表
│      │   ├── quectel_project.conf
├── packaged_file/                        # 默认提供BP侧固件,后续更新于此处。
│      │   ├── bootbinaries/ # 系统启动(Boot)相关的二进制文件
│      │   ├── firehose/ # 芯片设备的底层刷机、诊断或固件编程 相关,尤其在 EDL(Emergency Download Mode)模式 下使用
│      │   ├── partition/ # 磁盘分区、设备分区表或固件分区布局 相关的文件
├── prebuilt_bpfw/  # 基线默认为将adsp,cdsp 镜像编译进 AP 侧 system 镜像,下面三个压缩包来源于 BP 侧编译生成,提供给客户使用,客户特别定制联系移远开发人员。
│      │   ├── QCM6490_bootbinaries.zip
│      │   ├── QCM6490_dspso.zip
│      │   ├── QCM6490_fw.zip
├── QSM565DWFPARL1A01_BP01.001_Linux6.6.38_V01/   # QuecPi Alpha 单板电脑所需镜像文件(整合AP和BP文件)
└── a_key_generation.sh # 一键打包工具,用于整合系统镜像文件,如QSM565DWFPARL1A01_BP01.001_Linux6.6.38_V01

sources/quectel-src/ 介绍

sources/quectel-src/
├── kernel/ # 内核源码,本地化管理

src/ 介绍

src/
├── devicetree/ # 存放 设备树源文件(DTS/DTSI),用于描述硬件配置(如外设、总线、中断等)
│      │   ├── camera-devicetree # 摄像头模组(如 MIPI-CSI 接口)的设备树配置,包括传感器型号、I2C 地址、时钟配置等
│      │   ├── display-devicetree # 显示相关硬件(如 MIPI-DSI 屏幕、LVDS 接口)的设备树节点,定义分辨率、时序参数(display-timings)、背光控制等
│      │   ├── graphics-devicetree # GPU 或显示控制器(如高通 Adreno GPU、DPU)的配置,可能涉及内存分配、时钟、电源管理
│      │   ├── video-devicetree # 视频编解码硬件(如 VPU)的设备树节点,配置视频输入/输出接口(如 HDMI、CSI)
│      │   ├── wlan-devicetree # 无线模块(如 Qualcomm WCN6855)的配置,包括 PCIe/SDIO 接口、射频参数、固件加载路径
└── display-drives/ # 存放 显示相关的驱动和配套工具,通常包括内核驱动、固件、配置脚本等
│      │   ├── bridge-drivers/ # 桥接芯片驱动(如 TI SN65DSI86:MIPI-DSI 转 LVDS 的桥接芯片)
│      │   ├── config/  # 显示系统的配置文件(如色彩校准参数、EDID 数据、屏幕旋转设置)
│      │   ├── Documentation/ # 驱动开发文档与硬件手册
│      │   ├── include/  # 头文件(Headers),定义数据结构、寄存器宏和 API 接口
│      │   ├── msm/ # 高通(Qualcomm MSM 平台)专属显示驱动
│      │   ├── rotaror/ # 屏幕旋转/镜像的硬件加速驱动