You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

交叉编译tim-vx-imx运行单元测试遇vxCreateContext设备打开失败问题

问题描述

调用vxCreateContext()时触发致命错误,错误日志如下:

[     1] Failed to open device: No such file or directory, Try again...
[     2] Failed to open device: No such file or directory, Try again...
[     3] Failed to open device: No such file or directory, Try again...
[     4] Failed to open device: No such file or directory, Try again...
[     5] OpenDevice(1249): FATAL: Failed to open device, errno=No such file or directory.

场景说明:

  • 目标设备:NXP i.MX8Plus
  • 正在交叉编译tim-vx-imx
  • 已从aarch64-poky-linux-gcc预构建SDK获取ovxlib相关驱动(CLC、Gal、VSC、ArchModelSw、NNarchPerf、OpenVx及OpenVXU)
  • 运行tim-vx-imx自带单元测试时触发上述错误
排查与解决步骤
  • 检查设备节点状态
    tim-vx依赖的OpenVX驱动对应/dev/galcore设备节点,在目标板执行:

    ls -l /dev/galcore
    
    • 若节点不存在:确认内核是否编译加载galcore模块(CONFIG_MXC_GALCORE需设为y或m),同时检查设备树的GPU节点配置是否正确。
    • 若节点存在但权限不足:执行sudo chmod 666 /dev/galcore临时修改权限,或添加udev规则永久生效。
  • 验证驱动库兼容性
    确保SDK获取的ovxlib驱动与tim-vx-imx版本、i.MX8Plus硬件匹配:

    • 确认驱动是针对i.MX8Plus(GPU为GC7000Lite)编译的,而非其他i.MX型号
    • 编译tim-vx-imx时指定正确硬件平台参数,如-DTIM_VX_TARGET=IMX8MP
  • 确认交叉编译环境配置
    交叉编译阶段需保证:

    • 正确设置环境变量,将CC、CXX指向aarch64-poky-linux-gcc/g++
    • CMake配置时指定SDK的sysroot路径,避免链接主机系统库
    • 开启GPU加速支持,添加CMake参数-DTIM_VX_ENABLE_GPU=ON
  • 检查驱动库部署路径
    将ovxlib的驱动库(如libOpenVX.so、libgalcore.so等)放到目标板的/usr/lib或/usr/lib64目录,确保动态链接器能找到。可通过以下命令检查测试程序的依赖:

    ldd your_test_binary
    

    若有缺失库,补充对应文件到正确路径。

  • 确认GPU硬件初始化状态
    查看目标板启动日志,确认是否有GPU初始化成功的日志(如galcore: loaded)。若无相关日志,说明内核驱动加载失败,需重新编译内核并确认GPU相关配置正确。

内容的提问来源于stack exchange,提问作者Abd Alrahman Atieh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 12:55:37