linux 查看libusb版本,linux – 从使用libusb的设备读取问题

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

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

如果我检查/ var / log / messages,我会看到在尝试读取的同时记录了一条警告消息:“sysfs:duplicate filename’usbdev4.3_ep81’无法创建” – 这与设备相符(确实是在那辆公共汽车和它的端点81我试图读取).

所以…有人看到使用libusb的类似问题,或者有任何想法如何解决它?

解决方法:

事实证明,这是设备本身描述符中的错误配置. lsusb -v显示了一个从未使用的额外接口,它具有单个等时端点0x81.由于这从未使用过(并且从未经过我所见过的测试,因此很可能甚至没有正确定义)我将其从设备描述符中完全删除(在固件中).

现在我有一个完全正常工作的设备.为什么linux拒绝从设备上读取,但Windows工作得很好,我不知道,但它肯定让我疯狂追逐.

标签:linux,usb,libusb

来源: https://codeday.me/bug/20190627/1302651.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值