摘要: 本文档描述libusb的API,以及如何开发USB应用。1 介绍1.1 概览本文档描述libusb-0.1的API和USB相关内容。1.2 当前OS支持Linux 2.2或以上FreeBSD/NetBSD/OpenBSDDarwin/MacOSX2 API2.1 设备与接口一个设备可能有多个接口,所以一个句柄可以返回多个接口实例。不要忘记调用 usb_claim_interface() 。2.2 超时总是以毫秒为单位。2.3 数据类型同时使用有抽象结构和非抽象结构来保持可移植性。2.4 同步所有libusb v0.1的函数都是同步的,这意味着操作完成或超时前不会返回。异步操作从libusb v 阅读全文
posted @ 2013-11-13 17:28 HEYP 阅读(1380) 评论(0) 推荐(0) 编辑
摘要: 这两天发现手头一个usb指纹头出现了一点状况,若libusb以同步方式发送bulk transfer出现阻塞。经过测试发现跟timeout有些关系:若timeout为0(无timeout),不会阻塞;若timeout为1000或者2000,则会。另外,若采用异步方式传送bulk transfer,则不会阻塞。同步方式libusb_bulk_transfer(devh, ep_bulk, buf, CAM_BUF_SZ, &len, timeout);进入libusb研究,发现libusb是采用异步方式来实现的。在do_sync_bulk_transfer中:staticint do_s 阅读全文
posted @ 2013-11-13 17:16 HEYP 阅读(6070) 评论(0) 推荐(0) 编辑
摘要: 笔者曾得到一个类似于加密“狗”的USB设备,要使之在Linux下正常工作。然而,通过一个名为USBView的小程序判断,Linux内核无 法驱动这个USB设备,并且在“Linux USB Working Devices”的列表中也没有找到该设备,这意味着只有很少的人在使用这种类型的 USB设备。 在Linux的/proc/bus/usb/devices文件中,有这个USB设备的一些信息: T: Bus=01 Lev=02 Prnt=03 Port=02 Cnt=01 Dev#=4 Spd=1.5 MxCh=0D: Ver=1.00 Cls=ff(vend.) Sub=00 Prot=ff M. 阅读全文
posted @ 2013-11-13 16:40 HEYP 阅读(2368) 评论(0) 推荐(0) 编辑
摘要: libusb must be mounted usbfs今天通过libusb访问一个HID的设备,一调用USBDEVFSCLAIMINTERFACEioctl就返回-1设备忙, 找了一下午原因也没有找到, 快到下班的时候, 发现了一篇文章Porting Libusb for Android on the Beagleboard in 5 steps提到 需要把设备加载到usbfs上,结果加载了usbfs设备就能正常访问了。在网上搜了一圈,发现libusb就是通过usbfs或usbdevfs来链接USB设备,所以在使用之前 必须加载usbfs到/dev/bus/usb或/proc/bus/usb 阅读全文
posted @ 2013-11-13 16:31 HEYP 阅读(726) 评论(0) 推荐(0) 编辑