> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Choose your workflow

The Qualcomm<sup>®</sup> Linux kernel supports two development workflows. Select the one that
matches your use case before proceeding.

**Table: Workflow comparison**

| | Yocto-based build | Standalone build |
| - | - | - |
| **Recommended for** | Full BSP integration, production images, or when modifying kernel recipes and configuration fragments | Rapid kernel iteration: compile, test, and deploy kernel changes without building the full image |
| **Tooling** | kas / BitBake with the `meta-qcom` layer | Docker-based `kmake-image` with aarch64 cross-toolchain |
| **Build scope** | Kernel + root file system + all packages | Kernel and in-tree modules only; out-of-tree module builds require the Yocto sysroot |
| **Kernel configuration** | Yocto bbappend fragments and `defconfig` patches | Direct `menuconfig` or `.config` editing |
| **Setup complexity** | Higher: full Yocto workspace and layer checkout required | Lower: Docker image provides all required dependencies |
| **Deploy method** | Flash full image via fastboot | Update kernel UKI image on the ESP partition |

Follow the links below for step-by-step instructions:

* **Yocto-based build**: see [Build the Kernel with Yocto](./build-kernel-yocto)
* **Standalone build**: see [Build the kernel without Yocto](./build-kernel-standalone)

## 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**

| Scenario | Action needed |
| - | - |
| Running existing applications on a supported SoC and board | No kernel changes required. Use the pre-built BSP image. |
| Enabling or disabling a kernel driver or subsystem | Modify the kernel configuration (`defconfig` or a config fragment). See [Modify the kernel](./modify-the-kernel). |
| Adding support for a new peripheral or sensor | Add or modify a device tree node. Rebuild the DTB. See [Build and deploy DTBs](./build-and-deploy-dtbs). |
| Implementing a new kernel driver or subsystem | Write and integrate a new driver. Build the kernel and test. See [Modify the kernel](./modify-the-kernel). |
| Achieving deterministic real-time latency | Switch to the RT kernel build. See [RT kernel fundamentals](./rt-kernel-fundamentals). |
| Porting the kernel to a new board or SoC variant | Add device tree support and any required driver changes. |
