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

AX12260卡QNX Neutrino系统下USB设备启动故障求助

QNX Neutrino AX12260 USB栈启动失败及只读文件系统问题解决

核心问题分析

你遇到的devu-ehci.so加载失败,本质是QNX动态库加载机制的问题——PATH环境变量不影响动态库搜索,QNX依赖LD_LIBRARY_PATH或直接指定库路径;另外只读文件系统不会直接导致驱动加载失败,但会影响后续USB存储的挂载操作。

分步解决步骤

1. 正确指定USB驱动库路径

QNX的io-usb需要明确找到驱动DLL,有两种可靠方式:

  • 临时配置动态库搜索路径:
    若devu-ehci.so在/lib/dll/目录下,执行:
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib/dll
    io-usb -d ehci
    
  • 直接在命令中指定路径:
    跳过环境变量,用-P参数直接告诉io-usb驱动所在目录:
    io-usb -P /lib/dll -d ehci
    
    若驱动在其他路径(如/usr/lib/dll/),替换对应路径即可。

2. 验证驱动文件是否存在

先确认驱动文件确实存在于系统中:

ls -l /lib/dll/devu-*.so

如果文件不存在,说明系统镜像未包含USB驱动组件,需要重新构建QNX镜像,添加对应AX12260 BSP的usb相关组件。

3. 处理只读文件系统的影响

当前驱动加载失败和只读文件系统无关,但后续挂载USB存储时会受限制:

  • 若根文件系统只读,无法在默认挂载点创建目录,可先挂载临时可写文件系统:
    mount -t tmpfs tmpfs /mnt
    
  • 或检查系统是否有预配置的可写分区(如/var),将USB存储挂载到该目录下。

4. 完整USB存储挂载流程(验证)

驱动加载成功后,按以下步骤完成USB存储读写:

  1. 后台启动USB栈(以ehci为例):
    io-usb -P /lib/dll -d ehci &
    
  2. 加载USB存储类驱动:
    devu-umass.so &
    
  3. 查看识别到的存储设备:
    ls /dev/hd*
    
  4. 挂载设备(假设识别到的设备为/dev/hda1):
    mount /dev/hda1 /mnt/usbstorage
    

额外排查点

  • 若启动io-usb仍报错,可通过pci -vvv获取控制器的总线/设备/功能号,用-b参数指定设备启动:
    io-usb -P /lib/dll -d ehci -b 0:1:2
    
    (替换为pci -vvv输出的实际总线号)
  • 测试OTG设备时,需替换驱动为devu-otg.so,启动命令:
    io-usb -P /lib/dll -d otg &
    

内容的提问来源于stack exchange,提问作者Débart Rédouane

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:20:34