# 펌웨어 및 추가 기능을 사용하여 GitHub로 빌드

참고

이 정보는 권한 있는 사용자에게만 적용됩니다. 접근 권한을 업그레이드하려면 [http://www.qualcomm.com/support/working-with-qualcomm](http://www.qualcomm.com/support/working-with-qualcomm) 으로 이동하세요.

이 정보를 활용하여 일부 독점 소스 및 바이너리/라이브러리를 사용하는 `meta-qcom-hwe`, `meta-qcom-extras`, `meta-qcom-qim-product-sdk` 및 `meta-qcom-robotics-sdk` 계층을 비롯한 다양한 Qualcomm Linux Yocto 계층을 빌드하세요.

## 호스트 컴퓨터 요구사항

| 구성 | 도구 | 권한 |
| --- | --- | --- |
| x86 컴퓨터 | Git 1.8.3.1 이후 버전 | 몇 가지 명령어는 실행하려면 `sudo` 권한이 필요합니다. |
| 쿼드 코어 CPU(예: 3.4GHz의 Intel i7-2600 동급 또는 상위 제품) | Tar 1.28 이후 버전 | 몇 가지 명령어는 실행하려면 `sudo` 권한이 필요합니다. |
| 디스크 여유 공간 300GB 이상(스왑 파티션 &gt; 32GB) | Python 3.10.2 이후 버전 | 몇 가지 명령어는 실행하려면 `sudo` 권한이 필요합니다. |
| 16GB RAM | GCC 8.0 이후 버전 | 몇 가지 명령어는 실행하려면 `sudo` 권한이 필요합니다. |
| Ubuntu 22.04 | GNU 4.0 이후 버전 | 몇 가지 명령어는 실행하려면 `sudo` 권한이 필요합니다. |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |

참고

Microsoft^®^ Windows^®^ 또는 Apple^®^ macOS^®^ 에서 Ubuntu 22.04를 실행하는 가상 머신(VM)을 설정하려면 [Qualcomm Linux 가상 머신 설정 가이드](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-41/) 를 참조하세요. VM에서 코드 컴파일을 수행하면 처리 속도가 느려 몇 시간이 걸릴 수 있습니다. 퀄컴은 Ubuntu 호스트 컴퓨터를 이용하여 컴파일할 것을 권장합니다.

## QSC CLI 설치

1. curl을 설치합니다(아직 설치되지 않은 경우).

sudo apt install curl
        Copy to clipboard
2. `qsc-cli` 용 Debian 패키지를 다운로드합니다.

cd <workspace_path>
        curl -L https://softwarecenter.qualcomm.com/api/download/software/qsc/linux/latest.deb -o qsc_installer.deb
        Copy to clipboard
3. `qsc-cli` Debian 패키지를 설치합니다.

sudo apt update
        sudo apt install ./qsc_installer.deb
        Copy to clipboard
4. 등록된 이메일 ID를 사용하여 `qsc-cli` 에 로그인합니다.

참고

등록하려면 [https://www.qualcomm.com/support/working-with-qualcomm](https://www.qualcomm.com/support/working-with-qualcomm) 으로 이동하세요.

qsc-cli login -u <username>
        Copy to clipboard

참고

자세한 내용은 [동기화 방법](https://docs.qualcomm.com/doc/80-70018-254K/topic/how_to.html#howto-sync) 에서 `qsc-cli` 관련 항목을 참조하세요.

## Ubuntu 호스트 설정

필요한 소프트웨어 도구를 설치하고 사용할 수 있게 구성하려면 Ubuntu 호스트 컴퓨터를 설정해야 합니다.

1. 다음 패키지를 설치합니다.

sudo apt update
        sudo apt install repo gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint xterm python3-subunit mesa-common-dev zstd liblz4-tool locales tar python-is-python3 file libxml-opml-simplegen-perl vim whiptail g++ libacl1
        sudo apt-get install lib32stdc++6 libncurses5 checkinstall libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev curl
        Copy to clipboard
2. PAT를 사용하는 Qualcomm 로그인 ID를 홈 디렉토리의 `~/.netrc` 파일에 추가합니다.

# Log in to qsc-cli to generate PAT
        qsc-cli login -u <username>
        # Run the following command to generate PAT
        qsc-cli pat --get
        # This command gives output as shown in the following note
        # The last line in this output is the token, which can be used to access
        # Qualcomm Proprietary repositories. This token expires in two weeks.
        Copy to clipboard

참고

user@hostname:/local/mnt/workspace$ qsc-cli pat –get

[Info]: Starting qsc-cli version 0.0.0.9

**5LThNlklb55mMVLB5C2KqUGU2jCF**
3. 선호하는 텍스트 편집기를 사용하여 `~/.netrc` 파일을 편집하고 다음 항목을 추가합니다.

참고

`~/.netrc` 파일이 없으면 새로 만듭니다.

machine chipmaster2.qti.qualcomm.com
        login <your Qualcomm login id>
        password <your PAT token>
        
        machine qpm-git.qualcomm.com
        login <your Qualcomm login id>
        password <your PAT token>
        Copy to clipboard
4. 로케일을 설정합니다(아직 설정되지 않은 경우).

sudo locale-gen en_US.UTF-8
        sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
        export LC_ALL=en_US.UTF-8
        export LANG=en_US.UTF-8
        Copy to clipboard
5. git 구성을 업데이트합니다.

# Check if your identity is configured in .gitconfig
        git config --get user.email
        git config --get user.name
        
        # Run the following commands if you don't have your account identity set in .gitconfig
        git config --global user.email <Your email ID>
        git config --global user.name <"Your Name">
        
        # Add the following UI color option for output of console (optional)
        git config --global color.ui auto
        
        # Add the following git configurations to fetch large size repositories and to avoid unreliable connections
        git config --global http.postBuffer 1048576000
        git config --global http.maxRequestBuffer 1048576000
        git config --global http.lowSpeedLimit 0
        git config --global http.lowSpeedTime 999999
        
        # Add the following git configurations to follow remote redirects from http-alternates files or alternates
        git config --global http.https://chipmaster2.qti.qualcomm.com.followRedirects true
        git config --global http.https://qpm-git.qualcomm.com.followRedirects true
        Copy to clipboard
6. Python 3.10.2를 설정합니다.

참고

Python 3.10.2 이후 버전이 이미 있는 경우 다음 지침을 건너뛰세요.

python --version
        # Download it in a directory of your choice
        wget https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgz
        tar -xvf Python-3.10.2.tgz
        cd Python-3.10.2
        # Use sudo if you need to access /opt
        ./configure --prefix=/opt/python3 --enable-optimizations
        make
        make install
        ln -s /opt/python3/bin/python3  /opt/python3/bin/python
        export PATH=/opt/python3/bin:$PATH
        export PYTHONPATH=/opt/python3/lib:$PYTHONPATH
        Copy to clipboard

## 펌웨어 소스로 빌드

### 펌웨어 동기화

다음 표에서는 Qualcomm Yocto 계층 및 릴리스 태그에 관해 설명합니다.

| 접근 수준 | Yocto 계층 | 릴리스 태그 | 예시 |
| --- | --- | --- | --- |
| 일반 개발자(등록되지 않음) | `meta-qcom-hwe` | 매니페스트 릴리스 태그 | qcom-6.6.65-QLI.1.4-Ver.1.1.xml |
| 일반 개발자(등록되지 않음) | `meta-qcom-qim-product-sdk` | 매니페스트 릴리스 태그 | qcom-6.6.65-QLI.1.4-Ver.1.1\_qim-product-sdk-1.1.2.xml |
| 일반 개발자(등록되지 않음) | `meta-qcom-robotics-sdk` | 매니페스트 릴리스 태그 | qcom-6.6.65-QLI.1.4-Ver.1.0\_robotics-product-sdk-1.0.xml |
| 승인된 접근 권한이 있는 라이선스 개발자 | `meta-qcom-extras` | meta-qcom-extras 릴리스 태그 | r1.0\_00077.0 |
| [펌웨어 배포판에 접근 수준 매핑](https://docs.qualcomm.com/doc/80-70018-254K/topic/build_addn_info.html#build-mapping-access-levels) 참조 | NA | 펌웨어 릴리스 태그 | r1.0\_00075.0 |
|  |  |  |  |
|  |  |  |  |

다음 표에서는 요구사항 및 권한에 따라 다운로드할 수 있는 펌웨어 배포판에 관해 설명합니다.

| **접근 수준** | **배포판** | Yocto 계층 |
| --- | --- | --- |
| 승인된 접근 권한이 있는 라이선스 개발자 | BSP 빌드: 상위 수준 OS 및 펌웨어 소스(GPS만 해당)<br><br><br>`Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|NoModem` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras` |
| 승인된 접근 권한이 있는 라이선스 개발자 | BSP 빌드 + QIMP SDK<br><br><br><br>> <br>> <br>> `Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|NM_QIMPSDK` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras`<br><br><br>`meta-qcom-qim-product-sdk` |
| 승인된 접근 권한이 있는 라이선스 개발자 | BSP 빌드 + QIMP SDK + QIRP SDK<br><br><br><br>> <br>> <br>> `Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|NM_QIRPSDK` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras`<br><br><br>`meta-qcom-robotics-extras`<br><br><br>`meta-ros`<br><br><br>`meta-qcom-robotics`<br><br><br>`meta-qcom-robotics-distro`<br><br><br>`meta-qcom-robotics-sdk`<br><br><br>`meta-qcom-qim-product-sdk` |
| 라이선스 개발자(퀄컴에 접근 권한 문의) | BSP 빌드: 상위 수준 OS 및 펌웨어(GPS만 해당) 소스<br><br><br>`Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras` |
| 라이선스 개발자(퀄컴에 접근 권한 문의) | BSP 빌드 + QIMP SDK(GPS만 해당)<br><br><br><br>> <br>> <br>> `Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|QIMPSDK` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras`<br><br><br>`meta-qcom-robotics-extras`<br><br><br>`meta-qcom-qim-product-sdk` |
| 라이선스 개발자(퀄컴에 접근 권한 문의) | BSP 빌드: 상위 수준 OS 및 펌웨어(GPS 및 모뎀) 소스<br><br><br><br>> <br>> <br>> `Qualcomm_Linux.SPF.1.0|AMSS|Standard|OEM|` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras` |
| 라이선스 개발자(퀄컴에 접근 권한 문의) | BSP 빌드 + QIMP SDK(GPS 및 모뎀)<br><br><br><br>> <br>> <br>> `Qualcomm_Linux.SPF.1.0|AMSS|Standard|OEM|QIMPSDK` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras`<br><br><br>`meta-qcom-qim-product-sdk` |
|  |  |  |
|  |  |  |
|  |  |  |

참고

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

git 저장소에 펌웨어 배포판 매핑

| 펌웨어 배포판 | Git 명령어 | git clone에서 펌웨어가 동기화되는 디렉토리 |
| --- | --- | --- |
| Qualcomm\_Linux.SPF.1.0|AP|Standard|OEM|NoModem | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_nomodem.git` | `qualcomm-linux-spf-1-0_ap_standard_oem_nomodem` |
| Qualcomm\_Linux.SPF.1.0|AP|Standard|OEM|NM\_QIMPSDK | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk.git` | `qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` |
| Qualcomm\_Linux.SPF.1.0|AP|Standard|OEM|NM\_QIRPSDK | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk.git` | `qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk` |
| Qualcomm\_Linux.SPF.1.0|AP|Standard|OEM| | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem.git` | `qualcomm-linux-spf-1-0_ap_standard_oem` |
| Qualcomm\_Linux.SPF.1.0|AP|Standard|OEM|QIMPSDK | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_qimpsdk.git` | `qualcomm-linux-spf-1-0_ap_standard_oem_qimpsdk` |
| Qualcomm\_Linux.SPF.1.0|AMSS|Standard|OEM| | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_amss_standard_oem.git` | `qualcomm-linux-spf-1-0_amss_standard_oem` |
| Qualcomm\_Linux.SPF.1.0|AMSS|Standard|OEM|QIMPSDK | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_amss_standard_oem_qimpsdk.git` | `qualcomm-linux-spf-1-0_amss_standard_oem_qimpsdk` |

참고

다음 섹션의 명령어는 모뎀 및 GPS가 없는 펌웨어 이미지의 바이너리 및 소스를 기반으로 합니다([git 저장소에 펌웨어 배포판 매핑](https://docs.qualcomm.com/doc/80-70018-254K/topic/build_addn_info.html#mapping-firmware-table) 의 명령어 참조). 따라서 `qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` 가 사용됩니다. 다른 배포판을 사용하는 경우 적절하게 디렉토리를 업데이트하세요.

**Git 명령어** 열([git 저장소에 펌웨어 배포판 매핑](https://docs.qualcomm.com/doc/80-70018-254K/topic/build_addn_info.html#mapping-firmware-table) 참조)은 펌웨어 소스가 포함된 git 저장소에 대한 정보를 제공합니다. Qualcomm 서버에서 이러한 저장소를 호스팅합니다. 접근 프로파일 및 사용 사례에 따라 적절한 저장소를 복제하세요.

다음 `git clone` 명령어는 모뎀을 제외하고 소스에서 선택한 펌웨어 구성 요소를 다운로드합니다.

mkdir -p <FIRMWARE_ROOT>
    cd <FIRMWARE_ROOT>
    git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk.git
    # Example, <firmware release tag> is r1.0_00075.0
    Copy to clipboard

참고

- `git clone` 명령어는 내용을 `<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` 디렉토리에 복제합니다.
- 최신 `<firmware release tag>` 는 [릴리스 노트](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/) 의 *빌드 필수 릴리스 태그* 섹션을 참조하세요.

### 펌웨어 빌드

Tab QCS6490/QCS5430
Tab QCS9075
Tab QCS8275

전제 조건

- 작업 셸이 `bash` 인지 확인합니다.

echo $0
        Copy to clipboard

    명령어가 정상적으로 실행되면 `bash` 가 출력됩니다. 그러지 않을 경우 bash 셸을 입력합니다.

bash
        Copy to clipboard
- 다음 명령어를 사용하여 libffi6 패키지를 설치합니다. 이 패키지는 IDL 파일에서 헤더 및 소스 파일을 생성하는 QAIC 컴파일러에 필요합니다.

curl -LO http://archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb
        sudo dpkg -i libffi6_3.2.1-8_amd64.deb
        Copy to clipboard
- AOP, Qualcomm^®^ Trusted Execution Environment(보안 실행 환경, TEE) 및 부트 컴파일용 LLVM을 설치합니다.

cd <FIRMWARE_ROOT>
        mkdir llvm
        
        # Log in to qpm-cli and activate the license
        qpm-cli --login
        qpm-cli --license-activate sdllvm_arm
        
        # LLVM requirement for boot compilation is 14.0.4
        qpm-cli --install sdllvm_arm --version 14.0.4 --path <FIRMWARE_ROOT>/llvm/14.0.4
        chmod -R 777 <FIRMWARE_ROOT>/llvm/14.0.4
        
        # LLVM requirement for Qualcomm TEE compilation is 16.0.7
        qpm-cli --install sdllvm_arm --version 16.0.7 --path <FIRMWARE_ROOT>/llvm/16.0.7
        chmod -R 777 <FIRMWARE_ROOT>/llvm/16.0.7
        Copy to clipboard
- `SECTOOLS` 변수를 내보내고 펌웨어 빌드를 컴파일합니다(`<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` 가 최상위 디렉토리임).

export SECTOOLS=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCM6490.LE.1.0/common/sectoolsv2/ext/Linux/sectools
        export SECTOOLS_DIR=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCM6490.LE.1.0/common/sectoolsv2/ext/Linux
        Copy to clipboard
- Qualcomm^®^ Hexagon^™^ 프로세서를 설치하고 설정합니다.

qpm-cli --extract hexagon8.4 --version 8.4.07
        export HEXAGON_ROOT=$HOME/Qualcomm/HEXAGON_Tools
        echo $HEXAGON_ROOT
        Copy to clipboard

참고

환경 변수 HEXAGON\_ROOT를 Hexagon SDK가 설치되는 경로로 설정합니다. `qpm-cli` 를 사용할 때 설치 경로를 변경하려면 [Hexagon 도구 설치 경로 변경](https://docs.qualcomm.com/doc/80-70018-254K/topic/how_to.html#change-hex-tool-install-path) 을 참조하세요.

cDSP 빌드

**필요한 도구**

- 컴파일러 버전: Hexagon 8.4.07
- Python 버전: Python 3.10.2
- libffi6 패키지

**빌드 단계**

1. 다음 디렉토리로 이동합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/CDSP.HT.2.5.c3/cdsp_proc/build/ms
        Copy to clipboard
2. 빌드를 정리합니다.

python ./build_variant.py kodiak.cdsp.prod --clean
        Copy to clipboard
3. 이미지를 빌드합니다.

python ./build_variant.py kodiak.cdsp.prod
        Copy to clipboard

aDSP 빌드

**필요한 도구**

- 컴파일러 버전: Hexagon 8.4.07
- Python 버전: Python 3.10.2
- libffi6 패키지

**Nanopb 통합(일회성 설정)**

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/ADSP.HT.5.5.c8/adsp_proc/qsh_api
    curl https://jpa.kapsi.fi/nanopb/download/nanopb-0.3.9.5-linux-x86.tar.gz -o nanopb-0.3.9.5-linux-x86.tar.gz
    cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/ADSP.HT.5.5.c8/adsp_proc/
    python qsh_api/build/config_nanopb_dependency.py -f nanopb-0.3.9.5-linux-x86
    Copy to clipboard

**빌드 단계**

1. 다음 디렉토리로 이동합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/ADSP.HT.5.5.c8/adsp_proc/build/ms
        Copy to clipboard
2. 빌드를 정리합니다.

python ./build_variant.py kodiak.adsp.prod --clean
        Copy to clipboard
3. 이미지를 빌드합니다.

python ./build_variant.py kodiak.adsp.prod
        Copy to clipboard

부트 빌드

**필요한 도구**

- 컴파일러 버전: LLVM 버전을 14.0.4로 업데이트해야 함

참고

빌드 오류를 방지하려면 명령어 끝에 `/` 가 있어야 합니다.

export LLVM=<FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
- Python 버전: Python 3.10
- libffi6 패키지

**빌드 단계**

1. 기기 트리 컴파일러를 설치합니다.

sudo apt-get install device-tree-compiler
        export DTC=/usr/bin
        Copy to clipboard
2. 다음 디렉토리로 이동합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/BOOT.MXF.1.0.c1/
        Copy to clipboard
3. 종속요소를 설치합니다.

python -m pip install -r boot_images/boot_tools/dtschema_tools/oss/requirements.txt
        pip install json-schema-for-humans
        Copy to clipboard
4. 빌드를 정리합니다.

python -u boot_images/boot_tools/buildex.py -t kodiak,QcomToolsPkg -v LAA -r RELEASE --build_flags=cleanall
        Copy to clipboard
5. 이미지를 빌드합니다.

python -u boot_images/boot_tools/buildex.py -t kodiak,QcomToolsPkg -v LAA -r RELEASE
        Copy to clipboard

참고

디버그 변형 빌드의 경우 `RELEASE` 를 `DEBUG` 로 대체하세요.

Qualcomm TEE 펌웨어

**필요한 도구**

- 컴파일러 버전: LLVM 16.0.7
- Python 버전: Python 3.10

**빌드 단계**

1. LLVM을 설치합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        vi build_config_deploy_kodiak.xml
        # Edit all the occurrences of /pkg/qct/software/llvm/release/arm/16.0.7/ to <FIRMWARE_ROOT>/llvm/16.0.7/
        Copy to clipboard
2. 빌드를 정리합니다.

python build_all.py -b TZ.XF.5.0 CHIPSET=kodiak --cfg=build_config_deploy_kodiak.xml --clean
        Copy to clipboard
3. 이미지를 빌드합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        python build_all.py -b TZ.XF.5.0 CHIPSET=kodiak --cfg=build_config_deploy_kodiak.xml
        Copy to clipboard

AOP 펌웨어

**필요한 도구**

- 컴파일러 버전: LLVM 14.0.4
- Python 버전: Python 3.10

**빌드 단계**

1. 다음 디렉토리로 이동합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/AOP.HO.3.6/aop_proc/build/
        Copy to clipboard
2. 빌드를 정리합니다.

./build_kodiak.sh -c -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
3. 이미지를 빌드합니다.

./build_kodiak.sh -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard

CPUCP 펌웨어

CPUCP 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

CPUSYS.VM 펌웨어

CPUSYS.VM 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

BTFM 펌웨어

BTFM 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

WLAN 펌웨어

WLAN 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

펌웨어 사전 빌드 생성(부팅 필수 바이너리 및 분할 펌웨어 바이너리)

컴파일한 개별 구성 요소에서 통합 펌웨어 바이너리를 만듭니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCM6490.LE.1.0/common/build
    python build.py --imf
    Copy to clipboard

참고

다음 zip 파일이 `<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCM6490.LE.1.0/common/build/ufs/bin` 디렉토리에 생성되면 펌웨어 사전 빌드에 성공한 것입니다.

- `QCM6490_bootbinaries.zip`
- `QCM6490_dspso.zip`
- `QCM6490_fw.zip`

전제 조건

- 작업 셸이 `bash` 인지 확인합니다.

echo $0
        Copy to clipboard

    명령어가 정상적으로 실행되면 `bash` 가 출력됩니다. 그러지 않을 경우 bash 셸을 입력합니다.

bash
        Copy to clipboard
- 다음 명령어를 사용하여 libffi6 패키지를 설치합니다. 이 패키지는 IDL 파일에서 헤더 및 소스 파일을 생성하는 QAIC 컴파일러에 필요합니다.

curl -LO http://archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb
        sudo dpkg -i libffi6_3.2.1-8_amd64.deb
        Copy to clipboard
- AOP, Qualcomm TEE 및 부트 컴파일용 LLVM을 설치합니다.

cd <FIRMWARE_ROOT>
        mkdir llvm
        
        # Log in to qpm-cli and activate the license
        qpm-cli --login
        qpm-cli --license-activate sdllvm_arm
        
        # LLVM requirement for boot compilation is 14.0.4
        qpm-cli --install sdllvm_arm --version 14.0.4 --path <FIRMWARE_ROOT>/llvm/14.0.4
        chmod -R 777 <FIRMWARE_ROOT>/llvm/14.0.4
        
        # LLVM requirement for Qualcomm TEE compilation is 16.0.7
        qpm-cli --install sdllvm_arm --version 16.0.7 --path <FIRMWARE_ROOT>/llvm/16.0.7
        chmod -R 777 <FIRMWARE_ROOT>/llvm/16.0.7
        Copy to clipboard
- `SECTOOLS` 변수를 내보내고 펌웨어 빌드를 컴파일합니다(`<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` 가 최상위 디렉토리임).

export SECTOOLS=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS9100.LE.1.0/common/sectoolsv2/ext/Linux/sectools
        export SECTOOLS_DIR=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS9100.LE.1.0/common/sectoolsv2/ext/Linux
        Copy to clipboard
- Qualcomm^®^ Hexagon^™^ 프로세서를 설치하고 설정합니다.

qpm-cli --extract hexagon8.6 --version 8.6.05.2
        export HEXAGON_ROOT=$HOME/Qualcomm/HEXAGON_Tools
        echo $HEXAGON_ROOT
        Copy to clipboard

참고

환경 변수 HEXAGON\_ROOT를 Hexagon SDK가 설치되는 경로로 설정합니다. `qpm-cli` 를 사용할 때 설치 경로를 변경하려면 [Hexagon 도구 설치 경로 변경](https://docs.qualcomm.com/doc/80-70018-254K/topic/how_to.html#change-hex-tool-install-path) 을 참조하세요.

DSP 빌드

**필요한 도구**

- 컴파일러 버전: Hexagon 8.6.05.2
- Python 버전: Python 3.8.2

**빌드 단계**

1. 기기 트리 컴파일러를 설치합니다.

sudo apt-get install device-tree-compiler
        export DTC_PATH=/usr/bin
        Copy to clipboard
2. 종속요소를 설치합니다.

pip install ruamel.yaml==0.17.17
        pip install dtschema==2021.10
        pip install jsonschema==4.0.0
        Copy to clipboard
3. 다음 디렉토리로 이동합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/DSP.AT.1.0/dsp_proc/build/ms
        Copy to clipboard
4. 빌드를 정리합니다.

python ./build_variant.py lemans.adsp.prod --clean
        python ./build_variant.py lemans.cdsp0.prod --clean
        python ./build_variant.py lemans.cdsp1.prod --clean
        python ./build_variant.py lemans.gpdsp0.prod --clean
        python ./build_variant.py lemans.gpdsp1.prod --clean
        Copy to clipboard
5. 이미지를 빌드합니다.

python ./build_variant.py lemans.adsp.prod && python ./build_variant.py lemans.cdsp0.prod && python ./build_variant.py lemans.cdsp1.prod && python ./build_variant.py lemans.gpdsp0.prod && python ./build_variant.py lemans.gpdsp1.prod
        Copy to clipboard

부트 빌드

**필요한 도구**

- 컴파일러 버전: LLVM 버전을 14.0.4로 업데이트해야 함

export LLVM=<FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
- Python 버전: Python 3.10
- libffi6 패키지

**빌드 단계**

1. 기기 트리 컴파일러를 설치합니다.

sudo apt-get install device-tree-compiler
        export DTC=/usr/bin
        Copy to clipboard
2. 다음 디렉토리로 이동합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/BOOT.MXF.1.0.c1/
        Copy to clipboard
3. 종속요소를 설치합니다.

python -m pip install -r boot_images/boot_tools/dtschema_tools/oss/requirements.txt
        pip install json-schema-for-humans
        Copy to clipboard
4. 빌드를 정리합니다.

python -u boot_images/boot_tools/buildex.py -t lemans,QcomToolsPkg - v LAA -r RELEASE --build_flags=cleanall
        Copy to clipboard
5. 이미지를 빌드합니다.

python -u boot_images/boot_tools/buildex.py -t lemans,QcomToolsPkg - v LAA -r RELEASE
        Copy to clipboard

참고

디버그 변형 빌드의 경우 `RELEASE` 를 `DEBUG` 로 대체하세요.

Qualcomm TEE 펌웨어

**필요한 도구**

- 컴파일러 버전: LLVM 16.0.7
- Python 버전: Python 3.10

**빌드 단계**

1. LLVM을 설치합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        vi build_config_deploy_lemans.xml
        # Edit all the occurrences of /pkg/qct/software/llvm/release/arm/16.0.7/ to <FIRMWARE_ROOT>/llvm/16.0.7/
        Copy to clipboard
2. 빌드를 정리합니다.

python build_all.py -b TZ.XF.5.0 CHIPSET=lemans --cfg=build_config_deploy_lemans.xml --clean
        Copy to clipboard
3. 이미지를 빌드합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        python build_all.py -b TZ.XF.5.0 CHIPSET=lemans --cfg=build_config_deploy_lemans.xml
        Copy to clipboard

AOP 펌웨어

**필요한 도구**

- 컴파일러 버전: LLVM 14.0.4
- Python 버전: Python 3.10

**빌드 단계**

1. 다음 디렉토리로 이동합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/AOP.HO.3.6.1/aop_proc/build/
        Copy to clipboard
2. 빌드를 정리합니다.

./build_lemansau.sh -c -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
3. 이미지를 빌드합니다.

./build_lemansau.sh -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard

CPUCP 펌웨어

CPUCP 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

CPUSYS.VM 펌웨어

CPUSYS.VM 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

BTFM 펌웨어

BTFM 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

WLAN 펌웨어

WLAN 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

펌웨어 사전 빌드 생성(부팅 필수 바이너리 및 분할 펌웨어 바이너리)

컴파일한 개별 구성 요소에서 통합 펌웨어 바이너리를 만듭니다.

참고

[릴리스 노트](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/ReleaseNote.html#additional-information) 의 *추가 정보* 섹션에서 모든 변경 사항을 적용합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS9100.LE.1.0/common/build
    python build.py --imf
    Copy to clipboard

참고

- 다음 zip 파일이 `<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS9100.LE.1.0/common/build/ufs/bin` 디렉토리에 생성되면 펌웨어 사전 빌드에 성공한 것입니다.
    - - `QCS9100_bootbinaries.zip`
- `QCS9100_dspso.zip`
- `QCS9100_fw.zip`

전제 조건

- 작업 셸이 `bash` 인지 확인합니다.

echo $0
        Copy to clipboard

    명령어가 정상적으로 실행되면 `bash` 가 출력됩니다. 그러지 않을 경우 bash 셸을 입력합니다.

bash
        Copy to clipboard
- 다음 명령어를 사용하여 libffi6 패키지를 설치합니다. 이 패키지는 IDL 파일에서 헤더 및 소스 파일을 생성하는 QAIC 컴파일러에 필요합니다.

curl -LO http://archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb
        sudo dpkg -i libffi6_3.2.1-8_amd64.deb
        Copy to clipboard
- AOP, Qualcomm TEE 및 부트 컴파일용 LLVM을 설치합니다.

cd <FIRMWARE_ROOT>
        mkdir llvm
        
        # Log in to qpm-cli and activate the license
        qpm-cli --login
        qpm-cli --license-activate sdllvm_arm
        
        # LLVM requirement for boot compilation is 14.0.4
        qpm-cli --install sdllvm_arm --version 14.0.4 --path <FIRMWARE_ROOT>/llvm/14.0.4
        chmod -R 777 <FIRMWARE_ROOT>/llvm/14.0.4
        
        # LLVM requirement for Qualcomm TEE compilation is 16.0.7
        qpm-cli --install sdllvm_arm --version 16.0.7 --path <FIRMWARE_ROOT>/llvm/16.0.7
        chmod -R 777 <FIRMWARE_ROOT>/llvm/16.0.7
        Copy to clipboard
- `SECTOOLS` 변수를 내보내고 펌웨어 빌드를 컴파일합니다(`<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` 가 최상위 디렉토리임).

export SECTOOLS=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS8300.LE.1.0/common/sectoolsv2/ext/Linux/sectools
        export SECTOOLS_DIR=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS8300.LE.1.0/common/sectoolsv2/ext/Linux
        Copy to clipboard
- Qualcomm^®^ Hexagon^™^ 프로세서를 설치하고 설정합니다.

qpm-cli --extract hexagon8.6 --version 8.6.05.2
        qpm-cli --extract hexagon8.7 --version 8.7.02.1
        export HEXAGON_ROOT=$HOME/Qualcomm/HEXAGON_Tools
        echo $HEXAGON_ROOT
        Copy to clipboard

참고

환경 변수 HEXAGON\_ROOT를 Hexagon SDK가 설치되는 경로로 설정합니다. `qpm-cli` 를 사용할 때 설치 경로를 변경하려면 [Hexagon 도구 설치 경로 변경](https://docs.qualcomm.com/doc/80-70018-254K/topic/how_to.html#change-hex-tool-install-path) 을 참조하세요.

DSP 빌드

**필요한 도구**

- 컴파일러 버전: Hexagon 8.6.05.2 및 8.7.02.1
- Python 버전: Python 3.8.2

**빌드 단계**

1. 기기 트리 컴파일러를 설치합니다.

sudo apt-get install device-tree-compiler
        export DTC_PATH=/usr/bin
        Copy to clipboard
2. 종속요소를 설치합니다.

pip install ruamel.yaml==0.17.17
        pip install dtschema==2021.10
        pip install jsonschema==4.0.0
        Copy to clipboard
3. 다음 디렉토리로 이동합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/DSP.AT.1.0/dsp_proc/build/ms
        Copy to clipboard
4. 빌드를 정리합니다.

python ./build_variant.py lemans.adsp.prod --clean
        python ./build_variant.py monaco.cdsp0.prod --clean
        python ./build_variant.py lemans.gpdsp0.prod --clean
        Copy to clipboard
5. 이미지를 빌드합니다.

python ./build_variant.py lemans.adsp.prod && python ./build_variant.py monaco.cdsp0.prod && python ./build_variant.py lemans.gpdsp0.prod
        Copy to clipboard

부트 빌드

**필요한 도구**

- 컴파일러 버전: LLVM 버전을 14.0.4로 업데이트해야 함

export LLVM=<FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
- Python 버전: Python 3.10
- libffi6 패키지

**빌드 단계**

1. 기기 트리 컴파일러를 설치합니다.

sudo apt-get install device-tree-compiler
        export DTC=/usr/bin
        Copy to clipboard
2. 다음 디렉토리로 이동합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/BOOT.MXF.1.0.c1/
        Copy to clipboard
3. 종속요소를 설치합니다.

python -m pip install -r boot_images/boot_tools/dtschema_tools/oss/requirements.txt
        pip install json-schema-for-humans
        Copy to clipboard
4. 빌드를 정리합니다.

python -u boot_images/boot_tools/buildex.py -t monaco,QcomToolsPkg - v LAA -r RELEASE --build_flags=cleanall
        Copy to clipboard
5. 이미지를 빌드합니다.

python -u boot_images/boot_tools/buildex.py -t monaco,QcomToolsPkg - v LAA -r RELEASE
        Copy to clipboard

참고

디버그 변형 빌드의 경우 `RELEASE` 를 `DEBUG` 로 대체하세요.

Qualcomm TEE 펌웨어

**필요한 도구**

- 컴파일러 버전: LLVM 16.0.7
- Python 버전: Python 3.10

**빌드 단계**

1. LLVM을 설치합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        vi build_config_deploy_monaco.xml
        # Edit all the occurrences of /pkg/qct/software/llvm/release/arm/16.0.7/ to <FIRMWARE_ROOT>/llvm/16.0.7/
        Copy to clipboard
2. 빌드를 정리합니다.

python build_all.py -b TZ.XF.5.0 CHIPSET=monaco --cfg=build_config_deploy_monaco.xml --clean
        Copy to clipboard
3. 이미지를 빌드합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        python build_all.py -b TZ.XF.5.0 CHIPSET=monaco --cfg=build_config_deploy_monaco.xml
        Copy to clipboard

AOP 펌웨어

**필요한 도구**

- 컴파일러 버전: LLVM 14.0.4
- Python 버전: Python 3.10

**빌드 단계**

1. 다음 디렉토리로 이동합니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/AOP.HO.3.6.1/aop_proc/build/
        Copy to clipboard
2. 빌드를 정리합니다.

./build_monaco.sh -c -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
3. 이미지를 빌드합니다.

./build_monaco.sh -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard

CPUCP 펌웨어

CPUCP 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

CPUSYS.VM 펌웨어

CPUSYS.VM 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

BTFM 펌웨어

BTFM 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

WLAN 펌웨어

WLAN 펌웨어는 바이너리로 릴리스되며 빌드 컴파일이 필요하지 않습니다.

펌웨어 사전 빌드 생성(부팅 필수 바이너리 및 분할 펌웨어 바이너리)

컴파일한 개별 구성 요소에서 통합 펌웨어 바이너리를 만듭니다.

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS8300.LE.1.0/common/build
    python build.py --imf
    Copy to clipboard

참고

다음 zip 파일이 `<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS8300.LE.1.0/common/build/ufs/bin` 디렉토리에 생성되면 펌웨어 사전 빌드에 성공한 것입니다.

- `QCS8300_bootbinaries.zip`
- `QCS8300_dspso.zip`
- `QCS8300_fw.zip`

### 추가 기능과 함께 BSP 이미지 빌드

BSP 이미지 빌드에는 Qualcomm 기기 지원을 위한 소프트웨어 구성 요소와 Qualcomm SoC에 적용할 수 있는 부가가치 소프트웨어 기능이 포함되어 있습니다. 여기에는 Qualcomm 개발 키트의 참조 배포판 구성도 포함됩니다. `meta-qcom-extras` 계층은 기본적으로 바이너리로 제공되는 특정 구성 요소를 소스 코드에서 컴파일할 수 있도록 지원합니다.

자세한 내용은 [Qualcomm Linux 메타데이터 계층](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-27/qualcomm_linux_metadata_layers_overview.html#qualcomm-linux-metadata-layers) 을 참조하세요.

1. 추가 기능과 함께 Qualcomm Yocto 및 지원되는 계층을 다운로드합니다.

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1.xml
        repo sync
        git clone https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_hlos_oem_metadata.git -b <meta-qcom-extras release tag> --depth 1
        # Example, <meta-qcom-extras release tag> is r1.0_00077.0
        mkdir -p layers/meta-qcom-extras
        cp -rf qualcomm-linux-spf-1-0_hlos_oem_metadata/<product>/common/config/meta-qcom-extras/* layers/meta-qcom-extras/
        # An example <product> is QCM6490.LE.1.0. For more information on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        Copy to clipboard

참고

`<manifest release tag>` 및 `<meta-qcom-extras release tag>` 정보는 [릴리스 노트](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/) 의 *빌드 필수 릴리스 태그* 섹션을 참조하세요.
2. Yocto 빌드를 설정합니다.

# Export additional meta layers to EXTRALAYERS. Location is assumed under <WORKSPACE DIR>/layers.
        export EXTRALAYERS="meta-qcom-extras"
        
        # CUST_ID is used to clone the proprietary source repositories downloaded by meta-qcom-extras.
        # It allows source compilation for the corresponding binaries present in meta-qcom-hwe.
        # CUST_ID must be set to "213195" for no-modem based distributions ("qualcomm-linux-spf-1-0_ap_standard_oem_nomodem",
        # "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk", "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk").
        # For other modem based distributions, CUST_ID must be set based on the "Customer ID".
        # To find "Customer ID", sign in to your account at qualcomm.com.
        # Click the Profile icon, select Account Settings, and then scroll down to the Company Information section.
        # export CUST_ID using the following command.
        export CUST_ID=<Customer ID>
        
        # The firmware recipe is compiled when the Yocto build is initiated. Firmware recipe expects the
        # path of firmware. You have generated firmware prebuilts (boot-critical and split-firmware binaries)
        # using the steps described in the previous section.
        # Example, for QCM6490, the directory path must contain QCM6490_bootbinaries.zip, QCM6490_dspso.zip, and QCM6490_fw.zip.
        # Set the environment variable to pick up the prebuilts:
        export FWZIP_PATH="<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/<product>/common/build/ufs/bin"
        # An example <product> is QCM6490.LE.1.0. For more information on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        Copy to clipboard
3. 빌드 환경을 설정합니다.

MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

참고

`MACHINE` 매개변수 값을 알아보려면 [릴리스 노트](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/) 를 참조하세요.
4. Yocto 빌드를 컴파일합니다.

bitbake qcom-multimedia-image
        Copy to clipboard

참고

Yocto 빌드를 정리합니다.

bitbake -fc cleansstate qcom-multimedia-image
        bitbake -fc cleanall qcom-multimedia-image
        Copy to clipboard

    빌드가 성공적으로 완료되면 `system.img` 파일이 `<workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image` 디렉토리에 있는지 확인하세요.

cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image
        ls -al system.img
        Copy to clipboard
5. [소프트웨어 이미지 플래시](https://docs.qualcomm.com/doc/80-70018-254K/topic/flash_images.html) 를 사용하여 생성된 빌드를 플래시합니다.

### 추가 기능과 함께 QIMP SDK 이미지 빌드

QIMP SDK는 Qualcomm IM SDK, Qualcomm 신경망 처리 SDK, Qualcomm AI 엔진 다이렉트 SDK, LiteRT의 4가지 독립 실행형 기능 SDK로 구성된 컬렉션입니다. 사용 사례를 개발하는 데 사용할 수 있는 참조 애플리케이션도 포함합니다. `meta-qcom-extras` 계층은 기본적으로 바이너리로 제공되는 특정 구성 요소를 소스 코드에서 컴파일할 수 있도록 지원합니다.

자세한 내용은 [QIMP SDK 빠른 시작 가이드](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-51) 를 참조하세요.

1. QIMP SDK 계층, Qualcomm Yocto 계층 및 지원되는 계층을 추가 기능과 함께 다운로드합니다.

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1.xml
        repo sync
        git clone https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_hlos_oem_metadata.git -b <meta-qcom-extras release tag> --depth 1
        # Example, <meta-qcom-extras release tag> is r1.0_0005.0
        mkdir -p layers/meta-qcom-extras
        cp -rf qualcomm-linux-spf-1-0_hlos_oem_metadata/<product>/common/config/meta-qcom-extras/* layers/meta-qcom-extras/
        # An example <product> is QCM6490.LE.1.0. For more information on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b qcom-6.6.65-QLI.1.4-Ver.1.1_qim-product-sdk-1.1.2 layers/meta-qcom-qim-product-sdk
        Copy to clipboard

참고

`<manifest release tag>` 및 `<meta-qcom-extras release tag>` 정보는 [릴리스 노트](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/) 의 *빌드 필수 릴리스 태그* 섹션을 참조하세요.
2. Yocto 빌드를 설정합니다.

# Export additional meta layers to EXTRALAYERS. Location is assumed under <WORKSPACE DIR>/layers.
        export EXTRALAYERS="meta-qcom-extras meta-qcom-qim-product-sdk"
        
        # CUST_ID is used to clone the proprietary source repositories downloaded by meta-qcom-extras.
        # It allows source compilation for the corresponding binaries present in meta-qcom-hwe.
        # CUST_ID must be set to "213195" for no-modem based distributions ("qualcomm-linux-spf-1-0_ap_standard_oem_nomodem",
        # "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk", "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk").
        # For other modem based distributions, CUST_ID must be set based on the "Customer ID".
        # To find "Customer ID", sign in to your account at qualcomm.com.
        # Click the Profile icon, select Account Settings, and then scroll down to the Company Information section.
        # export CUST_ID using the following command.
        export CUST_ID=<Customer ID>
        
        # The firmware recipe is compiled when the Yocto build is initiated. Firmware recipe expects the
        # path of firmware. You have generated firmware prebuilts (boot-critical and split-firmware binaries)
        # using the steps described in the previous section.
        # Example, for QCM6490, the directory path must contain QCM6490_bootbinaries.zip, QCM6490_dspso.zip, and QCM6490_fw.zip.
        # Set the environment variable to pick up the prebuilts:
        export FWZIP_PATH="<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/<product>/common/build/ufs/bin"
        # An example <product> is QCM6490.LE.1.0. For more information on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        Copy to clipboard
3. 빌드 환경을 설정합니다.

MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

참고

`MACHINE` 매개변수 값을 알아보려면 [릴리스 노트](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/) 를 참조하세요.
4. QIMP SDK 빌드를 컴파일합니다.

bitbake qcom-multimedia-image
        # Build SDK image
        bitbake qcom-qim-product-sdk
        Copy to clipboard

참고

QIMP SDK 빌드를 정리합니다.

bitbake -fc cleansstate qcom-multimedia-image
        bitbake -fc cleanall qcom-multimedia-image
        
        bitbake -fc cleansstate qcom-qim-product-sdk
        bitbake -fc cleanall qcom-qim-product-sdk
        Copy to clipboard

    빌드가 성공적으로 완료되면 `system.img` 파일이 `<workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image` 디렉토리에 있는지 확인하세요.

cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image
        ls -al system.img
        Copy to clipboard
5. [소프트웨어 이미지 플래시](https://docs.qualcomm.com/doc/80-70018-254K/topic/flash_images.html) 를 사용하여 생성된 빌드를 플래시합니다.

### 추가 기능과 함께 QIRP SDK 이미지 빌드

QIRP SDK 2.0은 Qualcomm Linux 릴리스에서 로봇 공학 기능의 개발을 지원하는 구성 요소 컬렉션입니다. `meta-qcom-extras` 계층은 기본적으로 바이너리로 제공되는 특정 구성 요소의 소스 컴파일을 지원합니다.

자세한 내용은 [QIRP SDK 2.0 사용자 가이드](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-265) 를 참조하세요.

참고

시작하기 전에 QIRP SDK(예: `qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk` )의 각 펌웨어를 복제하세요.

1. 추가 기능과 함께 QIRP SDK 계층, Qualcomm Yocto 계층 및 지원되는 계층을 다운로드합니다.

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1.xml
        repo sync
        git clone https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_hlos_oem_metadata.git -b <meta-qcom-extras release tag> --depth 1
        # Example, <meta-qcom-extras release tag> is r1.0_00077.0
        mkdir -p layers/meta-qcom-extras
        mkdir -p layers/meta-qcom-robotics-extras
        cp -rf qualcomm-linux-spf-1-0_hlos_oem_metadata/<product>/common/config/meta-qcom-extras/* layers/meta-qcom-extras/
        cp -rf qualcomm-linux-spf-1-0_hlos_oem_metadata/<product>/common/config/meta-qcom-robotics-extras/* layers/meta-qcom-robotics-extras/
        # An example <product> is QCM6490.LE.1.0. For more information on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        
        git clone https://github.com/ros/meta-ros -b scarthgap layers/meta-ros && cd layers/meta-ros && git checkout c560699e810e60a9526f4226c2c23f8d877280c8 && cd ../../
        git clone https://github.com/quic-yocto/meta-qcom-robotics.git -b qcom-6.6.65-QLI.1.4-Ver.1.0_robotics-product-sdk-1.0 layers/meta-qcom-robotics
        git clone https://github.com/quic-yocto/meta-qcom-robotics-distro.git -b qcom-6.6.65-QLI.1.4-Ver.1.0_robotics-product-sdk-1.0 layers/meta-qcom-robotics-distro
        git clone https://github.com/quic-yocto/meta-qcom-robotics-sdk.git -b qcom-6.6.65-QLI.1.4-Ver.1.0_robotics-product-sdk-1.0 layers/meta-qcom-robotics-sdk
        git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b qcom-6.6.65-QLI.1.4-Ver.1.1_qim-product-sdk-1.1.2 layers/meta-qcom-qim-product-sdk
        # Example, <meta-qcom-qim-product-sdk release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1_qim-product-sdk-1.1.2
        Copy to clipboard

참고

`<manifest release tag>`, `<meta-qcom-extras release tag>` 및 `<meta-qcom-qim-product-sdk release tag>` 정보는 [릴리스 노트](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240626095531/) 의 *빌드 필수 릴리스 태그* 섹션을 참조하세요.
2. Yocto 빌드를 설정합니다.

# Export additional meta layers to EXTRALAYERS. Location is assumed under <WORKSPACE DIR>/layers.
        export EXTRALAYERS="meta-qcom-extras meta-qcom-robotics-extras"
        
        # CUST_ID is used to clone the proprietary source repositories downloaded by meta-qcom-extras.
        # It allows source compilation for the corresponding binaries present in meta-qcom-hwe.
        # CUST_ID must be set to "213195" for no-modem based distributions ("qualcomm-linux-spf-1-0_ap_standard_oem_nomodem",
        # "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk", "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk").
        # For other modem based distributions, CUST_ID must be set based on the "Customer ID".
        # To find "Customer ID", sign in to your account at qualcomm.com.
        # Click the Profile icon, select Account Settings, and then scroll down to the Company Information section.
        # export CUST_ID using the following command.
        export CUST_ID=<Customer ID>
        
        # The firmware recipe is compiled when the Yocto build is initiated. Firmware recipe expects the
        # path of firmware. You have generated firmware prebuilts (boot-critical and split-firmware binaries)
        # using the steps described in the previous section.
        # Example, for QCM6490, the directory path must contain QCM6490_bootbinaries.zip, QCM6490_dspso.zip, and QCM6490_fw.zip.
        # Set the environment variable to pick up the prebuilts:
        export FWZIP_PATH="<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk/<product>/common/build/ufs/bin"
        # An example <product> is QCM6490.LE.1.0. For more information on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        Copy to clipboard
3. QIRP SDK 빌드를 컴파일합니다.

ln -s layers/meta-qcom-robotics-distro/set_bb_env.sh ./setup-robotics-environment
        ln -s layers/meta-qcom-robotics-sdk/scripts/qirp-build ./qirp-build
        MACHINE=<machine> DISTRO=qcom-robotics-ros2-humble QCOM_SELECTED_BSP=custom source setup-robotics-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-robotics-ros2-humble QCOM_SELECTED_BSP=custom source setup-robotics-environment
        # source setup-robotics-environment: Sets the environment, creates the build directory build-qcom-robotics-ros2-humble,
        # and enters into build-qcom-robotics-ros2-humble directory.
        ../qirp-build qcom-robotics-full-image
        Copy to clipboard

참고

`MACHINE` 매개변수 값을 알아보려면 [릴리스 노트](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/) 를 참조하세요.

    빌드가 성공적으로 완료되면 QIRP SDK 빌드 아티팩트가 다음 경로에 있는지 확인하세요.

QIRP SDK artifacts: <workspace_path>/build-qcom-robotics-ros2-humble/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_<version>.tar.gz
        # system.img is present in the following path
        Robotics image: <workspace_path>/build-qcom-robotics-ros2-humble/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-robotics-full-image
        Copy to clipboard
4. [소프트웨어 이미지 플래시](https://docs.qualcomm.com/doc/80-70018-254K/topic/flash_images.html) 를 사용하여 생성된 빌드를 플래시합니다.

Last Published: Aug 21, 2025

[Previous Topic
등록된 사용자의 GitHub를 통한 빌드](https://docs.qualcomm.com/bundle/publicresource/80-70018-254K/topics/build_from_source_github_intro.md) [Next Topic
소프트웨어 이미지 플래시](https://docs.qualcomm.com/bundle/publicresource/80-70018-254K/topics/flash_images.md)

Source: [https://docs.qualcomm.com/doc/80-70018-254K/topic/build_addn_info.html](https://docs.qualcomm.com/doc/80-70018-254K/topic/build_addn_info.html)