k文 2017-03-17 07:05 采纳率: 0%
浏览 2564

使用libusb1.0版本在androidh 调试,但usbfs驱动并非绑定。

libusb_init(NULL);
libusb_set_debug(NULL, 4);
handle = libusb_open_device_with_vid_pid(NULL,0x18ec,0x3399);
libusb_kernel_driver_active(handle, 1)//用于传输的是interface 1,但有点奇怪的是,这里返回的是 0.
libusb_detach_kernel_driver(handle, 1)
libusb_claim_interface(handle, 1)
libusb_set_interface_alt_setting(handle, IfNum, altnum)
libusb_control_transfer(handle, 0x21, 0x01, 0x0100, 0x0001, buf1, LENG, TIMEOUT);
libusb_control_transfer(handle, 0xa1, 0x81, 0x0100, 0x0001, buf, LENG, TIMEOUT);
libusb_control_transfer(handle, 0x21, 0x01, 0x0200, 0x0001, buf1, LENG, TIMEOUT);
xfer = libusb_alloc_transfer(PKTS_PER_XFER);
uint8_t *data = malloc(PKT_LEN*PKTS_PER_XFER);
libusb_fill_iso_transfer(
xfer, handle, 0x83,
data, PKT_LEN*PKTS_PER_XFER, PKTS_PER_XFER,
cb, NULL, TIMEOUT);
printf("start ...\n");

if ( (rcv = libusb_submit_transfer(xfer)) != 0)
{
fprintf(stderr, "failed to submit transfer: %d\n", rcv);
}

这样的代码,最后rcv返回的是 0,但是并没有回调我的回调函数。
另外。在运行我的代码前,
终端运行cat sys/kernel/debug/usb/devices显示的是:

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=18ec ProdID=3399 Rev= 1.00
S: Manufacturer=ARKMICRO
S: Product=USB2.0 PC CAMERA
C:* #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=200mA
A: FirstIf#= 0 IfCount= 2 Cls=0e(video) Sub=03 Prot=00
A: FirstIf#= 2 IfCount= 2 Cls=01(audio) Sub=01 Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=uvcvideo
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=64ms
I:* If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
I: If#= 1 Alt= 1 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=05(Isoc) MxPS= 192 Ivl=125us
I: If#= 1 Alt= 2 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=05(Isoc) MxPS= 384 Ivl=125us
I: If#= 1 Alt= 3 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=05(Isoc) MxPS= 512 Ivl=125us
I: If#= 1 Alt= 4 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=05(Isoc) MxPS= 640 Ivl=125us
I: If#= 1 Alt= 5 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=05(Isoc) MxPS= 800 Ivl=125us
I: If#= 1 Alt= 6 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=05(Isoc) MxPS= 960 Ivl=125us
I: If#= 1 Alt= 7 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=05(Isoc) MxPS=1280 Ivl=125us
I: If#= 1 Alt= 8 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=05(Isoc) MxPS=1600 Ivl=125us
I: If#= 1 Alt= 9 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=05(Isoc) MxPS=1984 Ivl=125us
I: If#= 1 Alt=10 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=05(Isoc) MxPS=2688 Ivl=125us
I: If#= 1 Alt=11 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=05(Isoc) MxPS=3000 Ivl=125us
I:* If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:* If#= 3 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I: If#= 3 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=82(I) Atr=05(Isoc) MxPS= 96 Ivl=1ms

运行我的代码后,显示如下:

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=18ec ProdID=3399 Rev= 1.00
S: Manufacturer=ARKMICRO
S: Product=USB2.0 PC CAMERA
C:* #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=200mA
A: FirstIf#= 0 IfCount= 2 Cls=0e(video) Sub=03 Prot=00
A: FirstIf#= 2 IfCount= 2 Cls=01(audio) Sub=01 Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=(none)
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=64ms
I:* If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
I: If#= 1 Alt= 1 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
E: Ad=83(I) Atr=05(Isoc) MxPS= 192 Ivl=125us
I: If#= 1 Alt= 2 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
E: Ad=83(I) Atr=05(Isoc) MxPS= 384 Ivl=125us
I: If#= 1 Alt= 3 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
E: Ad=83(I) Atr=05(Isoc) MxPS= 512 Ivl=125us
I: If#= 1 Alt= 4 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
E: Ad=83(I) Atr=05(Isoc) MxPS= 640 Ivl=125us
I: If#= 1 Alt= 5 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
E: Ad=83(I) Atr=05(Isoc) MxPS= 800 Ivl=125us
I: If#= 1 Alt= 6 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
E: Ad=83(I) Atr=05(Isoc) MxPS= 960 Ivl=125us
I: If#= 1 Alt= 7 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
E: Ad=83(I) Atr=05(Isoc) MxPS=1280 Ivl=125us
I: If#= 1 Alt= 8 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
E: Ad=83(I) Atr=05(Isoc) MxPS=1600 Ivl=125us
I: If#= 1 Alt= 9 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
E: Ad=83(I) Atr=05(Isoc) MxPS=1984 Ivl=125us
I: If#= 1 Alt=10 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
E: Ad=83(I) Atr=05(Isoc) MxPS=2688 Ivl=125us
I: If#= 1 Alt=11 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=(none)
E: Ad=83(I) Atr=05(Isoc) MxPS=3000 Ivl=125us
I:* If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:* If#= 3 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I: If#= 3 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E: Ad=82(I) Atr=05(Isoc) MxPS= 96 Ivl=1ms

感觉就是Driver并没有绑定成功。但是在kernel中添加绑定时的log,都是正常的。
不知道是哪里出的问题。希望大神能帮忙解决!!!!!

  • 写回答

2条回答 默认 最新

  • k文 2017-03-24 06:15
    关注

    自己顶起……不过有点失望呐。。居然没人知道这原因,还是大神们不愿给小弟解答?

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