# Qualcomm Linux 커널 시작

이 정보는 Qualcomm Linux 개발 키트와 그 관련 구성 요소에 대한 Qualcomm^®^ Linux 커널을 다운로드, 구성, 개발하여 시스템 이미지를 빌드하고 플래시하는 방법을 설명합니다.

Qualcomm Linux 커널을 다운로드하고 구성하려면 우선 [Qualcomm Linux 빌드 가이드](https://docs.qualcomm.com/doc/80-70020-254/topic/build_landing_page.html) 에 설명된 대로 호스트 컴퓨터를 설정하세요. 이 가이드에서는 일반적인 Qualcomm Linux 커널 워크플로우에 대한 정보도 제공합니다.

## Qualcomm Linux 커널 소스 코드에 액세스

Qualcomm Linux 커널의 소스 코드에 액세스하려면 [Qualcomm Linux 빌드 가이드](https://docs.qualcomm.com/doc/80-70020-254/topic/build_landing_page.html) 를 참조하고 필요한 모든 Qualcomm Linux 메타 계층을 가져옵니다.

Qualcomm Linux는 LTS Linux 커널(6.6.x)을 사용하며 다음 두 가지 소프트웨어 변형을 지원합니다.

> 
> 
> - 기본 보드 지원 패키지(BSP)
> - 사용자 지정 BSP

참고

- **기본 BSP** 변형은 제한된 다운스트림 패치 세트가 있는 업스트림 LTS 리눅스 커널(6.6.x)을 사용합니다. 커널 소스는 [kernel/git/stable/linux.git](https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/?h=linux-6.6.y&amp;id=943e0aeece93a9c2329215d02621e634adf6d790) 에서 호스팅됩니다.
- **사용자 지정 BSP** 변형은 사용자 지정된 LTS Linux 커널(6.6.x)을 사용하며 CodeLinaro의 Qualcomm 저장소에서 호스팅됩니다. 커널 소스는 [kernel.qclinux.1.0.r1-rel](https://git.codelinaro.org/clo/la/kernel/qcom/-/commits/LKP.QCLINUX.1.0.r1-04800-kernel.0?ref_type=tags) 에서 호스팅됩니다.

표: 변형의 커널 레시피 경로

| 변형 | 커널 레시피 경로 |
| --- | --- |
| 기본 BSP | `recipes-kernel/linux/linux-qcom-base_6.6.bb` |
| 사용자 지정 BSP | `recipes-kernel/linux/linux-qcom-custom_6.6.bb` |

참고

기본 BSP와 사용자 지정 BSP용한 커널 레시피는 `meta-qcom-hwe` 계층에 있습니다.

커널 소스 코드를 다운로드하기 위한 Git URI(Uniform Resource Identifier)를 알아보려면 `recipes-kernel/linux/linux-qcom-base_6.6.bb` 또는 `recipes-kernel/linux/linux-qcom-custom_6.6.bb` 파일을 참조하세요.

Qualcomm Linux 계층에 대한 자세한 내용은 [Qualcomm Linux 메타데이터 계층](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-27/qualcomm_bsp_metadata_layers.html) 을 참조하세요.

> 
> 
> 참고
> 
> 
> Yocto 레시피는 Qualcomm Linux 커널 소스가 [CodeLinaro](https://git.codelinaro.org/clo/la/kernel/qcom) 에서 공개적으로 호스팅되고 있음을 나타냅니다.

다음 예시에서는 기본 BSP와 사용자 지정 BSP에 대한 Qualcomm Linux 커널 레시피의 URI 소스 정보를 보여줍니다.

**기본 BSP**

다음은 기본 BSP 변형에 대한 소스 URI 정보입니다.

SECTION = "kernel"
    
    SUMMARY = "Linux kernel for QCOM devices"
    DESCRIPTION = "Recipe to build Linux kernel from 6.6 LTS branch"
    
    LICENSE = "GPL-2.0-only"
    LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
    
    inherit kernel
    
    COMPATIBLE_MACHINE = "(qcom)"
    
    SRC_URI = " git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git;protocol=https;branch=linux-6.6.y \
                file://qcom.cfg \
    "
    Copy to clipboard

**사용자 지정 BSP**

다음은 사용자 지정 BSP 변형에 대한 소스 URI 정보입니다.

> 
> 
> SECTION = "kernel"
>     
>     SUMMARY = "Linux kernel for QCOM devices"
>     DESCRIPTION = "Recipe to build Linux kernel"
>     
>     LICENSE = "GPLv2.0-with-linux-syscall-note"
>     LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
>     
>     inherit kernel
>     
>     COMPATIBLE_MACHINE = "(qcom)"
>     
>     SRC_URI = "git://git.codelinaro.org/clo/la/kernel/qcom.git;protocol=https;rev=350dfd604d2ffbe0cac99bf3459b49114aad11f4;branch=kernel.qclinux.1.0.r1-rel \
>       file://QCLINUX-arm64-dts-qcom-sa8775p-ride-add-board-id-and.patch \
>       ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', ' file://selinux.cfg', '', d)} \
>       ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', ' file://selinux_debug.cfg', '', d)} \
>       "
>     Copy to clipboard

## 지원되는 Qualcomm 시스템 확인

Qualcomm 시스템 구성 파일은 `meta-qcom-hwe/conf/machine/` 디렉토리에 있습니다.

시스템 구성 파일은 `<SoC>-<board>-<variant>.conf` 명명 규칙을 따르며, 각 요소의 의미는 다음과 같습니다.

- `SoC` 는 시스템온칩(SoC)을 의미합니다.
- `board` 는 소프트웨어가 빌드된 보드의 유형입니다.
- `variant` 는 제품의 유형입니다.

예시:

`qcs6490-rb3gen2-core-kit.conf` 파일 이름의 경우

- `qcs6490` 은 SoC,
- `rb3gen2` 는 보드,
- `core-kit` 는 제품 유형입니다.

플랫폼별 기기 트리 파일의 경우에도 동일한 명명법을 따릅니다.

다음 예시는 Yocto에 구성된 지원되는 시스템 목록을 보여줍니다.

ls -l ./LE.QCLINUX.1.0/layers/meta-qcom-hwe/conf/machine/*.conf
    
    meta-qcom-hwe/conf/machine/qcs6490-rb3gen2-core-kit.conf
    meta-qcom-hwe/conf/machine/qcs6490-rb3gen2-vision-kit.conf
    meta-qcom-hwe/conf/machine/qcs9075-ride-sx.conf
    Copy to clipboard

다음 예시는 Qualcomm 칩셋이 포함된 개발 보드의 시스템 구성 선택 사항을 보여줍니다.

less meta-qcom-hwe/conf/machine/<SoC>-<board>-<variant>.conf
    
    #@TYPE: Machine
    #@NAME: <Machine name same as the machine conf file or ``<SoC>-<board>-<variant>`` >
    #@DESCRIPTION: Machine configuration for the development board, with Qualcomm qcs6490
    
    require conf/machine/include/qcom-<SoC>.inc
    Copy to clipboard

다음 예시는 기본 및 사용자 지정 BSP 변형에 대한 커널 구성 선택 사항을 보여줍니다.

less meta-qcom-hwe/conf/machine/include/qcom-base.inc
    
    # Provider for linux kernel
    # qcom-base-bsp uses 'linux-qcom-base' as kernel
    PREFERRED_PROVIDER_virtual/kernel ?= "linux-qcom-custom"
    PREFERRED_PROVIDER_virtual/kernel:qcom-base-bsp ?= "linux-qcom-base"
    Copy to clipboard

참고

- 기본 BSP 변형이 컴파일될 경우 `linux-qcom-base` 가 선택됩니다.
- 사용자 지정 BSP가 컴파일될 경우 `linux-qcom-custom` 이 선택됩니다.

## Yocto 이미지 레시피 및 커널 구성 빌드

Qualcomm Linux 이미지 레시피에 액세스하여 커널 구성을 수정할 수 있습니다. 다음 표는 지원되는 `meta-qcom-hwe` 이미지 목록을 보여줍니다.

표: Qualcomm Linux의 지원되는 이미지 레시피

| 이미지 이름 | 설명 |
| --- | --- |
| qcom-console-image<br>    Copy to clipboard | 모든 기본 패키지를 가져오는 패키지 그룹이 있는 boot-to-shell 이미지입니다. |
| qcom-multimedia-image<br>    Copy to clipboard | 이 이미지 레시피에는 오디오, 블루투스^®^, 카메라, 컴퓨터 비전, 디스플레이, 비디오 등의 멀티미디어 소프트웨어 구성 요소용 레시피가 포함됩니다. |
| qcom-multimedia-test-image<br>    Copy to clipboard | 이 이미지 레시피에는 테스트가 포함됩니다. |

Qualcomm Linux 코드를 다운로드한 후 `bitbake` 명령을 실행하여 이미지를 빌드합니다.

참고

기본 BSP 변형은 `arch/arm64/configs/defconfig` 커널 구성 파일을 사용합니다. 로컬 변경 사항은 `meta-qcom-hwe/recipes-kernel/linux/linux-qcom-base-6.6/qcom.cfg` 파일의 `defconfig` 위에 오버레이됩니다.

기본 BSP 변형을 위한 Qualcomm Linux 커널을 컴파일하려면 다음 명령어를 실행하세요.

# Use the filename of Machine conf file for MACHINE parameter
    $ MACHINE=<SoC>-<board>-<variant> DISTRO=qcom-wayland QCOM_SELECTED_BSP=base source setup-environment
    
    # build qcom linux console image
    $ bitbake qcom-console-image
    
    # Build Images are produced under "build-qcom-wayland/tmp-glibc/deploy/images/<SoC>-<board>-<variant>/qcom-console-image/"
    Copy to clipboard

To build the images listed in [표: Qualcomm Linux의 지원되는 이미지 레시피](https://docs.qualcomm.com/doc/80-70020-3KO/topic/getting_started_chapter2.html#qualcomm-linux-supported-image-recipes), the Qualcomm
Linux kernel custom BSP recipe uses one of the following kernel configuration
fragments:

참고

다운스트림 커널 구성 파일에는 `addons` 가 포함됩니다.

표: 사용자 지정 BSP 커널 구성 조각

| 커널 구성 조각 | 설명 |
| --- | --- |
| <kernel_src>/arch/arm64/configs/qcom_defconfig<br>    Copy to clipboard | 제품의 기본 구성이 업스트림 커널과 정렬되어야 합니다. |
| <kernel_src>/arch/arm64/configs/qcom_debug.config<br>    Copy to clipboard | 업스트림 커널의 구성 조각을 디버그합니다. |
| <kernel_src>/arch/arm64/configs/qcom_addons.config<br>    Copy to clipboard | 업스트림 정렬 기반 위에 Qualcomm 다운스트림 추가 기능을 추가합니다. |
| <kernel_src>/arch/arm64/configs/qcom_addons_debug.config<br>    Copy to clipboard | Qualcomm 다운스트림 디버그를 수행할 수 있도록 합니다. |

사용자 지정 BSP 변형을 위한 커널을 포함한 Qualcomm Linux를 구성하려면 다음 명령어를 실행하세요.

> 
> 
> # Use the filename of Machine conf file for MACHINE parameter
>       MACHINE=<SoC>-<board>-<variant> DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
>     
>     # build qcom linux console image
>       bitbake qcom-console-image
>     
>     # Build Images are produced under "build-qcom-wayland/tmp-glibc/deploy/images/<SoC>-<board>-<variant>/qcom-console-image/"
>     Copy to clipboard

커널 기본 빌드는 `linux-qcom-base_6.6.bb` 또는 `linux-qcom-custom_6.6.bb` 파일에 정의되어 있습니다.

Qualcomm Linux 커널 레시피는 다음 표에 나열된 3번(성능) 및 4번(디버그) 빌드를 지원합니다. 기본 빌드 구성은 3번(성능)입니다. 다음 커널 구성 조각은 사용자 지정 BSP 변형에만 적용됩니다.

> 
> 
> 표: 사용자 지정 BSP 커널 빌드 구성 유형 및 구성
> 
> 
> | 일련 번호 | 커널 빌드 구성 유형 | Defconfig/config 조각 |
> | --- | --- | --- |
> | 1 | 베이스 | arch/arm64/configs/qcom_defconfig<br>    Copy to clipboard |
> | 2 | 디버그 지원 기반 | <ul><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_defconfig<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_debug.config<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br></ul> |
> | 3 | 다운스트림 추가 기능이 포함된 기반 | <ul><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_defconfig<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_addons.config<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br></ul> |
> | 4 | 다운스트림이 포함된 디버그 지원 기반 | <ul><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_defconfig<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_debug.config<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_addons.config<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_addons_debug.config<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br></ul> |

커널 구성에 대한 자세한 내용은 커널 구성 을 참조하세요.

### Qualcomm 디버그 빌드 컴파일

디버그 빌드를 컴파일하려면 다음 명령어를 실행하세요.

DEBUG_BUILD=1 bitbake qcom-console-image
    Copy to clipboard

빌드 구성을 수정하려면 `meta-qcom-hwe` 계층의 `linux-qcom-base_6.6.bb` 또는 `linux-qcom-custom_6.6.bb` 커널 레시피에서 `KERNEL_CONFIG` 및 `KERNEL_CONFIG_FRAGMENTS` 변수를 업데이트합니다.

### 커널 구성 예시

다음 예시는 기본 및 사용자 지정 BSP에 대한 커널 구성을 보여줍니다.

**기본 BSP**

다음 예시는 `linux-qcom-base_6.6.bb` 커널 레시피를 사용한 커널 구성을 보여줍니다.

> 
> 
> KERNEL_CONFIG_FRAGMENTS:append = " ${WORKDIR}/qcom.cfg"
>     
>     S = "${WORKDIR}/git"
>     
>     # 6.6.38
>     SRCREV = "2928631d5304b8fec48bad4c7254ebf230b6cc51"
>     PV = "6.6+git${SRCPV}"
>     
>     KERNEL_CONFIG ??= "defconfig"
>     Copy to clipboard

**사용자 지정 BSP**

다음 예시는 `linux-qcom-custom_6.6.bb` 커널 레시피를 사용한 커널 구성을 보여줍니다.

> 
> 
> KERNEL_CONFIG ??= "qcom_defconfig"
>     
>     KERNEL_CONFIG_FRAGMENTS:append = " ${S}/arch/arm64/configs/qcom_addons.config"
>     KERNEL_CONFIG_FRAGMENTS:append = " ${@oe.utils.vartrue('DEBUG_BUILD', '${S}/arch/arm64/configs/qcom_debug.config', '', d)}"
>     KERNEL_CONFIG_FRAGMENTS:append = " ${@oe.utils.vartrue('DEBUG_BUILD', '${S}/arch/arm64/configs/qcom_addons_debug.config', '', d)}"
>     
>     # Enable selinux support
>     SELINUX_CFG = "${@oe.utils.vartrue('DEBUG_BUILD', 'selinux_debug.cfg', 'selinux.cfg', d)}"
>     KERNEL_CONFIG_FRAGMENTS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', '${WORKDIR}/${SELINUX_CFG}', '', d)}"
>     Copy to clipboard

빌드 지침에 대한 자세한 내용은 [Qualcomm Linux 빌드 가이드](https://docs.qualcomm.com/doc/80-70020-254/topic/build_landing_page.html) 에서 [QSC CLI로 빌드](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/build_frm_source_qsc_cli.html#build-from-source-qsc-cli) 를 참조하세요.

## 플랫폼 기기 트리에 액세스

지원되는 개발 키트를 위한 Qualcomm DTSI 및 기기 트리 소스(DTS) 파일은 `arch/arm64/boot/dts/qcom/` 디렉토리의 커널 소스에 있습니다. 이러한 Qualcomm 파일은 업스트림 정렬 및 다운스트림 추가 기능을 분리합니다.

`addons` 가 포함된 기기 트리 파일은 다운스트림 파일입니다. 기본 BSP 변형 소프트웨어는 다운스트림 기기 트리 파일을 사용하지 않습니다.

`<SoC>-<board>-<variant>​.conf` 는 Qualcomm Linux 시스템 구성 파일로, 필요한 기기 트리 blob(DTB) 선택 구성 데이터를 포함하고 있습니다.

- `SoC` 는 지원되는 모든 Qualcomm Linux SoC입니다. 예를 들어 QCS6490 및 IQ-9075입니다.
- `board` 는 Dragonwing™ RB3 Gen 2를 지원하는 제품입니다.
- `variant` 는 코어 키트 같은 특정한 제품 유형입니다.

다음 예시는 DTB를 기기 구성 파일에 포함하는 방법을 보여줍니다.

KERNEL_DEVICETREE = " \
                         qcom/<SoC>-addons-<variant>.dtb \
                         "
    Copy to clipboard

Tab QCS6490
Tab IQ-9075
Tab IQ-8275
Tab IQ-615

다음 표에는 Dragonwing™ RB3 Gen 2 개발 키트를 위한 Qualcomm^®^ 의 기기 트리 파일이 나열되어 있습니다.

> 
> 
> 표: Qualcomm 기기 트리 소스
> 
> 
> | 기기 트리 소스 | 세부 정보 |
> | --- | --- |
> | arch/arm64/boot/dts/qcom/sc7280.dtsi<br>    Copy to clipboard | QCS6490 SoC는 SC7280 SoC에서 파생된 것입니다. |
> | arch/arm64/boot/dts/qcom/qcm6490.dtsi<br>    Copy to clipboard | 변경 사항을 호스팅하는 QCM6490/QCS6490 DTSI는 SC7280 SoC와 다릅니다. |
> | arch/arm64/boot/dts/qcom/qcm6490-addons.dtsi<br>    Copy to clipboard | QCM6490/QCS6490 SoC에만 적용되는 다운스트림 추가 기능입니다. |
> | arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts<br>    Copy to clipboard | QCS6490 Dragonwing™ RB3 Gen 2 개발 키트의 기기 트리 소스입니다. |
> | arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dts<br>    Copy to clipboard | Dragonwing™ RB3 Gen 2 개발 키트용 QCS6490에만 적용되는 다운스트림 추가 기능입니다. |
> | arch/arm64/boot/dts/qcom/qcs5430-addons-rb3gen2.dts<br>    Copy to clipboard | Dragonwing™ RB3 Gen 2 개발 키트용 QCS5430 기능 팩 1에만 적용되는 다운스트림 추가 기능입니다. |
> | arch/arm64/boot/dts/qcom/qcs5430-fp2-addons-rb3gen2.dts<br>    Copy to clipboard | Dragonwing™ RB3 Gen 2 개발 키트용 QCS5430 기능 팩 2에 적용되는 다운스트림 추가 기능입니다. |
> | arch/arm64/boot/dts/qcom/qcs5430-fp2p5-addons-rb3gen2-vision-mezz.dts<br>    Copy to clipboard | Dragonwing™ RB3 Gen 2 비전 메자닌 개발 키트의 QCS5430 기능 팩 2.5에 적용되는 다운스트림 추가 기능입니다. |
> | arch/arm64/boot/dts/qcom/qcs5430-fp3-addons-rb3gen2-vision-mezz.dts<br>    Copy to clipboard | Dragonwing™ RB3 Gen 2 비전 메자닌 개발 키트의 QCS5430 기능 팩 3에 적용되는 다운스트림 추가 기능입니다. |

다음 표에는 Qualcomm Dragonwing™ IQ-9075 개발 키트를 위한 Qualcomm 기기 트리 파일이 나열되어 있습니다. 기본적으로 추가 항목 DTB가 사용됩니다.

> 
> 
> 표: Qualcomm 기기 트리 소스
> 
> 
> | 기기 트리 소스 | 세부 정보 |
> | --- | --- |
> | arch/arm64/boot/dts/qcom/sa8775p.dtsi<br>    Copy to clipboard | Dragonwing^TM^ IQ-9075 SoC는 SA8775P에서 파생된 것입니다. |
> | arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi<br>    Copy to clipboard | Dragonwing IQ-9075용 Qualcomm Linux 개발 키트입니다. |
> | arch/arm64/boot/dts/qcom/qcs9075-ride.dts<br>    Copy to clipboard | Dragonwing^TM^ IQ-9075 ride용 Qualcomm Linux 개발 키트입니다. |
> | arch/arm64/boot/dts/qcom/qcs9075-addons-ride.dts<br>    Copy to clipboard | 다운스트림 추가 기능이 포함된 Dragonwing^TM^ IQ-9075 ride용 Qualcomm Linux 개발 키트입니다. |
> | arch/arm64/boot/dts/qcom/qcs9075-iq-9075-evk.dts<br>    Copy to clipboard | Qualcomm Dragonwing^TM^ IQ-9075 EVK용 Qualcomm Linux 개발 키트입니다. |
> | arch/arm64/boot/dts/qcom/qcs9075-addons-iq-9075-evk.dts<br>    Copy to clipboard | 다운스트림 추가 기능이 포함된 Qualcomm Dragonwing^TM^ IQ-9075 EVK용 Qualcomm Linux 개발 키트입니다. |

다음 표에는 Dragonwing^TM^ IQ-8275 개발 키트를 위한 Qualcomm 기기 트리 파일이 나열되어 있습니다. 기본적으로 추가 항목 DTB가 사용됩니다.

> 
> 
> 표: Qualcomm 기기 트리 소스
> 
> 
> | 기기 트리 소스 | 세부 정보 |
> | --- | --- |
> | arch/arm64/boot/dts/qcom/qcs8300.dtsi<br>    Copy to clipboard | Dragonwing IQ-8275 SoC는 QCS8300에서 파생된 것입니다. |
> | arch/arm64/boot/dts/qcom/qcs8300-addons.dtsi<br>    Copy to clipboard | 다운스트림 추가 기능이 포함된 Dragonwing IQ-8275용 Qualcomm Linux 개발 키트입니다. |
> | arch/arm64/boot/dts/qcom/qcs8300-ride.dts<br>    Copy to clipboard | Dragonwing IQ-8275 ride용 Qualcomm Linux 개발 키트입니다. |
> | arch/arm64/boot/dts/qcom/qcs8300-addons-ride.dts<br>    Copy to clipboard | 다운스트림 추가 기능이 포함된 Dragonwing IQ-8275 ride용 Qualcomm Linux 개발 키트입니다. |

다음 표에는 Qualcomm IQ-615 개발 키트를 위한 Qualcomm 기기 트리 파일이 나열되어 있습니다. 기본적으로 추가 항목 DTB가 사용됩니다.

> 
> 
> 표: Qualcomm 기기 트리 소스
> 
> 
> | 기기 트리 소스 | 세부 정보 |
> | --- | --- |
> | arch/arm64/boot/dts/qcom/qcs615.dtsi<br>    Copy to clipboard | Dragonwing IQ-615 SoC의 기본 구성 파일입니다. |
> | arch/arm64/boot/dts/qcom/qcs615-addons.dtsi<br>    Copy to clipboard | 다운스트림 추가 기능이 포함된 Dragonwing IQ-615 SoC의 기본 구성 파일입니다. |
> | arch/arm64/boot/dts/qcom/qcs615-ride.dtsi<br>    Copy to clipboard | Dragonwing IQ-615 ride SoC의 기본 구성 파일입니다. |
> | arch/arm64/boot/dts/qcom/qcs615-addons-ride.dtsi<br>    Copy to clipboard | 다운스트림 추가 기능이 포함된 Dragonwing IQ-615 ride SoC의 기본 구성 파일입니다. |

## 트리 외부 DT 오버레이 조각 관리

SoC 시스템 구성 파일에는 추가적인 트리 외부 DTBO가 포함되어 있습니다.

그래픽, 카메라, 무선 근거리 네트워크(WLAN) 드라이버 및 해당하는 기기 트리 구성은 커널 소스 트리 외부에 유지됩니다. 각각의 기기 트리 소스 오버레이(DTSO) 조각은 빌드 시 기본 DTB 위에 오버레이됩니다.

DTBO 구성은 `conf/machine/<SoC>-<board>-<variant>.conf` 파일에서 수행됩니다.

다음 예시는 DTBO 구성을 보여줍니다.

# OUT_OF_KERNEL_DTSO - qcs6490-rb3gen2-core-kit.conf
    # Additional list of DTBOs to be overlaid on top of base kernel devicetree files
    # Format - KERNEL_TECH_DTBOS[<base-dtb-name>] = "<dtbo1 <dtbo2> ..."
    # For example:
    
    KERNEL_TECH_DTBOS[qcs6490-addons-rb3gen2] = " \
    qcm6490-graphics.dtbo qcm6490-wlan-rb3.dtbo \
    qcm6490-display-rb3.dtbo qcm6490-bt.dtbo \
    qcm6490-video.dtbo qcm6490-wlan-upstream.dtbo \
    "
    Copy to clipboard

## 트리 외부 커널 모듈 관리

대부분의 커널 드라이버는 업스트림 커널 소스에서 컴파일됩니다. 그러나 일부 드라이버는 커널 소스 트리 외부에 유지되며, Yocto 빌드 시스템을 사용하여 커널 모듈로 구성됩니다.

다음 예시에서 Bluetooth^®^ 는 트리 외부 커널 모듈입니다. `recipes-connectivity/bt_dlkm_kernel/bt-dlkm-kernel_git.bb` 에 있는 레시피는 드라이버를 커널 모듈로 컴파일합니다. 부팅 시 커널 모듈을 자동 로드하려면 `KERNEL_MODULE_AUTOLOAD` 변수에 모듈 이름을 추가하면 됩니다.

# Example out-of-tree Kernel module recipe
    DESCRIPTION = "QCOM BT drivers"
    LICENSE = "GPL-2.0-only"
    LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=801f80980d171dd6425610833a22dbe6"
    
    inherit module
    
    SRC_URI += "git://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/bt-kernel.git;protocol=https;rev=9e5cf29625d60f78e88440c94d096a9139445c00;branch=bt-performant.qclinux.1.0.r1-rel \
             file://bt_dlkm \
             file://bt_dlkm.service \
             "
    
    S = "${WORKDIR}/git"
    
    RPROVIDES:${PN} += "kernel-module-bt-kernel"
    
    EXTRA_OEMAKE += "MACHINE='${MACHINE}'"
    MAKE_TARGETS = "modules"
    MODULES_INSTALL_TARGET = "modules_install"
    # Kernel module to be autoloaded
    KERNEL_MODULE_AUTOLOAD += "bt_fm_slim"
    Copy to clipboard

## 기기 이미지 빌드

완전한 이미지와 커널을 구성하려면 다음과 같은 Yocto 명령을 실행합니다.

# setup the build environment
      export SHELL=/bin/bash
    
      source setup-environment
    # (select "<SoC> meta-qcom" → Enter → select "qcom-wayland meta-qcom-distro" → Enter)
    
    # build qcom linux console image
      bitbake qcom-console-image
    
    # Build kernel only
      bitbake linux-qcom-base
    
    # Build Images are produced under
    # build-qcom-wayland/tmp-glibc/deploy/images/<SoC>-<board>-<variant>/qcom-console-image/
    Copy to clipboard

SoC 지원 Qualcomm 배포를 위해 서로 다른 이미지를 빌드하는 방법에 대한 자세한 내용은 커널 구성 을 참조하세요.

참고

사용자 지정 BSP를 빌드하려면 `linux-qcom-custom` 을 사용하세요.

## 기기 브링업하기

`efi.bin` 파일에는 systemd-boot(부팅 매니저), 커널, initramfs 이미지 파일이 있습니다. Yocto 빌드는 이러한 이미지를 `efi.bin` 에 패키징하며, 이 파일은 EFI 시스템 파티션(ESP)에 플래시되어 기기를 부팅합니다.

기기 트리 blob은 `conf/machine/<SoC>-<board>-<variant>.conf` 파일의 `KERNEL_DEVICETREE` 변수에 업데이트되거나 추가됩니다. 이러한 기기 트리 blob은 `dtb.bin` 파일을 컴파일하는 데 사용됩니다.

다음 fastboot 명령어를 사용하여 `efi.bin` 및 `dtb.bin` 이미지를 플래시하세요.

# Bring the device in fastboot mode
    # cd to the source root location
    $ cd build-qcom-wayland/tmp-glibc/deploy/images/<SoC>/qcom-console-image
    $ fastboot flash efi efi.bin
    $ fastboot flash dtb_a dtb.bin
    $ fastboot reboot
    Copy to clipboard

Qualcomm Linux 빌드가 생성된 후에는 커널 빌드가 완료되며 `tmp-glibc/deploy/images/<SoC>-<board>-<variant>/` 디렉토리에 커널 관련 이미지가 생성됩니다.

다음 표에는 커널 빌드 아티팩트가 나열되어 있습니다.

표: 커널 빌드 아티팩트

| 이미지 | 이미지 이름 | 빌드 배포 경로 | 세부 정보 |
| --- | --- | --- | --- |
| 커널 실행 파일 및 링크 형식(ELF) | vmlinux<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | 디버그 심볼을 사용하여 출력 커널 ELF를 생성합니다. |
| Initramfs | initramfs-qcom-image-<SoC>-<board>-<variant>.cpio.gz<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | CPIO(Copy in-Copy out, 복사 입력-복사 출력) 파일 형식의 Initramfs입니다. |
| 커널 이미지 | Image<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | 커널의 원시 이미지 바이너리, systemd-boot는 압축 이미지를 지원하지 않습니다. |
| 커널 모듈 | 동적으로 로드 가능한 다양한 커널 모듈(DLKM)<br><br><br>modules-<SoC>-<board>-<variant>.tgz<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | 커널 드라이버 모듈입니다. |
| 기기 트리 blob | <SoC>-addons-<VARIANT>.dtb<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | 개별 기기 트리 blob입니다. |
| ESP 파티션 | efi.bin<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | systemd-boot, 커널, initramfs를 비롯한 모든 필수 부트 이미지가 확장형 펌웨어 인터페이스(`efi.bin`) 바이너리에 패키징되어 있습니다. |
| DTB 파티션 | dtb.bin<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | 모든 DTBO 파일이 `dtb.bin` 바이너리에 병합됩니다. |

Last Published: Jan 01, 2026

[Previous Topic
커널 개요](https://docs.qualcomm.com/bundle/publicresource/80-70020-3KO/topics/overview.md) [Next Topic
부팅 흐름 및 구조 개요](https://docs.qualcomm.com/bundle/publicresource/80-70020-3KO/topics/boot-flow-and-architecture-overview.md)