Skip to main content
Qualcomm Linux overlays 是模块化的、增值型组件 —— 用于诸如音频、摄像头、图形、视频、传感器和视觉等技术的源代码或预构建二进制文件 —— 与上游组件集成。 Overlays 让你可以在平台级别在上游和 Qualcomm 技术栈之间进行选择。有关 overlays 的介绍,请参见 启用和评估 Qualcomm Linux overlays。 多个 QIR SDK 包和示例应用都构建在 Qualcomm 技术栈之上。这些包无法在纯上游镜像上运行,因为它们所链接的 Qualcomm 用户空间库和树外内核驱动模块都是以 overlays 形式交付的。 使用以下信息可以:
  • 将每个 QIR SDK 镜像与 overlay 配置匹配。
  • 识别每个 QIR SDK 包和示例应用所依赖的 overlays。
  • 在启用相应的 overlays 后,在设备上安装 QIR SDK 包和示例应用。
注意本页面仅涵盖工作流中特定于 QIR SDK 的部分。启用 overlays 本身是一项平台级任务,包括:
  • 刷写基础镜像
  • 配置包源
  • 安装 overlay RPMs
  • 将上游驱动模块加入黑名单
  • 为摄像头设置可扩展固件接口 (EFI) 变量
有关这些说明,请参见 使用支持的工作流评估 overlays。

QIR SDK 的 Overlay 配置

Qualcomm Linux 将 Qualcomm 技术栈分组为四个经过验证的 overlay 配置:Config #1 到 Config #4。每个配置定义了给定技术领域使用的是上游栈还是 Qualcomm 栈。有关每个配置的定义以及对应的平台镜像 recipe,请参见 使用 overlay 配置派生镜像 recipe。 QIR SDK 镜像 recipe 分层构建在这些平台配置之上。下表将每个 QIR SDK 镜像 recipe 映射到其 overlay 配置和平台镜像 recipe。

表:QIR SDK 镜像 recipe 及对应的 overlay 配置

Overlay 配置平台镜像 recipeQIR SDK 镜像 recipe说明
Config #1qcom-multimedia-imageqcom-robotics-image

完全上游栈。包括:

  • ROS 2 Jazzy
  • 开源 qrb-ros 包
  • 仿真示例
  • 第三方驱动
  • QIR SDK 制品
没有专有依赖。
Config #2qcom-multimedia-proprietary-imageqcom-robotics-proprietary-image

完整的 Qualcomm 栈。包括 qcom-robotics-image 中的所有内容,以及依赖 Qualcomm 专有库的 qrb-ros 包和 AI 示例应用。

安装顺序

overlay 工作流有四个阶段,每个阶段都依赖于前一个阶段。请按顺序完成:
  1. 安装多媒体 overlay 包 — 启用平台音频、摄像头、视频和图形栈。
  2. 在设备上设置 robotics DNF 存储库 — 将设备指向 robotics 包源。
  3. 安装 robotics overlay 包 — 安装依赖 overlays 的 qrb-ros 包。
  4. 安装依赖 overlays 的 robotics 示例应用 — 安装基于这些包构建的示例。

前提条件

