usb disconnect

来源:互联网 发布:win10安装linux双系统 编辑:程序博客网 时间:2024/05/21 18:44

为机台添加USB camera的支持。连续几天看log,改代码,从app到kernel全浏览了几遍。最后结果是机台问题。

在网上找到的,有人添加成功的案例:http://www.eoeandroid.com/thread-252676-1-1.html 

按照里面说的,改权限,改open参数。结果还是起不来。app的/dev/video节点按照自己机台改为9了,cameraId按照情况改为2.uvc识别正确,进入probe了。

百度发现国内基本就没有多少有用的,一共找到两个比较有用的博客1: http://blog.csdn.net/sfrysh/article/details/17304771

2:http://blog.csdn.net/hclydao/article/details/21235919 

 还有一个论坛上说kernel里面要enable CONFIG_USB_VIDEO_CLASS等等。跟我关系不大

而我的错误基本没有解决 。

 

没办法,上谷歌。乱七八糟的方法就不说了,我一般都是直接输IP: 64.233.167.165 .这样就可以直接搜了,当然结果里面的github上不去。

 

 我的log显示是: (没有按时间排)

12-12 01:50:48.182    34    34 I KERNEL  : [  357.419928] uvcvideo: USB isochronous frame lost (-71).

 12-12 01:51:15.492    34    34 I KERNEL  : [  384.718804] usb 1-1: USB disconnect, device number 3

 12-12 01:51:15.502  1328  1371 E WebCam  : VIDIOC_DQBUF error 19, No such device

 12-12 01:50:48.222    34    34 I KERNEL  : [  357.443337] uvcvideo: Failed to resubmit video URB (-19).

还有什么VIDEO_S_MFT之类的错误。

在谷歌上找到两种说法比较可信,一种是电压不够,换了5V供电就可以了;二是pixel_format就是设置的格式不对,需要设置成yuyv的。

我按这两个,先改了格式,有效果,但是camera还是起不来。

然后用了一个带电源的usb hub,SimpleWebCamera起来了 ,但是很卡,而且过一会儿就死掉重启了。

由此,应该是供电的问题。

接下来换了一个大的平板,camera完全可以运行。从其他地方得知,大平板的供电能力强于之前用的,猜测还是供电,导致的小平板usb camera卡顿。(依据:app相同,kernel基本相同,没有走hal,framework肯定一样) 

最后发现,小平板运行死掉的log:

uvcvideo: Dropping payload (out of sync).

这个log在uvc_video.c中,继续追。 

 

//************************************神奇的分割线***********************************************************

12月15日

现在才发现,想东西不能太简单。

上周五leader来问到底是不是电流问题,然后拿了一个5V/1.35A的电源来试了一下,发现usb camera还是起不来。所以感觉不像电流的问题。等EE来支援

今天百度的时候发现,在ipad上有人想接U盘,结果报打电流错误。 http://bbs.feng.com/read-htm-tid-5945583.html这上面8楼的觉得有道理,而且下面验证了。

所以我打算用无源hub测试一下。

——————————————————————1小时后——————————————————————

无源hub是可以的。但是EE过来把原来的30cm左右的线换成2cm的线,接机台(不接hub)竟然也可以运行。EE测得cable阻抗较高,电压下降到4V.

所以我搞不清是电压问题还是电流问题。

另:camera芯片被短路烧了,暂时终结任务。 

 

------------------------------------------------------n天之后--------------------------------------------------------

事实证明,平板本身是支持uvc 的,因为kernel层有uvc的代码。apk自带jni就可以了,有其他team用罗技c270实现了,不需要改video0权限,第三方apk直接可用。image没有做任何修改



:http://www.cnblogs.com/bugtags/articles/4159701.html