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

# 使用受支持的工作流评估 overlay

使用以下工作流之一来评估 overlay:

* [烧录镜像并从对应发布快照的软件包服务器安装软件包](#flash-the-image-and-install-packages-corresponding-to-a-release-snapshot)。
* [本地构建、烧录镜像并使用本地构建生成的软件包](#build-locally-flash-images-and-use-packages-from-the-local-build)。
* [为 Config #3 和 Config #4 定义 BitBake 镜像配方,并烧录包含 overlay 的生成镜像](evaluate-overlays-using-supported-workflows#define-the-image-recipe-for-config-%233-and-config-%234)。
  > * 有关 Config #3 和 Config #4 的更多信息,请参阅 [Overlay 配置及对应的镜像配方](./use-overlay-configurations-to-derive-image-recipes)。

## **烧录镜像并安装对应发布快照的软件包**

使用此工作流部署从 Qualcomm Linux 2.0 版本构建的镜像和软件包。与 Qualcomm Linux 发布里程碑对应的镜像和软件包已发布在 [CodeLinaro](https://artifacts.codelinaro.org/artifactory/qli-yocto-rpm-signed/) 上。

[软件包服务器](https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm)托管从 Qualcomm Linux 2.0 Config #2 构建(即 `qcom-multimedia-proprietary-image`)生成的所有软件包。这些软件包由 Qualcomm Linux 2.0 版本的 `qli-2.0` 发布快照生成。此软件包服务器的作用是提供对应于 Config #1(即 `qcom-multimedia-image`)的镜像快照,以及由 Config #2(`qcom-multimedia-proprietary-image`)生成的相应软件包。

烧录镜像并从发布快照的软件包服务器安装软件包所涉及步骤的高层级概述如下。有关详细说明,请参阅[从 Qualcomm Linux 参考软件包服务器安装软件包](#install-packages-from-the-qualcomm-linux-reference-package-server)。

1. 下载并烧录 `qcom-multimedia-image` [上游镜像](https://artifacts.codelinaro.org/artifactory/qli-ci/flashable-binaries/meta-qcom/)。
2. 安装与 overlay 对应的软件包:
   1. 添加作为 Qualcomm Linux 2.0 版本一部分提供的以下软件包源 URL:[https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm](https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm)
   2. 使用软件包管理器在设备上安装软件包。
3. 要管理配置,请更新 `/etc/modprobe.d/` 中的相关文件(例如 `asoc-blacklist.conf`、`video-blacklist.conf`)以进行驱动选择。
4. 设置 EFI 变量以选择摄像头驱动。
   * 如有需要,设置 EFI 变量以向 UEFI 指示 DTB overlay。

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-staging/uWQLnBcS9sxlZhgB/Key-Documents/Migration-Guide/media/overlay_workflow.svg?fit=max&auto=format&n=uWQLnBcS9sxlZhgB&q=85&s=29fa6e5d5b804b4c48b07ab543f57cbd" alt="图:Qualcomm Linux overlay 工作流" width="680" height="600" data-path="Key-Documents/Migration-Guide/media/overlay_workflow.svg" />

  <p className="text-sm text-gray-700">
    图:Qualcomm Linux overlay 工作流
  </p>
</div>

### **从 Qualcomm Linux 参考软件包服务器安装软件包**

您可以在不进行软件构建的情况下使用 overlay 安装软件包。[CodeLinaro](https://artifacts.codelinaro.org/artifactory/qli-yocto-rpm-signed/) 上设置了包含所有镜像和 RPM 软件包的测试服务器。

要烧录镜像并为 overlay 安装 RPM,请执行以下操作:

1. 要为 `RB3Gen2 Core Kit` 烧录 `qcom-multimedia-image`,请执行以下操作:
   1. 从 artifactory 服务器下载 `qcom-multimedia-image-rb3gen2-core-kit.rootfs.qcomflash.tar.gz`。
   2. 解压 `qcom-multimedia-image-rb3gen2-core-kit.rootfs.qcomflash.tar.gz`。
   3. 使用 [Qualcomm Device Loader(QDL)工具](https://dragonwingdocs.qualcomm.com/Key-Documents/Flash-Guide/flash-with-qdl)或 [Product Configuration Assistant Tool(PCAT)](https://dragonwingdocs.qualcomm.com/Key-Documents/Flash-Guide/flash-with-pcat)进行烧录。
2. 启动并登录您的设备。
3. 要在设备上配置 `yum.repos.d` 仓库,请将以下行追加到配置文件中:

**注意**

* `/etc/yum.repos.d/` 是存储仓库配置文件的目录。确保此目录存在;如果不存在,请创建它。
* 在此目录中,确保文件 `overlay.repo` 存在。如果不存在,请在 `/etc/yum.repos.d/overlay.repo` 处创建它。
* 要配置 `yum.repos.d` 仓库,请将所需配置追加到 `/etc/yum.repos.d/overlay.repo`。
* `yum.repos.d` 仓库使用基于 GNU Privacy Guard(GPG)的签名进行保护,以确保仓库元数据的真实性和完整性。`.repo` 文件中的这些设置强制执行以下检查:
  * `gpgkey` 定义用于验证仓库元数据的受信任公共 GPG 密钥。
  * `repo_gpgcheck=1` 在任何软件包操作之前强制对仓库进行 GPG 验证。

基础 overlay 仓库取决于平台所使用的目标架构调优(tune)。

请按以下方式使用相应的基础 overlay 仓库:

| 目标                  | 基础 overlay 仓库 |
| ------------------- | ------------- |
| RB3 Gen2(QCS6490)   | armv8\_2a     |
| IQ-9075 EVK         | armv8\_2a     |
| IQ-8275 EVK         | armv8\_2a     |
| Shikra EVK          | armv8\_2a     |
| IQ-X5121 EVK(Purva) | armv8\_6a     |
| IQ-X7181 EVK(Hamoa) | armv8\_6a     |

请相应地配置基础 overlay 仓库:

### armv8\_2a 目标

以下目标使用 `armv8_2a` 基础仓库:

* QCS6490(RB3 Gen2)
* IQ-9075 EVK
* IQ-8275 EVK
* Shikra EVK

  ```text theme={null}
  [overlay-armv8_2a]
  name = Qualcomm Overlay Repository (armv8_2a)
  baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/armv8_2a/
  enabled = 1
  gpgcheck = 0
  gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
  repo_gpgcheck=1

  [overlay-<target-specific>]
  name = Qualcomm Overlay Repository (<target_specific>)
  baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/<target-specific>/
  enabled = 1
  gpgcheck = 0
  gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
  repo_gpgcheck=1
  ```

  第二个配置块 `[overlay-<target-specific>]` 决定 DNF 为您的硬件或构建目标使用哪个软件包源。例如:

  <Tabs>
    <Tab title="QCS6490">
      ```text theme={null}
      [overlay-rb3gen2]
      name = Qualcomm Overlay Repository rb3gen2
      baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/rb3gen2-core-kit/
      enabled = 1
      gpgcheck = 0
      gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
      repo_gpgcheck=1
      ```
    </Tab>

    <Tab title="IQ-9075">
      ```text theme={null}
      [overlay-iq-9075-evk]
      name = Qualcomm Overlay Repository IQ-9075 EVK
      baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/iq-9075-evk/
      enabled = 1
      gpgcheck = 0
      gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
      repo_gpgcheck=1
      ```
    </Tab>

    <Tab title="IQ-8275">
      ```text theme={null}
      [overlay-iq-8275-evk]
      name = Qualcomm Overlay Repository IQ-8275 EVK
      baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/iq-8275-evk/
      enabled = 1
      gpgcheck = 0
      gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
      repo_gpgcheck=1
      ```
    </Tab>

    <Tab title="Shikra-evk">
      ```text theme={null}
      [overlay-shikra-evk]
      name = Qualcomm Overlay Repository Shikra EVK
      baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/shikra-evk/
      enabled = 1
      gpgcheck = 0
      gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
      repo_gpgcheck=1
      ```
    </Tab>
  </Tabs>

### armv8\_6a 目标

以下目标使用 `armv8_6a` 基础仓库:

* IQ-X5121 EVK(Purva)
* IQ-X7181 EVK(Hamoa)

```text theme={null}
[overlay-armv8_6a]
name = Qualcomm Overlay Repository (armv8_6a)
baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/armv8_6a/
enabled = 1
gpgcheck = 0
gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
repo_gpgcheck=1
```

<Tabs>
  <Tab title="IQ-X5121 (Purva)">
    ```text theme={null}
    [overlay-iq-x5121-evk]
    name = Qualcomm Overlay Repository IQ-X5121 EVK
    baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/iq-x5121-evk/
    enabled = 1
    gpgcheck = 0
    gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
    repo_gpgcheck=1
    ```
  </Tab>

  <Tab title="IQ-X7181 (Hamoa)">
    ```text theme={null}
    [overlay-iq-x7181-evk]
    name = Qualcomm Overlay Repository IQ-X7181 EVK
    baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/iq-x7181-evk/
    enabled = 1
    gpgcheck = 0
    gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
    repo_gpgcheck=1
    ```
  </Tab>
</Tabs>

确保在 `/etc/yum.repos.d/overlay.repo` 中同时配置架构仓库(`armv8_2a` 或 `armv8_6a`)和相应的目标专用仓库。
\`\`

4. 要使用您的自定义配置文件刷新软件包索引,请运行以下命令:

   ```text theme={null}
   dnf update
   ```

   **注意**

   如果在 DNF update 期间遇到 SSL 证书验证错误,请确保系统时间准确。

   在此步骤中,DNF 执行以下操作:

   1. 下载仓库元数据(例如 `repomd.xml` 及相关文件)
   2. 检索相关的元数据签名
   3. 仅在验证成功时接受并使用仓库元数据

### **运行 DNF 安装命令以派生 Config #2、Config #3 和 Config #4**

**注意**

由于 Config #1 和 Config #2 是镜像,因此仅 Config #3 和 Config #4 需要运行命令安装 overlay。您应使用 Config #1(即 `qcom-multimedia-image`)烧录设备。

下表列出了安装 overlay 软件包的 `dnf install` 命令,以及在设备上派生 Config #2 时必须进行的配置文件更改:

**表:Config #2 的 DNF 命令和配置文件更改**

| **配置**        | **Overlay** | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |   |                                  |
| :------------ | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | -------------------------------- |
| **Config #2** | **图形**      | 要为图形 overlay 安装 RPM 软件包,请运行:<br /><br />`dnf install kgsl-dlkm -y`<br />`dnf install qcom-adreno -y`<br /><br />`/etc/modprobe.d/qcom-adreno.conf` 文件将自动填充为:<br />\`install msm /bin/sh -c "( modprobe --ignore msm skip\_gpu=1 && modprobe msm\_kgsl )                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |   | modprobe --ignore-install msm"\` |
|               | **音频**      | 要为音频 overlay 安装软件包,请执行以下操作:<br /><br />1. 要安装 RPM 软件包,请运行以下 DNF 命令:<br />`dnf install tinycompress -y`<br />`dnf install audioreach-audio-utils -y`<br />`dnf install audioreach-conf -y`<br />`dnf install audioreach-graphservices -y`<br />`dnf install audioreach-graphmgr -y`<br />`dnf install audioreach-pal -y`<br />`dnf install audioreach-pipewire-plugin -y`<br />`dnf install audioreach-kernel -y`<br />`dnf install kernel-module-audioreach-driver -y`<br /><br />2. 在 `/etc/modprobe.d/` 中创建名为 `asoc-blacklist.conf` 的文件。<br /><br />3. 添加以下黑名单条目:<br />`blacklist q6apm_dai`<br />`blacklist q6apm_lpass_dais`<br />`blacklist q6prm`<br />`blacklist q6prm_clocks`<br />`blacklist snd-soc-sc8280xp`<br />`blacklist snd_q6apm`<br />`blacklist snd_q6dsp_common` |   |                                  |
|               | **摄像头**     | 要为摄像头 overlay 安装软件包,请执行以下操作:<br /><br />1. 运行通用 DNF 命令:<br />`dnf install camx-dlkm -y`<br />`dnf install camx-nhx -y`<br /><br />2. 运行特定于设备的命令:<br /><Tabs><Tab title="QCS6490">`dnf install camx-kodiak -y`</Tab><Tab title="IQ-9075/IQ-8275">`dnf install camx-lemans -y`</Tab><Tab title="IQ-615">`dnf install camx-talos -y`</Tab></Tabs><br />3. 要选择 DTB overlay:<br />`echo -n "camx" > /tmp/overlay`<br />`efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /tmp/overlay`<br /><br />4. 要验证:<br />`efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p`<br /><br />5. 要在重启前保存:<br />`sync` <br /> <br /> 6.要安装摄像头服务和摄像头插件: <br /> `dnf install camera-service -y` <br /> `dnf install gst-plugins-imsdk-prop-qticamsrc -y`             |   |                                  |
|               | **视频**      | 要为视频 overlay 安装软件包:<br /><br />1. 要安装 RPM 软件包,请运行以下 DNF 命令:<br />`dnf install kernel-module-iris-vpu -y`<br /><br />2. 在 `/etc/modprobe.d/` 中创建名为 `video-blacklist.conf` 的文件。<br /><br />3. 添加以下黑名单条目:<br /><Tabs><Tab title="QCS6490">`blacklist venus_dec`<br />`blacklist venus_enc`<br />`blacklist venus_core`</Tab><Tab title="IQ-9075 / IQ-8275 / Shikra EVK / IQ-X5121 EVK (Purva) / IQ-X7181 EVK (Hamoa)">`blacklist qcom_iris`</Tab></Tabs>                                                                                                                                                                                                                                                                                                                                |   |                                  |
|               | **传感器**     | 要为传感器 overlay 安装软件包,请执行以下操作:<br /><br />1. 要安装 RPM 软件包,请运行以下 DNF 命令:<br />`dnf install qcom-sensors-binaries -y`<br /><br />2. 重启设备以应用更改。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |   |                                  |
|               | **AI/ML**   | 要为 AI/ML overlay 安装软件包,请执行以下操作:<br /><br /> **前提条件:** 为 adreno GPU 后端安装 `Graphics Overlay` <br /> <br /> 1. 要安装 qairt-sdk <br />`dnf install qairt-sdk -y`<br /><br /> 2. 要安装 SNPE 和 QNN 插件 <br />`dnf install gst-plugins-imsdk-prop-qtimlqnn -y` <br /> `dnf install gst-plugins-imsdk-prop-qtimlsnpe -y`                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |   |                                  |
|               | **视觉**      | 要为 FastCV overlay 安装软件包,请执行以下操作:<br /><br />1. 安装前提条件软件包:<br />`dnf install qcom-fastcv-binaries -y`<br /><br />2. 安装 FastCV 运行时软件包:<br />`dnf install libfastcvopt1 -y`<br /><br />3. 运行特定于设备的命令:<br /><Tabs><Tab title="QCS6490">`dnf install libfastcvopt-thundercomm-rb3gen2-dsp -y`</Tab><Tab title="IQ-9075">`dnf install libfastcvopt-sa8775p-ride-dsp -y`</Tab><Tab title="IQ-8275">`dnf install libfastcvopt-qcs8300-ride-dsp -y`</Tab><Tab title="IQ-615">`dnf install libfastcvopt-qcs615-ride-dsp -y`</Tab><Tab title="IQ-X5121 (Purva)">`dnf install libfastcvopt-hamoa-iot-evk-dsp -y`</Tab><Tab title="IQ-X7181 (Hamoa)">`dnf install libfastcvopt-hamoa-iot-evk-dsp -y`</Tab><Tab title="Shikra EVK">`dnf install libfastcvopt-shikra-evk-dsp -y`</Tab></Tabs>       |   |                                  |
|               | **IMSDK**   | 要为 IMSDK overlay 安装软件包,请执行以下操作:<br /><br /> **前提条件:** 安装当前配置中的上述所有 overlay <br /> <br /> 1. 要安装 IMSDK 专有插件: <br /> `dnf install gst-plugins-imsdk-prop-meta -y`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |   |                                  |

下表列出了安装 overlay 软件包的 `dnf install` 命令,以及在设备上派生 Config #3 时必须进行的配置文件更改:

**表:Config #3 的 DNF 命令和配置文件更改**

| **配置**        | **Overlay** | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| :------------ | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Config #3** | **音频**      | 要为音频 overlay 安装软件包,请执行以下操作:<br /><br />1. 要安装 RPM 软件包,请运行以下 DNF 命令:<br />`dnf install tinycompress -y`<br />`dnf install audioreach-audio-utils -y`<br />`dnf install audioreach-conf -y`<br />`dnf install audioreach-graphservices -y`<br />`dnf install audioreach-graphmgr -y`<br />`dnf install audioreach-pal -y`<br />`dnf install audioreach-pipewire-plugin -y`<br />`dnf install audioreach-kernel -y`<br />`dnf install kernel-module-audioreach-driver -y`<br /><br />2. 在 `/etc/modprobe.d/` 中创建名为 `asoc-blacklist.conf` 的文件。<br /><br />3. 添加以下黑名单条目:<br />`blacklist q6apm_dai`<br />`blacklist q6apm_lpass_dais`<br />`blacklist q6prm`<br />`blacklist q6prm_clocks`<br />`blacklist snd-soc-sc8280xp`<br />`blacklist snd_q6apm`<br />`blacklist snd_q6dsp_common` |
|               | **摄像头**     | 要为摄像头 overlay 安装软件包,请执行以下操作:<br /><br />1. 运行通用 DNF 命令:<br />`dnf install camx-dlkm -y`<br />`dnf install camx-nhx -y`<br /><br />2. 运行特定于设备的命令:<br /><Tabs><Tab title="QCS6490">`dnf install camx-kodiak -y`</Tab><Tab title="IQ-9075/IQ-8275">`dnf install camx-lemans -y`</Tab><Tab title="IQ-615">`dnf install camx-talos -y`</Tab></Tabs><br />3. 要选择 DTB overlay:<br />`echo -n "camx" > /tmp/overlay`<br />`efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /tmp/overlay`<br /><br />4. 要验证:<br />`efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p`<br /><br />5. 要在重启前保存:<br />`sync` <br /> <br /> 6.要安装摄像头服务和摄像头插件: <br /> `dnf install camera-service -y` <br /> `dnf install gst-plugins-imsdk-prop-qticamsrc -y`             |
|               | **视频**      | 要为视频 overlay 安装软件包:<br /><br />1. 要安装 RPM 软件包,请运行以下 DNF 命令:<br />`dnf install kernel-module-iris-vpu -y`<br /><br />2. 在 `/etc/modprobe.d/` 中创建名为 `video-blacklist.conf` 的文件。<br /><br />3. 添加以下黑名单条目:<br /><Tabs><Tab title="QCS6490">`blacklist venus_dec`<br />`blacklist venus_enc`<br />`blacklist venus_core`</Tab><Tab title="IQ-9075 / IQ-8275 / Shikra EVK / IQ-X5121 EVK (Purva) / IQ-X7181 EVK (Hamoa)">`blacklist qcom_iris`</Tab></Tabs>                                                                                                                                                                                                                                                                                                                                |
|               | **传感器**     | 要为传感器 overlay 安装软件包,请执行以下操作:<br /><br />1. 要安装 RPM 软件包,请运行以下 DNF 命令:<br />`dnf install qcom-sensors-binaries -y`<br /><br />2. 重启设备以应用更改。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|               | **AI/ML**   | 要为 AI/ML overlay 安装软件包,请执行以下操作:<br /><br /> **注意:** 当前配置中不提供 GPU 后端 <br /> <br /> 1. 要安装 qairt-sdk <br />`dnf install qairt-sdk -y`<br /><br /> 2. 要安装 SNPE 和 QNN 插件 <br />`dnf install gst-plugins-imsdk-prop-qtimlqnn -y` <br /> `dnf install gst-plugins-imsdk-prop-qtimlsnpe -y`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|               | **视觉**      | 要为 FastCV overlay 安装软件包,请执行以下操作:<br /><br />1. 安装前提条件软件包:<br />`dnf install qcom-fastcv-binaries -y`<br /><br />2. 安装 FastCV 运行时软件包:<br />`dnf install libfastcvopt1 -y`<br /><br />3. 运行特定于设备的命令:<br /><Tabs><Tab title="QCS6490">`dnf install libfastcvopt-thundercomm-rb3gen2-dsp -y`</Tab><Tab title="IQ-9075">`dnf install libfastcvopt-sa8775p-ride-dsp -y`</Tab><Tab title="IQ-8275">`dnf install libfastcvopt-qcs8300-ride-dsp -y`</Tab><Tab title="IQ-615">`dnf install libfastcvopt-qcs615-ride-dsp -y`</Tab><Tab title="IQ-X5121 (Purva)">`dnf install libfastcvopt-hamoa-iot-evk-dsp -y`</Tab><Tab title="IQ-X7181 (Hamoa)">`dnf install libfastcvopt-hamoa-iot-evk-dsp -y`</Tab><Tab title="Shikra EVK">`dnf install libfastcvopt-shikra-evk-dsp -y`</Tab></Tabs>       |
|               | **IMSDK**   | 要为 IMSDK overlay 安装软件包,请执行以下操作:<br /><br /> **前提条件:** 安装当前配置中的上述所有 overlay <br /> <br /> 1. 要安装 IMSDK 专有插件: <br /> `dnf install gst-plugins-imsdk-prop-meta -y`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |

下表列出了安装 overlay 软件包的 `dnf install` 命令,以及在设备上派生 Config #4 时必须进行的配置文件更改:

**表:Config #4 的 DNF 命令和配置文件更改**

| **配置**        | **Overlay** | **说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |   |                                  |
| :------------ | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | -------------------------------- |
| **Config #4** | **图形**      | 要为图形 overlay 安装 RPM 软件包,请运行:<br /><br />`dnf install kgsl-dlkm -y`<br />`dnf install qcom-adreno -y`<br /><br />`/etc/modprobe.d/qcom-adreno.conf` 文件将自动填充为:<br />\`install msm /bin/sh -c "( modprobe --ignore msm skip\_gpu=1 && modprobe msm\_kgsl )                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |   | modprobe --ignore-install msm"\` |
|               | **摄像头**     | 要为摄像头 overlay 安装软件包,请执行以下操作:<br /><br />1. 运行通用 DNF 命令:<br />`dnf install camx-dlkm -y`<br />`dnf install camx-nhx -y`<br /><br />2. 运行特定于设备的命令:<br /><Tabs><Tab title="QCS6490">`dnf install camx-kodiak -y`</Tab><Tab title="IQ-9075/IQ-8275">`dnf install camx-lemans -y`</Tab><Tab title="IQ-615">`dnf install camx-talos -y`</Tab></Tabs><br />3. 要选择 DTB overlay:<br />`echo -n "camx" > /tmp/overlay`<br />`efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /tmp/overlay`<br /><br />4. 要验证:<br />`efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p`<br /><br />5. 要在重启前保存:<br />`sync` <br /><br /> 6.要安装摄像头服务和摄像头插件: <br /> `dnf install camera-service -y` <br /> `dnf install gst-plugins-imsdk-prop-qticamsrc -y`        |   |                                  |
|               | **传感器**     | 要为传感器 overlay 安装软件包,请执行以下操作:<br /><br />1. 要安装 RPM 软件包,请运行以下 DNF 命令:<br />`dnf install qcom-sensors-binaries -y`<br /><br />2. 重启设备以应用更改。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |   |                                  |
|               | **AI/ML**   | 要为 AI/ML overlay 安装软件包,请执行以下操作:<br /><br /> 前提条件:为 adreno GPU 后端安装 `Graphics Overlay` <br /> <br /> 1. 要安装 qairt-sdk <br />`dnf install qairt-sdk -y`<br /><br /> 2. 要安装 SNPE 和 QNN 插件 <br />`dnf install gst-plugins-imsdk-prop-qtimlqnn -y` <br /> `dnf install gst-plugins-imsdk-prop-qtimlsnpe -y`                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |   |                                  |
|               | **视觉**      | 要为 FastCV overlay 安装软件包,请执行以下操作:<br /><br />1. 安装前提条件软件包:<br />`dnf install qcom-fastcv-binaries -y`<br /><br />2. 安装 FastCV 运行时软件包:<br />`dnf install libfastcvopt1 -y`<br /><br />3. 运行特定于设备的命令:<br /><Tabs><Tab title="QCS6490">`dnf install libfastcvopt-thundercomm-rb3gen2-dsp -y`</Tab><Tab title="IQ-9075">`dnf install libfastcvopt-sa8775p-ride-dsp -y`</Tab><Tab title="IQ-8275">`dnf install libfastcvopt-qcs8300-ride-dsp -y`</Tab><Tab title="IQ-615">`dnf install libfastcvopt-qcs615-ride-dsp -y`</Tab><Tab title="IQ-X5121 (Purva)">`dnf install libfastcvopt-hamoa-iot-evk-dsp -y`</Tab><Tab title="IQ-X7181 (Hamoa)">`dnf install libfastcvopt-hamoa-iot-evk-dsp -y`</Tab><Tab title="Shikra EVK">`dnf install libfastcvopt-shikra-evk-dsp -y`</Tab></Tabs> |   |                                  |
|               | **IMSDK**   | 要为 IMSDK overlay 安装软件包,请执行以下操作:<br /><br /> **前提条件:** 安装当前配置中的上述所有 overlay <br /> <br /> 1. 要安装 IMSDK 专有插件: <br /> `dnf install gst-plugins-imsdk-prop-meta -y`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |   |                                  |

要验证每个 overlay 的 RPM 和驱动软件包是否已成功安装,请参阅[验证 RPM 和驱动软件包的安装](#verify-the-installation-of-rpm-and-driver-packages)。

**注意**

该软件包服务器基于 Qualcomm Linux 2.0 发布快照,用于演示 overlay。它并非旨在满足生产级打包服务器的需求。当下一版本的 Qualcomm Linux 发布时,新的软件包源(软件包服务器 URL)将提供由该版本生成的软件包。但是,不保证从一个版本到另一个版本的基于软件包的升级能够正常工作。

### **验证 RPM 和驱动软件包的安装**

下表列出了用于验证 overlay 的 RPM 和驱动软件包是否已成功安装的 `dnf` 和 `lsmod` 命令:

**表:RPM 和驱动软件包验证命令**

| **Overlay** | **验证命令**                                                                                                                                                                                         |
| :---------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|      音频     | 要验证 RPM 软件包:`dnf list installed \| grep <rpm_name>`。要验证驱动软件包:`lsmod \| grep audioreach`。                                                                                                         |
|     摄像头     | 要验证 RPM 软件包:`dnf list installed \| grep <rpm_name>`。要验证驱动软件包:运行 `lsmod \| grep cam*` 并检查:QCS6490:`camera_qcm6490`;IQ-9075/IQ-8275:`camera_qcs9100`;IQ-615:`camera_qcs615`。                       |
|      视频     | 要验证 RPM 软件包:`dnf list installed \| grep <rpm_name>`。要验证驱动软件包:`lsmod \| grep iris_vpu`。                                                                                                           |
|      图形     | 要验证 RPM 软件包:`dnf list installed \| grep <rpm_name>`。要验证驱动软件包:`lsmod \| grep msm_kgsl`。                                                                                                           |
|    AI/ML    | 要验证 RPM 软件包:<br />`dnf list installed \| grep qairt-sdk`。<br />`dnf list installed \| grep gst-plugins-imsdk-prop-qtimlqnn`。<br />`dnf list installed \| grep gst-plugins-imsdk-prop-qtimlsnpe`。 |
|     传感器     | 要验证 RPM 软件包:`dnf list installed \| grep qcom-sensors-binaries`。                                                                                                                                  |
|    IMSDK    | 要验证 RPM 软件包:<br /> `dnf list installed \| grep gst-plugins-imsdk-prop-meta`                                                                                                                      |
|      视觉     | 要验证 RPM 软件包:`dnf list installed \| grep libfastcv`。                                                                                                                                              |

要卸载 overlay,请参阅[卸载 overlay 配置并切换到上游驱动](./uninstall-overlays)。

## **本地构建、烧录镜像并使用本地构建生成的软件包**

**注意**

有关如何从源码构建的说明,请参阅 [Qualcomm Linux 构建指南](https://dragonwingdocs.qualcomm.com/Key-Documents/Firmware-Guide/build-firmware#build-bsp-image)。

使用此工作流,通过克隆 `meta-qcom` 来构建镜像和软件包。如果您想集成自己的更改,也可以使用此工作流。与 Qualcomm Linux 发布版本对应的镜像和软件包在本地构建。您可以从本地工作区烧录镜像并安装软件包。

### **设置本地工作区**

1. 要克隆 `meta-qcom`,请运行以下命令:

   ```text theme={null}
   git clone https://github.com/qualcomm-linux/meta-qcom.git
   ```

2. 要为 Config #1 `qcom-multimedia-image` 构建镜像,请运行以下命令:

   <Tabs>
     <Tab title="QCS6490">
       ```bash theme={null}
       kas shell meta-qcom/ci/qcs6490-rb3gen2-core-kit.yml:meta-qcom/ci/qcom-distro-multimedia-image.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-image
       ```
     </Tab>

     <Tab title="IQ-9075">
       ```bash theme={null}
       kas shell meta-qcom/ci/iq-9075-evk.yml:meta-qcom/ci/qcom-distro-multimedia-image.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-image
       ```
     </Tab>

     <Tab title="IQ-8275">
       ```bash theme={null}
       kas shell meta-qcom/ci/iq-8275-evk.yml:meta-qcom/ci/qcom-distro-multimedia-image.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-image
       ```
     </Tab>

     <Tab title="IQ-615">
       ```bash theme={null}
       kas shell meta-qcom/ci/iq-615-evk.yml:meta-qcom/ci/qcom-distro-multimedia-image.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-image
       ```
     </Tab>

     <Tab title="IQ-X5121 (Purva)">
       ```bash theme={null}
       kas shell meta-qcom/ci/iq-x5121-evk.yml:meta-qcom/ci/qcom-distro-multimedia-image.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-image
       ```
     </Tab>

     <Tab title="IQ-X7181 (Hamoa)">
       ```bash theme={null}
       kas shell meta-qcom/ci/iq-x7181-evk.yml:meta-qcom/ci/qcom-distro-multimedia-image.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-image
       ```
     </Tab>

     <Tab title="Shikra EVK">
       ```bash theme={null}
       kas shell meta-qcom/ci/shikra-evk.yml:meta-qcom/ci/qcom-distro-multimedia-image.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-image
       ```
     </Tab>
   </Tabs>

3. 要为 Config #2 `qcom-multimedia-proprietary-image` 构建镜像及所有软件包,请运行以下命令:

   <Tabs>
     <Tab title="QCS6490">
       ```bash theme={null}
       kas shell meta-qcom/ci/qcs6490-rb3gen2-core-kit.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-proprietary-image
       ```
     </Tab>

     <Tab title="IQ-9075">
       ```bash theme={null}
       kas shell meta-qcom/ci/iq-9075-evk.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-proprietary-image
       ```
     </Tab>

     <Tab title="IQ-8275">
       ```bash theme={null}
       kas shell meta-qcom/ci/iq-8275-evk.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-proprietary-image
       ```
     </Tab>

     <Tab title="IQ-615">
       ```bash theme={null}
       kas shell meta-qcom/ci/iq-615-evk.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-proprietary-image
       ```
     </Tab>

     <Tab title="IQ-X5121 (Purva)">
       ```bash theme={null}
       kas shell meta-qcom/ci/iq-x5121-evk.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-proprietary-image
       ```
     </Tab>

     <Tab title="IQ-X7181 (Hamoa)">
       ```bash theme={null}
       kas shell meta-qcom/ci/iq-x7181-evk.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-proprietary-image
       ```
     </Tab>

     <Tab title="Shikra EVK">
       ```bash theme={null}
       kas shell meta-qcom/ci/shikra-evk.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml

       bitbake qcom-multimedia-proprietary-image
       ```
     </Tab>
   </Tabs>

   **注意**

   `qcom-distro.yml` 将 DISTRO 设置为 `qcom-distro`。`qcom-distro` 启用使用 DNF 的软件包管理,并允许安装 RPM。`meta-qcom-distro` 中提供的其他 DISTRO 配置使用 OSTree 启用 `SOTA`,并禁用软件包管理。

### **安装软件包并配置 RPM 仓库**

1. 使用 QDL 烧录 `qcom-multimedia-image`。
2. 托管 `qcom-multimedia-proprietary-image` 的 `rpm` 目录中的所有软件包。`rpm` 目录位于 `build/tmp/deploy/rpm`。
3. 要在设备上配置 RPM 仓库,请将以下行追加到配置文件中:

**注意**

* `/etc/yum.repos.d/` 是存储仓库配置文件的目录。确保此目录存在;如果不存在,请创建它。
* 在此目录中,确保文件 `overlay.repo` 存在。如果不存在,请在 `/etc/yum.repos.d/overlay.repo` 处创建它。
* 要配置 RPM 仓库软件包源,请将所需配置追加到 `/etc/yum.repos.d/overlay.repo`。
* `yum.repos.d` 仓库使用基于 GNU Privacy Guard(GPG)的签名进行保护,以确保仓库元数据的真实性和完整性。`.repo` 文件中的这些设置强制执行以下检查:
  * `gpgkey` 定义用于验证仓库元数据的受信任公共 GPG 密钥。
  * `repo_gpgcheck=1` 在任何软件包操作之前强制对仓库进行 GPG 验证。

第二个配置块 `[overlay-<target-specific>]` 决定 DNF 为您的硬件或构建目标使用哪个软件包源。

### armv8\_2a 目标

以下目标使用 `armv8_2a` 基础仓库:

* QCS6490(RB3 Gen2)
* IQ-9075 EVK
* IQ-8275 EVK
* Shikra EVK

```text theme={null}
[overlay-armv8_2a]
name = Qualcomm Overlay Repository (armv8_2a)
baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/armv8_2a/
enabled = 1
gpgcheck = 0
gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
repo_gpgcheck=1
```

<Tabs>
  <Tab title="QCS6490">
    ```text theme={null}
    [overlay-rb3gen2]
    name = Qualcomm Overlay Repository rb3gen2
    baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/rb3gen2-core-kit/
    enabled = 1
    gpgcheck = 0
    gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
    repo_gpgcheck=1
    ```
  </Tab>

  <Tab title="IQ-9075">
    ```text theme={null}
    [overlay-iq-9075-evk]
    name = Qualcomm Overlay Repository IQ-9075 EVK
    baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/iq-9075-evk/
    enabled = 1
    gpgcheck = 0
    gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
    repo_gpgcheck=1
    ```
  </Tab>

  <Tab title="IQ-8275">
    ```text theme={null}
    [overlay-iq-8275-evk]
    name = Qualcomm Overlay Repository IQ-8275 EVK
    baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/iq-8275-evk/
    enabled = 1
    gpgcheck = 0
    gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
    repo_gpgcheck=1
    ```
  </Tab>

  <Tab title="Shikra EVK">
    ```text theme={null}
    [overlay-shikra-evk]
    name = Qualcomm Overlay Repository Shikra EVK
    baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/shikra-evk/
    enabled = 1
    gpgcheck = 0
    gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
    repo_gpgcheck=1
    ```
  </Tab>
</Tabs>

### armv8\_6a 目标

以下目标使用 `armv8_6a` 基础仓库:

* IQ-X5121 EVK(Purva)
* IQ-X7181 EVK(Hamoa)

```text theme={null}
[overlay-armv8_6a]
name = Qualcomm Overlay Repository (armv8_6a)
baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/armv8_6a/
enabled = 1
gpgcheck = 0
gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
repo_gpgcheck=1
```

<Tabs>
  <Tab title="IQ-X5121 (Purva)">
    ```text theme={null}
    [overlay-iq-x5121-evk]
    name = Qualcomm Overlay Repository IQ-X5121 EVK
    baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/iq-x5121-evk/
    enabled = 1
    gpgcheck = 0
    gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
    repo_gpgcheck=1
    ```
  </Tab>

  <Tab title="IQ-X7181 (Hamoa)">
    ```text theme={null}
    [overlay-iq-x7181-evk]
    name = Qualcomm Overlay Repository IQ-X7181 EVK
    baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm-signed/qli-2.0/rpm/iq-x7181-evk/
    enabled = 1
    gpgcheck = 0
    gpgkey=https://artifacts.codelinaro.org/artifactory/api/security/keypair/yocto-qli-rpm-1/public
    repo_gpgcheck=1
    ```
  </Tab>
</Tabs>

确保在 `/etc/yum.repos.d/overlay.repo` 中同时配置架构仓库(`armv8_2a` 或 `armv8_6a`)和相应的目标专用仓库。
\`\`

4. 要使用您的自定义配置文件刷新软件包索引,请运行以下命令:

   ```bash theme={null}
   dnf update
   ```

   在此步骤中,DNF 执行以下操作:

   1. 下载仓库元数据(例如 `repomd.xml` 及相关文件)
   2. 检索相关的元数据签名
   3. 仅在验证成功时接受并使用仓库元数据

要卸载 overlay,请参阅[卸载 overlay 配置并切换到上游驱动](./uninstall-overlays)。

## **为 Config #3 和 Config #4 定义镜像配方**

**注意**

有关如何从源码构建的说明,请参阅 [Qualcomm Linux 构建指南](https://dragonwingdocs.qualcomm.com/Key-Documents/Firmware-Guide/build-firmware#build-bsp-image)。

使用此工作流为 Config #3 和 Config #4 定义 BitBake 镜像配方,并烧录包含 overlay 的生成镜像。

要定义并构建镜像,请执行以下操作:

1. 要克隆 `meta-qcom`,请运行以下命令:

   ```bash theme={null}
   git clone https://github.com/qualcomm-linux/meta-qcom.git
   cd meta-qcom
   ```

2. 要在本地克隆包括 `meta-qcom-distro` 在内的所有层,请运行以下命令:

   ```bash theme={null}
   kas shell meta-qcom/ci/qcs6490-rb3gen2-core-kit.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml
   ```

### **为 Config #3 定义镜像**

1. 要在 `meta-qcom-distro` 中为 Config #3 定义镜像,请运行以下命令:

   ```bash theme={null}
   vim meta-qcom-distro/recipes-products/images/qcom-config3-image.bb
   ```

2. 在 vim 编辑器中,将以下内容添加到新的镜像配方文件中:

   ```bash theme={null}
   require qcom-multimedia-image.bb

   SUMMARY = "An image built on top of multimedia image for proprietary features"

   # This image is compatible only with aarch64 (ARMv8)
   COMPATIBLE_MACHINE = "^$"
   COMPATIBLE_MACHINE:aarch64 = "(.*)"

   CORE_IMAGE_BASE_INSTALL += " \
      camera-service \
      camx-dlkm \
      camx-kodiak \
      camx-lemans \
      camx-talos \
      camx-nhx \
      gst-plugins-imsdk-prop \
      iris-video-dlkm \
      libdiag-bin \
      qcom-sensors-binaries \
   "
   CORE_IMAGE_BASE_INSTALL:append = " \
      ${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-audioreach', ' packagegroup-audioreach', '', d)} \
   "
   ```

   **注意**

   如果您的目标设备是基于 QCS615 的 EVK,请从 `qcom-config3-image` 中排除 `iris-video-dlkm`。`iris-video-dlkm` 不支持基于 QCS615 的 EVK 的视频功能。基于 QCS615 的 EVK 由上游视频驱动提供支持。

3. 要构建新的镜像配方,请运行以下命令:

   ```bash theme={null}
   bitbake qcom-config3-image
   ```

4. 构建完成后,使用 QDL 工具烧录镜像。

### **为 Config #4 定义镜像**

1. 要在 `meta-qcom-distro` 中为 Config #4 定义镜像,请运行以下命令:

   ```bash theme={null}
   vim meta-qcom-distro/recipes-products/images/qcom-config4-image.bb
   ```

2. 在 vim 编辑器中,将以下内容添加到新的镜像配方文件中:

   ```bash theme={null}
   require qcom-multimedia-image.bb

   SUMMARY = "An image built on top of multimedia image for proprietary features"

   # This image is compatible only with aarch64 (ARMv8)
   COMPATIBLE_MACHINE = "^$"
   COMPATIBLE_MACHINE:aarch64 = "(.*)"

   CORE_IMAGE_BASE_INSTALL += " \
      camera-service \
      camx-dlkm \
      camx-kodiak \
      camx-lemans \
      camx-talos \
      camx-nhx \
      gst-plugins-imsdk-prop \
      kgsl-dlkm \
      libdiag-bin \
      qcom-adreno \
      qcom-sensors-binaries"
   ```

3. 要构建新的镜像配方,请运行以下命令:

   ```bash theme={null}
   bitbake qcom-config4-image
   ```

4. 构建完成后,使用 QDL 工具烧录镜像。

要卸载 overlay,请参阅[卸载 overlay 配置并切换到上游驱动](./uninstall-overlays)。
