【问题标题】:Why doesn't Zaber device show up in dev directory?为什么 Zaber 设备没有出现在 dev 目录中?
【发布时间】:2017-03-24 02:15:19
【问题描述】:

我的 Zaber 设备是 X-MCB2,它通过 USB 连接到我的电脑。命令 lsusb 可以显示如下信息,但在 /dev 目录下找不到。

总线 003 设备 023:ID 2939:495b

还有另一个 Arduino 设备连接到我的电脑。与 Zaber 设备不同,这个 Arduino 设备运行良好,它在 /dev 中的名称是 ttyACM0。

即使我拔掉了 Arduino 设备,Zaber 设备仍然不会出现在 /dev 目录中。

我的 linux 内核是 2.6.32,这个 Zaber 设备应该不需要额外的驱动程序。

【问题讨论】:

  • 命令“lsusb -t”,Zaber 设备的驱动程序为空,而 Arduino 设备的驱动程序为 cdc_acm。两者都是 12M。

标签: linux zaber


【解决方案1】:

我根据以下链接解决了这个问题:https://github.com/arduino/Arduino/issues/1389

echo "0x2939 0x495b" > /sys/bus/usb/drivers/cdc_acm/new_id

【讨论】:

    【解决方案2】:

    感谢您发布答案杰夫。

    问题的可能原因是 Zaber 控制器使用 CDC ACM 实现 USB,并将 USB 接口描述符的协议字段设置为 0(表示设备不接受 AT 命令)。

    在 Linux 2.6.32 中,CDC ACM 内核驱动程序应该处理设备 这种类型的,以这样一种方式编写,它不会控制 协议字段为 0 的设备(相反,它有一个特定的列表 它接受的协议号,但该列表不包括 0)。相反,您必须像发布的解决方案一样手动附加它。

    此问题已在内核 2.6.36 中修复。

    以下是手动将 Zaber 控制器与 USB 连接的命令列表:

    X-MCB2:

    echo "0x2939 0x495b" > /sys/bus/usb/drivers/cdc_acm/new_id

    X-MCB1:

    echo "0x2939 0x495a" > /sys/bus/usb/drivers/cdc_acm/new_id

    A-MCB2:

    echo "0x2939 0x459" > /sys/bus/usb/drivers/cdc_acm/new_id

    【讨论】:

      猜你喜欢
      • 2023-01-27
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2016-01-11
      相关资源
      最近更新 更多