为什么 Zaber 设备没有出现在 dev 目录中?

Why doesn't Zaber device show up in dev directory?

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

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

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

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

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

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

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

感谢杰夫发布您的回答。

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