SDK Directory Overview
2025-05-20
Source Code Directory Structure and Functions
QUECPI-QCLINUX-BL01/
├── build-qcom-wayland/ # Yocto build directory
├── downloads/ # Directory for caching downloaded source code and tools during the build process (e.g., open-source packages, kernel sources)
├── layers/ # User-defined project engineering modules to divide different users and facilitate modular development and maintenance
├── quectel_build/ # Quectel's custom build scripts and configurations
├── sources/ # Kernel source code directory to store locally developed source code (non-Yocto standard directory)
├── src/ # Locally developed source code (non-Yocto standard directory) and driver-related device trees
├── sstate-cache/ # Shared state cache (e.g., compiled toolchains, libraries cache)
└── setup-environment # Script to initialize the build environment
build-qcom-wayland/ Overview
build-qcom-wayland/
├── buildhistory/ # Directory generated when compilation logging is enabled, including per-package file lists and dependency graphs
├── cache/ # Cache for BitBake parsing class files
├── conf/ # User configuration files
├── tmp-glibc/ # All outputs during the build process
│ ├── cache/ # Cache for BitBake-parsed metadata (recipes, config files),to improve the subsequent efficiency
│ ├── deploy/ # Deployment files directory (final output files like boot, system, and image)
│ │ ├── images/ # boot, system, and image files
│ │ ├── ipk/ # All ipk type installation packages generated by the system
│ │ └── licenses/ # Licensing information for various software used by the system
│ ├── hosttools/
│ ├── log/ # BitBake logs
│ ├── pkgdata/
│ ├── sstate-control/ # State tracking files (The OpenEmbedded build system uses this directory for shared state list files. The shared state code utilizes these files to record files installed by each state task, so they can be removed when cleaning up recipes or preparing to install a new version. The build system also leverages these lists to detect file conflicts and generate warnings when a task's files overwrite another task's files.)
│ ├── stamps/ # Record information about BitBake tracking task execution time
│ ├── sysroots/ # Compiled root filesystem
│ ├── sysroots-components/ # Additional components for sysroots compilation
│ ├── sysroots-uninative/
│ ├── work/ # Work directories related to CPU architecture
│ └── work-shared/ # The shared components of recipes(e.g., GCC toolchain, system libraries)
├── tmp-qcom-guestvm-glibc/
└── workspace/
layers/ Overview
layers/
├── meta-openembedded/ # OpenEmbedded core metadata collection, containing various shared recipes (such as toolchains, libraries, applications, etc.), extending Yocto's package support and providing additional open-source software
│ │ ├── meta-oe/ # Common softwares
│ │ ├── meta-python/ # Python-related components
│ │ └── meta-networking/ # Network tools
├── meta-qcom/ # Qualcomm BSP (Board Support Package) layer, including kernel, drivers, firmware, hardware adaptation (such as machine definition)
├── meta-qcom-distro/ # User-defined distribution configuration layer, customized distribution policies (e.g., DISTRO settings, image recipes, package combinations)
├── meta-qcom-hwe/ # Qualcomm Hardware Enablement (HWE) features, including kernel patches, hardware acceleration support (e.g., GPU/VPU), real-time extensions
├── meta-qcom-qim-product-sdk/ SDK extension layer for Qualcomm QIM products, containing product-specific software stacks, testing tools, and example codes
├── meta-qt5/ # Qt 5 framework support layer, including Qt libraries, tools (e.g., qtcreator), and application recipes
├── meta-quectel/ # Driver and tool support for Quectel modules (e.g., 4G/5G modules)
├── meta-rust/ # Rust language toolchain and ecosystem support, including Rust compiler (rustc), Cargo package manager, and Rust libraries
├── meta-security/ # Security enhancement tools and policies, such as SELinux, AppArmor, encryption tools (OpenSSL enhancements)
├── meta-selinux/ # SELinux (Security-Enhanced Linux) tools and policies, including policy files and label configurations
├── meta-updater/ # System OTA(Over-The-Air) update support
├── meta-virtualization/ # Virtualization technology support (such as containers/Docker, KVM)
└── poky/ # Core layer of the Yocto Project, providing foundational build systems (BitBake, OpenEmbedded Core), core recipes (e.g., BusyBox, glibc), and minimal toolchains/frameworks for building embedded Linux systems
quectel_build/ Overview
quectel_build/Build
├── compile/
│ │ ├── quectel-features-config/ # Auto-generated configuration files
│ │ ├── build.sh # Build scripts for AP-side environment
│ │ ├── config_parser.py # Configure file parser
│ │ ├── export_sdk.sh # Pack cross-toolchain SDK package
│ │ ├── version_parser_auto.py # Configure file parser
│ │ └── version_parser.py # Configure file parser
├── config/ List of customized projects
│ │ ├── quectel_project.conf
├── packaged_file/ # BP-side firmware is provided by default. Subsequent updates will be made here.
│ │ ├── bootbinaries/ # Binary files related to system Boot
│ │ ├── firehose/ # Related to the low-level flashing, diagnosis or firmware programming of chip devices, especially the use in EDL (Emergency Download Mode)
│ │ ├── partition/ # Files related to disk partition, device partition table, or firmware partition layout
├── prebuilt_bpfw/ # The baseline is set by default to compile the adsp and cdsp images into the system image on the AP side. The following three compressed packages are compiled from the BP side and provided for customers to use. For specific custom requests, please contact Quectel developers.
│ │ ├── QCM6490_bootbinaries.zip
│ │ ├── QCM6490_dspso.zip
│ │ ├── QCM6490_fw.zip
├── QSM565DWFPARL1A01_BP01.001_Linux6.6.38_V01/ # Image files required for QuecPi Alpha single-board computer (integrating AP and BP files)
└── a_key_generation.sh # One-click packaging tool, used for integrating system image files, such as QSM565DWFPARL1A01_BP01.001_Linux6.6.38_V01
sources/quectel-src/ Overview
sources/quectel-src/
├── kernel/ # Kernel source code (locally managed)
src/ Overview
src/
├── devicetree/ # Contain device tree source files (DTS/DTSI) used to describe hardware configurations (such as peripherals, buses, interrupts, etc.)
│ │ ├── camera-devicetree # Device tree configuration for camera modules (e.g., MIPI-CSI interface), including sensor model, I2C address, clock configuration, etc.
│ │ ├── display-devicetree # Device tree nodes for display-related hardware (e.g., MIPI-DSI display, LVDS interfaces), defining resolution, timing parameters (display-timings), backlight control, etc.
│ │ ├── graphics-devicetree # Configurations for GPU or display controllers (e.g., Qualcomm Adreno GPU, DPU), possibly involving memory allocation, clocks, and power management
│ │ ├── video-devicetree # Device tree nodes for video codec hardware (e.g., VPU), configuring video input/output interfaces (e.g., HDMI, CSI)
│ │ ├── wlan-devicetree # Configurations for wireless modules (e.g., Qualcomm WCN6855), including PCIe/SDIO interfaces, RF parameters, firmware loading paths
└── display-drives/ # Directory for display-related drivers and tools, typically including kernel drivers, firmware, configuration scripts
│ │ ├── bridge-drivers/ # Bridge chip drivers (e.g., TI SN65DSI86: MIPI-DSI to LVDS bridge chips)
│ │ ├── config/ # Configuration files for display systems (e.g., color calibration parameters, EDID data, screen rotation settings)
│ │ ├── Documentation/ # Driver development documents and hardware manuals
│ │ ├── include/ # Header files, defining data structures, register macros, and APIs
│ │ ├── msm/ # Qualcomm MSM platform-specific display drivers
│ │ ├── rotaror/ # Hardware-accelerated drivers for screen rotation/mirroring