gpt4 book ai didi

linux - 使用 libusb 从设备读取问题

转载 作者:IT王子 更新时间:2023-10-29 01:25:22 26 4
gpt4 key购买 nike

情况是这样的:我有一个 USB 设备(我正在尝试与之通信的自定义设备),它有两个端点,一个写入设备,一个从设备读取。两者都是批量传输。每个通信事务都采用 (1) 向设备写入命令 (2) 读取响应的形式。我正在使用 libusb(版本 0.1 而不是 1.0 beta)来实际执行通信。

在 Windows 上,一切都很好。我可以连接设备,声明接口(interface)并愉快地通信。然而,在 Ubuntu(标准的 Hardy 桌面安装)中,虽然我可以连接到设备并写入它,但所有读取操作都失败,并从 libusb 报告错误“提交 URB:无效参数”(错误代码 -22)。

如果我检查/var/log/messages,我会看到在尝试读取的同时记录了一条警告消息:“sysfs:无法创建重复文件名‘usbdev4.3_ep81’”——这与设备相符(它确实在那条总线上,它是我正在尝试读取的端点 81)。

那么...有人在使用 libusb 时遇到过类似问题,或者知道如何解决它吗?

最佳答案

事实证明这是设备本身的描述符配置错误。 lsusb -v 显示了一个从未使用过的额外接口(interface),它有一个同步端点 0x81。因为它从未被使用过(而且据我所知从未被测试过,所以很可能甚至没有正确定义)我完全从设备描述符中删除了它(在固件中)。

现在我有了一个可以正常工作的设备。我不知道为什么 linux 拒绝从设备读取而 Windows 工作正常,但它确实让我陷入了困境。

关于linux - 使用 libusb 从设备读取问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com