情况是这样的:我有一个带有两个端点的 USB 设备(我正在尝试与之通信的自定义设备),一个写入设备,一个从设备读取。两者都是批量转移。每个通信事务都采用以下形式:(1)向设备写入命令(2)读取响应。我正在使用 libusb(版本 0.1 而不是 1.0 beta)来实际执行通信。
在 Windows 上,一切都很好。我可以连接设备,声明接口并愉快地通信。但是,在 Ubuntu(标准 Hardy 桌面安装)中,虽然我可以连接到设备并对其进行写入,但所有读取操作都会失败,并从 libusb 报告错误“提交 URB:无效参数”(错误代码 -22)。
如果我检查 /var/log/messages 我看到在尝试读取的同时记录了一条警告消息:“sysfs: duplicate filename 'usbdev4.3_ep81' can not be created” - 这与设备相符(确实是在那辆公共汽车上,它是我试图读取的端点 81)。
所以...有人在使用 libusb 时看到过类似的问题,或者知道如何解决它?