在你安装本页描述的 QIR SDK 包之前,请完成以下步骤:
  1. 下载预构建的 qcom-robotics-image(Overlay Config #1)。有关说明,请参见 下载预构建包
  2. 在你的设备上刷写 qcom-robotics-image。有关说明,请参见 刷写 robotics 镜像。
  3. 使用以下方法之一获取目标的 QIR SDK RPMs:

安装多媒体 overlay 包

本页描述的 QIR SDK 包都构建在 Qualcomm 多媒体栈 —— 音频、摄像头、视频和图形 —— 之上。Qualcomm Linux 将这些栈作为平台级的多媒体 overlay 包交付,因此在安装任何 QIR SDK 包之前,请先为你的目标 overlay 配置安装多媒体 overlay 包。 多媒体 overlay 设置是一项平台级任务。它包括配置平台 DNF 存储库、安装 overlay RPMs、将相应的上游内核模块加入黑名单,以及 —— 对于摄像头 overlay —— 通过 EFI 变量选择 CamX 设备树 blob (DTB) overlay。 有关每个多媒体 overlay 的 dnf install 命令、模块黑名单条目和 EFI 变量设置,请参见 Qualcomm Linux 迁移指南中的以下部分:
注意安装 overlay RPMs 并更新黑名单或 EFI 变量后,请重启设备。如果 overlay 内核模块未加载,QIR SDK 包无法加载它们的运行时依赖。

在设备上设置 robotics DNF 存储库

使用 DNF 在设备上安装 QIR SDK RPMs。DNF 从配置在 /etc/yum.repos.d/ 中的存储库解析包的依赖项。因此,在运行任何 dnf install 命令之前,请先配置 robotics 存储库。以下步骤将设备指向 CodeLinaro 上的远程 Qualcomm Linux robotics 包源。
  1. 确保设备可以网络访问 https://artifacts.codelinaro.org。
  2. 创建 /etc/yum.repos.d/overlay.repo 文件,并附加你目标的配置。
    • 第一个块是特定于架构的源,对所有支持的目标都相同。
    • 第二个块是特定于目标的源。
    注意
    • /etc/yum.repos.d/ 是存储库配置文件的目录。请确保此目录存在;如果不存在,请创建它。
  3. 要刷新包索引,请运行以下命令:
  4. 要安装一个包,请使用包名运行 dnf install 命令:
    注意
    • 使用 dnf install 而不是 rpm -i,以便自动解析并安装该包的依赖项。
    • 要列出已配置存储库中可用的包,请运行 dnf list available。
    robotics overlay 包的 dnf install 命令列在 安装 robotics overlay 包 中。

安装 robotics overlay 包

Robotics overlay 包是链接到 Qualcomm 多媒体栈的 QIR SDK qrb-ros 包。请在对应的多媒体 overlay 包就位后再安装它们。 下表列出了每个 robotics overlay 包及其依赖的多媒体 overlay。 表:Robotics overlay 包及其 overlay 依赖 在设备上运行与你的技术领域对应的命令。
注意
  • 上述命令按名称安装包,因此 DNF 从配置的存储库中解析版本和特定于目标的构建。如果你改为安装本地 RPM 文件,文件名还包括包版本和特定于目标的后缀,例如 iq_9075_evk。请将版本和后缀替换为匹配你的发布快照和目标的值。
  • armv8_2a 包是特定于架构的,对所有支持的目标都相同。

安装依赖 overlays 的 robotics 示例应用

下表列出了依赖 overlays 的 QIR SDK 示例应用、它们的依赖以及在设备上安装它们的命令。
注意在安装依赖某些 overlays 的示例应用之前,请先安装 安装 robotics overlay 包 中列出的包。例如,sample-apriltag 需要 qrb-ros-camera 和 qrb-ros-nn-inference,而它们又需要摄像头和 AI 推理 overlays。
表:示例应用、依赖和安装命令

验证安装

  1. 要验证 overlay 驱动模块已加载,请使用 验证 RPM 和驱动包的安装 中列出的 lsmod 命令。
  2. 要验证 QIR SDK 包已安装,请运行以下命令:
  3. 要验证包提供的 ROS 2 节点可用,请运行以下命令:
  4. 运行相应的示例应用以确认端到端流水线。有关说明,请参见 示例应用。

卸载 overlays

要移除某个 overlay 配置的下游 RPM 包并切换回上游驱动,请参见 卸载 overlay 配置并切换到上游驱动。

从源码构建 QIR SDK 镜像和 RPM 包

除了从包源安装预构建 RPMs 之外,你还可以从源码构建 QIR SDK 镜像和包。当你想集成自己的更改,然后刷写 Config #1 镜像并安装从 Config #2 构建生成的 overlay 和 QIR SDK 包时,请使用此工作流。这是 本地构建、刷写镜像并使用本地构建的包 中描述的平台工作流的 QIR SDK 版本。

设置本地工作区

  1. 准备你的主机计算机,并安装 KAS 工具。有关说明,请参见 为构建设置主机计算机。
  2. 要克隆 meta-qcom-robotics-sdk,请运行以下命令:
  3. 要构建 Config #1 的镜像 qcom-robotics-image,请运行以下命令:
  4. 要构建 Config #2 的镜像 qcom-robotics-proprietary-image 及所有包,请运行以下命令:
    注意qcom-robotics-distro.yml 将 DISTRO 设置为 qcom-robotics-distro,这启用了使用 DNF 的包管理,并允许安装 RPMs。有关支持的 MACHINE、DISTRO、TARGET 和 KERNEL 组合的完整列表,请参见 构建 robotics 镜像。
  5. 刷写在步骤 3 中构建的 qcom-robotics-image 镜像。有关说明,请参见 刷写 robotics 镜像。
  6. 从构建工作区的 rpm 目录中收集由 qcom-robotics-proprietary-image 构建生成的 RPMs:
    rpm 目录包含以下子目录:
  7. 将 RPMs 复制到设备,并按照 在设备上设置 robotics DNF 存储库 和 安装 robotics overlay 包 中的步骤进行安装。