高通智能多媒体 SDK (QIM SDK) 快速入门指南(4)

281 篇文章 26 订阅
150 篇文章 7 订阅


4.5 与 Linux 工作站同步和构建 QIM SDK

QIM SDK 工作流程也可在 Linux 工作站中使用,无需安装额外的容器包(如 docker)。

Linux 工作站安装了 QIM SDK 工作流程的必备主机包后,可以通过从sdk -tools/scripts/host文件夹获取host_env_setup.sh脚本来启动 Linux 工作站上 QIM SDK 的工作流程。
要同步和构建 QIM SDK,请执行以下操作

  1. 在主机文件系统上创建一个目录以同步 QIM SDK 工作区。例如:

    $mkdir <qim-sdk-workspace>
    $cd <qim-sdk-workspace>
    
  2. 从 CodeLinaro 获取 QIM SDK 源代码:

    $ repo init -u https://git.codelinaro.org/clo/le/sdkqim/qim/manifest.git -- repo-branch=qc/stable --repo-url=git://git.quicinc.com/tools/repo.git -m QIM.SDK.1.0.0.r1-01100-QIM.0.xml -b release && repo sync -qc --no-tags -j8
    
  3. 使用以下条目编辑/sdk-tools/targets/LE.PRODUCT.2.1中存在的 JSON 配置文件 :

    {
    "Image_OS": "ubuntu18", 
    "Additional_tag": "sdk-18", 
    "eSDK_shell_file": "Absolute path to Platform extensible SDK file on Linux Workstation", 
    "Base_Dir_Location": "path-to-the-directory-where-the-project-is-initialized-applies-only-for-Linux-Workstation(host)-build-variant",
    "Tflite_prebuilt_file": "absolute path to tf-lite-prebuilt-dev-tar-file generated from TfLite SDK", 
    "Acceleration_engines":
    [
    {
    "Acceleration_engine":"name of acceleration engine 1", "Acceleration_engine_path":"absolute path to Acceleration Engine SDK 1"
    },
    {
    "Acceleration_engine":"-", "Acceleration_engine_path":"-"
    }
    ],
    "Host_dir_mounted_in_container": "<Directory on Host that will be mapped into QIMSDK container to get artifacts to host (not applicable to Linux Workstation workflow))",
    "Deploy_URL":<not applicable>",
    "Deploy_dev_URL": "<not applicable>", 
    "Deploy_QIMSDK_Artifacts_URL":"Directory on Host where all QIMSDK artifacts archive will be made available", "Gst_plugins_qti_oss_dependencies":["cairo", "ffmpeg", "gdk-pixbuf", "liba52", "libgudev", "lame", "librsvg", "libtheora", "libusb1",
    "libwebp", "mpg123", "orc", "sbc", "speex", "taglib", "vulkan-loader"]
    }
    

    有关 json 配置文件中提到的条目的更多信息,请参阅/sdk-tools/中的Host.md自述文件 。
    启用AI推理插件:
    高通神经处理 SDK
    QIM SDK 工作流程可以为 Qualcomm 神经处理 SDK(以前称为 SNPE)生成 QIM SDK 插件。

    要构建 SNPE QIM SDK 插件,需要下载 SNPE SDK,并需要在配置 JSON 文件中提供 Linux 工作站上 SNPE sdk 的路径。

    • 要下载适用于 Ubuntu 的 Qualcomm Package Manager 3,请单击https://qpm.qualcomm.com/,然后单击工具。

    • 在左窗格的“搜索工具”字段中,输入QPM。从系统操作系统列表中,选择Linux。
      搜索结果显示 Qualcomm 包管理器列表。

    • 选择 Qualcomm Package Manager 3 并下载 Linux debian 软件包。

    • 要安装适用于 Linux 的 Qualcomm Package Manager 3,请使用以下命令:

      $ dpkg -i --force-overwrite /path/to/QualcommPackageManager3.3.0.83.1.Linux-x86.deb
      
    • 要下载 Qualcomm Snapdragon 神经处理引擎 SDK,请单击 https://qpm.qualcomm.com/,然后单击工具。

    • 在左窗格的“搜索工具”字段中,输入ai stack。从系统操作系统列表中,选择Linux。
      搜索结果显示 Qualcomm 包管理器列表。

    • 单击 Qualcomm® Neural Processing SDK,然后下载 Linux 版本 2.13.0 的 .qik 包。

    • 要在 Ubuntu 工作站上安装 Qualcomm® 神经处理 SDK,请运行以下命令:

      $ qpm-cli --login <username>
      $ qpm-cli --license-activate qualcomm_neural_processing_sdk
      $ qpm-cli --extract <full path to downloaded .qik file>
      

      提取成功后,显示以下消息。 “/opt/qcom/aistack/snpe/2.13.4.230831”

    • 将条目添加到LE.PRODUCT.2.1.json文件中。例如:

      "Acceleration_engines":
      [
      {"Acceleration_engine":"snpe", 
      "Acceleration_engine_path":/opt/qcom/aistack/snpe/2.13.4.230831"
      },
      ]
      从 Ubuntu 工作站将库推送到设备。运行以下命令将相关库和二进制文件侧面加载到设备上:
      $ cd /opt/qcom/aistack/snpe/2.13.4.230831 on Ubuntu Workstation
      $ adb push ./lib/aarch64-oe-linux-gcc11.2/libcalculator_htp.so         /usr/lib/
      $ adb push ./lib/aarch64-oe-linux-gcc11.2/libcalculator.so             /usr/lib/
      $ adb push ./lib/aarch64-oe-linux-gcc11.2/libhta_hexagon_runtime_snpe.so  /usr/lib/
      $ adb push ./lib/aarch64-oe-linux-gcc11.2/libPlatformValidatorShared.so   /usr/lib/
      $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSnpeDspV65Stub.so         /usr/lib/
      $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSnpeDspV66Stub.so         /usr/lib/
      $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSnpeHta.so                /usr/lib/
      $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSnpeHtpV68Stub.so         /usr/lib/
      $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSnpeHtpV73Stub.so         /usr/lib/
      $ adb push ./lib/aarch64-oe-linux-gcc11.2/libSNPE.so                   /usr/lib  
      $ adb push ./lib/hexagon-v65/unsigned/libSnpeDspV65Skel.so           /usr/lib/rfsa/adsp
      $ adb push ./lib/hexagon-v65/unsigned/libCalculator_skel.so          /usr/lib/rfsa/adsp
      $ adb push ./lib/hexagon-v66/unsigned/libSnpeDspV66Skel.so           /usr/lib/rfsa/adsp
      $ adb push ./lib/hexagon-v68/unsigned/libSnpeDspV68Skel.so           /usr/lib/rfsa/adsp
      $ adb push ./lib/hexagon-v69/unsigned/libSnpeDspV69Skel.so           /usr/lib/rfsa/adsp
      $ adb push ./lib/hexagon-v73/unsigned/libSnpeDspV73Skel.so           /usr/lib/rfsa/adsp
      $ adb push ./bin/aarch64-oe-linux-gcc11.2/snpe-net-run               /usr/bin
      $ adb push ./bin/aarch64-oe-linux-gcc11.2/snpe-parallel-run          /usr/bin
      $ adb push ./bin/aarch64-oe-linux-gcc11.2/snpe-platform-validator    /usr/bin
      $ adb push ./bin/aarch64-oe-linux-gcc11.2/snpe-throughput-net-run    /usr/bin
      

    请参阅Qualcomm TensorFlow Lite 软件开发套件 (TFLITE SDK) 工具快速入门指南(80-50450-52) 执行以下操作:

    • 启用 TFLite GStreamer 插件
    • Tflite_prebuilt_file获取 TFLite 工件并更新上述 JSON 文件中的相关字段 ( )
  4. 在qimsdk-host-env-setup()函数内的 scripts/host/host_env_setup.sh脚本中添加以下行 。

    export QIMSDK_ESDK_BASE_DIR=${QIMSDK_BASE_DIR}/esdk
    export QIMSDK_WORK_DIR=${QIMSDK_BASE_DIR}/work
    export QIMSDK_SCRIPTS=${QIMSDK_BASE_DIR}/scripts
    
  5. 通过获取host_env_setup.sh文件来设置 Linux 工作站 QIM SDK 的工作流程 。

    $ source sdk-tools/scripts/host/host_env_setup.sh 
    
  6. 使用以下命令解决任何依赖关系并运行 QIM SDK 工作流程来构建 QIM SDK 包:

    $ qimsdk-setup   targets/LE.PRODUCT.2.1
    

