Skip to main content
The Qualcomm® Linux kernel supports two development workflows. Select the one that matches your use case before proceeding. Table: Workflow comparison
Yocto-based buildStandalone build
Recommended forFull BSP integration, production images, or when modifying kernel recipes and configuration fragmentsRapid kernel iteration: compile, test, and deploy kernel changes without building the full image
Toolingkas / BitBake with the meta-qcom layerDocker-based kmake-image with aarch64 cross-toolchain
Build scopeKernel + root file system + all packagesKernel and in-tree modules only; out-of-tree module builds require the Yocto sysroot
Kernel configurationYocto bbappend fragments and defconfig patchesDirect menuconfig or .config editing
Setup complexityHigher: full Yocto workspace and layer checkout requiredLower: Docker image provides all required dependencies
Deploy methodFlash full image via fastbootUpdate kernel UKI image on the ESP partition
Follow the links below for step-by-step instructions:

When to modify the kernel

Not all Qualcomm Linux use cases require kernel modification. The following table helps you decide: Table: When to modify the kernel
ScenarioAction needed
Running existing applications on a supported SoC and boardNo kernel changes required. Use the pre-built BSP image.
Enabling or disabling a kernel driver or subsystemModify the kernel configuration (defconfig or a config fragment). See Modify the kernel.
Adding support for a new peripheral or sensorAdd or modify a device tree node. Rebuild the DTB. See Build and deploy DTBs.
Implementing a new kernel driver or subsystemWrite and integrate a new driver. Build the kernel and test. See Modify the kernel.
Achieving deterministic real-time latencySwitch to the RT kernel build. See RT kernel fundamentals.
Porting the kernel to a new board or SoC variantAdd device tree support and any required driver changes.