高通Hexagon环境搭建和camera_streaming example运行方法

搭建Hexagon环境可以在windows和linux下进行,本文档以linux虚拟机环境搭建Hexagon环境说明;

首先是在Linux环境下安装QPM(Qualcomm Package Manager)工具,这个是高通工具包管理工具,搭建Hexagon环境需要的Hexagon SDK就需要从其中下载安装;

ps:按照高通官方文档,QPM工具需要在Linux 16.04或18.04上面运行,20.04版本有可能出现安装无法成功导致Linux GUI界面崩溃等一系列未知错误

1.1、首先需要安装QPM软件包的依赖,执行:

sudo apt-get update -y

sudo apt-get install -y xterm

sudo dpkg -i  multiarch-support_2.27-3ubuntu1.5_amd64.deb

sudo dpkg -i  libgnome-keyring-common_3.12.0-1build1_all.deb

sudo dpkg -i  libgnome-keyring0_3.12.0-1build1_amd64.deb

以上是安装完成QPM的软件包依赖,再执行

sudo dpkg -i  QualcommPackageManager.2.0.21.1.Linux-x86.deb

安装QPM

1.2、在安装QPM之前,需要确认python软连接是否正确,执行

python --version

查看是否有正常输出:

如果没有输出,需要更改默认的python软链接,不然QPM安装的时候会有部分模块无法安装;

查看python位置

 whereis python

删除旧的软连接

sudo rm -rf /usr/bin/python

建立新的软连接

sudo ln -s /usr/bin/python3.6 /usr/bin/python

1.3、打开QPM,进行Hexagon SDK安装

选择install进行安装

1.4、Hexagon SDK安装完成后,如果安装目录下没有addons目录(有可能addons安装不成功),可以下载链接中的文件解压到SDK根路径下;

QPM_linux_deb软件包+依赖库-Android文档类资源-优快云文库

这样Hexagon SDK基本组件已经安装完成了,接下来将简单介绍如何运行其中的camera_streaming demo;

2.1、进入SDK根目录(下文用<HEXAGON_SDK_ROOT>代替),找到setup_sdk_env.source文件,执行:

source setup_sdk_env.source

2.2、进入到<HEXAGON_SDK_ROOT>/addons/compute/examples/camera_streaming/

可以选择执行以下编译命令:

cmake编译(四选一即可):

build_cmake hexagon BUILD=Debug DSP_ARCH=v66
build_cmake android BUILD=Debug
build_cmake hexagon BUILD=ReleaseG DSP_ARCH=v66
build_cmake android BUILD=ReleaseG

ps:平台不同,DSP_ARCH也不同,这里参考项目选择的是v66

这里选择执行了

build_cmake hexagon BUILD=Debug DSP_ARCH=v66

会生成如下文件:

<HEXAGON_SDK_ROOT>/addons/compute/examples/camera_streaming/hexagon_Debug_toolv85_v66/ship/libdsp_streamer_add_constant.so

2.3、链接qcom设备,向camxoverridesettings.txt写入HVX配置启用Camera Streaming

adb root 

adb remount 

adb shell mkdir -p /vendor/etc/camera 

adb shell "echo enableDualIFE=FALSE >> /vendor/etc/camera/camxoverridesettings.txt"

adb shell "echo enableHVXStreaming=1 >> /vendor/etc/camera/camxoverridesettings.txt"

adb reboot

2.4、更改topology xml

注意,需要确认设备vendor目录下是否存在com.qti.hvx.addconstant.so库,更改了usecase之后要重新编译chi将对应的usecase库push进设备;

2.5、对2.2编译出的libdsp_streamer_add_constant.so库进行签名处理,官方文档关于签名给出了三种解决方案,我们这里选择其中一种,用签名脚本对库本身进行签名处理

进入<HEXAGON_SDK_ROOT>/utils/scripts/,执行

./signer.py sign -i <HEXAGON_SDK_ROOT>/addons/compute/examples/camera_streaming/hexagon_Debug_toolv85_v66/ship/libdsp_streamer_add_constant.so -o out_dir

则在本目录下会生成一个out_dir,其中会生成签名过后的libdsp_streamer_add_constant.so库

2.6、执行

adb push <HEXAGON_SDK_ROOT>/utils/scripts/out_dir/libdsp_streamer_add_constant.so /vendor/lib/rfsa/dsp/sdk

adb reboot

2.7、重启之后需要打开camera应用,例如骁龙相机app等,就可以看到图像在间歇性的变为粉色;

注:<HEXAGON_SDK_ROOT>/addons/compute/docs目录下有官方文档进行具体的架构说明和示例步骤,本文部分步骤来自官方文档,仅供参考;

### 解决 Linux 环境Hexagon.LLVM_linux_installer_8.2.05.bin 命令未找到的问题 当遇到 `command not found` 错误时,通常是因为系统的 PATH 环境变量中缺少可执行文件的位置。对于 Hexagon SDK 的安装脚本而言,确保其具有可执行权限并位于当前工作目录或已知路径非常重要。 #### 检查文件位置权限 确认 `Hexagon.LLVM_linux_installer_8.2.05.bin` 文件确实存在于预期的目录中,并赋予该文件适当的执行权限: ```bash chmod +x /path/to/Hexagon.LLVM_linux_installer_8.2.05.bin ``` 这一步骤可以防止由于权限不足而导致无法识别命令的情况发生[^2]。 #### 执行方式调整 如果仍然提示找不到命令,则可以直接通过绝对路径来运行此二进制文件而不是依赖 shell 查找它: ```bash ./Hexagon.LLVM_linux_installer_8.2.05.bin ``` 或者提供完整的路径指向这个安装包来进行调用: ```bash /path/to/Hexagon.LLVM_linux_installer_8.2.05.bin ``` 这样做能够绕过任何可能影响命令查找过程的因素。 #### 安装必要的依赖项 有时某些工具链可能会因为缺失依赖而报错。考虑到 Hexagon LLVM 可能需要一些额外的支持库,在尝试启动之前先确保已经安装了这些基础组件。例如,对于基于 Debian 或 Ubuntu 的发行版来说,可以通过如下命令获取所需软件包: ```bash sudo apt-get update && sudo apt-get install -y build-essential cmake git wget unzip pkg-config libncurses-dev python3-pip ``` 此外,根据具体需求还应考虑安装其他相关开发支持程序[^3]。 #### 验证环境配置 最后,验证是否正确设置了 HEXAGON_TOOLS_PATH ANDROID_NDK_HOME 这样的重要环境变量。可以在 `.bashrc` 中添加相应的导出语句以便每次登录都能生效: ```bash echo 'export HEXAGON_TOOLS_PATH="/opt/qcom/hexagon-tools"' >> ~/.bashrc source ~/.bashrc ``` 以上措施有助于确保所有必需资源都处于适当状态从而顺利进行后续操作[^4]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值