请添加图片描述

qimsdk-setup实用程序成功运行后将显示以下消息 。
所有层打包成功!

IM SDK 设置完成!

  1. 要将可用的 QIM SDK 包传输到 Deploy_QIMSDK_Artifacts_URL,请运行该 qimsdk-host-sync-artifacts-all实用程序。

    $ qimsdk-host-sync-artifacts-all targets/LE.PRODUCT.2.1.json
    
  2. 将packages.zip解压到一个文件夹中。要从 QIM SDK 包安装工件,请参阅安装适用于 Windows 平台的工件和安装适用于 Linux 平台的工件。

4.6 主机设置故障排除

主机设置问题可能与构建 QIM SDK 之前必须在 Linux 主机上安装的缺少软件包有关。

按照提示上显示的消息对主机设置进行故障排除。

5 增量构建 QIM SDK

如果您是第一次构建 QIM SDK,请参阅构建 QIM SDK – 开发人员工作流程。相同的构建环境可以重复用于增量插件和应用程序开发。

开发人员可以使用图中提到的帮助程序实用程序(在容器内)来编译修改后的应用程序和插件。请添加图片描述

图片 :容器中的工作流程

在代码目录下代码修改完成后,运行以下命令:

  1. 编译修改后的代码:

    $ qimsdk-layers-build
    
  2. 打包编译代码:

    $ qimsdk-layers-package
    
  3. 将发布包与主机文件系统同步:

    $ qimsdk-remote-sync-log-clear && qimsdk-remote-sync-rel
    
  4. 将开发包与主机文件系统同步:

    $ qimsdk-remote-sync-log-clear && qimsdk-remote-sync-dev
    

编译后的工件 位于 JSON 文件中提到的Host_dir_mounted_in_container文件夹中,可以将其复制到任何目录。

6 使用 Visual Studio Code 开发应用程序

Visual Studio Code 是一个代码编辑器,支持使用 QIM SDK 在远程工作站上进行开发操作。

有关 Visual Studio Code 的更多信息,请参阅https://code.visualstudio.com/。

  1. 使用与远程工作配置文件相关的扩展设置 Visual Studio Code。

请添加图片描述
2 .连接到远程工作站。

请添加图片描述
请添加图片描述

  1. 连接到远程工作站上的 QIM SDK 容器。

请添加图片描述

  1. 打开gst-plugin-example目录以添加和开发新应用程序。

请添加图片描述
请添加图片描述
5. 请参阅构建 QIM SDK – 开发人员工作流程,以生成示例应用程序作为ipkgst -plugin-examples包的一部分。
有关 QIM SDK 插件和应用程序的更多信息,请参阅 QCS8550.LE.1.0 Qualcomm 智能多媒体 SDK (QIM SDK) 参考(80-50450-50)。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值