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

# Add custom machine configurations

This explains how to define a custom machine configuration and build a custom image.

## **Machine configuration concepts**

A machine configuration file (`.conf`) describes the target hardware: the SoC family, kernel, bootloader, device tree, and storage type. Selecting a machine tells BitBake which hardware-specific settings to apply.

Machine configuration files are located in `meta-qcom/conf/machine/`. The `include` subdirectory contains shared `.inc` files that define common variables for each SoC family. For a full list of supported machines and their configuration files, see [meta-qcom](./meta-qcom#machine-configurations).

## **Supported SoCs and development kits**

For the mapping of machine configurations to development kits, see Section 4.2 of the [Qualcomm Linux Release Notes](https://dragonwingdocs.qualcomm.com/Key-Documents/Software-Release-Notes/introduction). For supported hardware SoCs, see [Hardware SoCs](https://docs.qualcomm.com/bundle/publicresource/topics/80-80021-115/soc.html).

## **Prerequisites**

To download Qualcomm Yocto and supporting meta layers, see [Build a BSP image](https://dragonwingdocs.qualcomm.com/Key-Documents/Firmware-Guide/build-firmware#build-bsp-image).

## **Add a custom machine configuration and rebuild workspace**

To add a custom machine configuration and rebuild the workspace, do the following:

1. To add a machine, add a new machine configuration file at `layers/meta-qcom/conf/machine/`; for example, `layers/meta-qcom/conf/machine/test-board.conf`.
2. If the new machine is using the QCS6490 hardware system-on-chip (SoC), in the created file, add the following content:
   ```text theme={null}
   #@TYPE: Machine
   #@NAME: TestBoard
   #@DESCRIPTION: Machine configuration for a development board, based on Qualcomm QCS6490
   require conf/machine/include/qcom-qcs6490.inc
   ```
   Add CI files under the `meta-qcom/ci` directory for the `test-board` configuration file.
3. Source the environment:
   ```text theme={null}
   kas shell meta-qcom/ci/test-board.yml:meta-qcom/ci/qcom-distro-sota.yml
   ```
4. To build an image for the machine added, run the following command:
   ```text theme={null}
   bitbake qcom-multimedia-image
   ```
