2

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

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

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

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

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

4

2 回答 2

1

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

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

于 2017-03-22T22:25:19.260 回答
0

感谢您发布答案杰夫。

问题的可能原因是 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

于 2017-03-23T15:29:56.950 回答