本文介绍了如何在Linux UVC驱动程序中启用UVC_QUIRK_FIX_BANDWIDTH怪癖?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我当前正在尝试运行2个网络摄像头在Wandboard板上,必须共享一个USB集线器.问题是,当前的驱动程序实现(仅YUV)使USB集线器饱和,最终我只能连接一台摄像机.

I am currently trying to run 2 webcams on a Wandboard board, which have to share a USB hub. Problem is , the current driver implementation (YUV only) saturates the USB hub and in the end I can only connect one camera.

但是,对于这种情况这种情况,UVC驱动程序实现有一个怪癖,并且其他.

However the UVC driver implementation has a quirk for this kind of situation, and others.

问题是,我没有找到有关如何加载这些怪癖的任何文档.你能帮我吗?

Problem is, I did not find any documentation on how to load these quirks.Could you please assist me with that?

推荐答案

您可以通过传递一些参数来更改许多内核模块的行为.

you can change the behaviour of many kernel-modules by passing some parameters.

您可以使用modinfo命令获取所有可用模块参数的列表:

you can get a list of all available module parameters with the modinfo command:

# modinfo uvcvideo

显示有一个怪癖"参数,可以使用.查看您发布的常见问题解答,看来quirks确实是位域,所以如果您想要启用多个怪癖,您必须添加数字.

shows that there is a "quirks" parameters, which can be used.looking at the faq you posted, it seems that the quirks are really a bitfield, so if you want to enable multiple quirks, you have to add the numbers.

首先卸载驱动程序(显然,这样做时绝对不能使用它):

first unload the driver (obviously you must not use it when doing so):

 # rmmod uvcvideo

然后使用quirks参数重新加载它.假设您想同时启用UVC_QUIRK_FIX_BANDWIDTH(具有十六进制值0x80,其为十进制的128)和UVC_QUIRK_RESTRICT_FRAME_RATE(其为0x200,因此为512),则需要使用quirks值640(分别是128+5120x200|0x80):

then re-load it with the quirks parameter.assuming you want to enable both UVC_QUIRK_FIX_BANDWIDTH (which has the hex-value 0x80, which is 128 in decimal) and UVC_QUIRK_RESTRICT_FRAME_RATE (which is 0x200 thus 512) you would use a quirks value of 640 (which is 128+512 resp. 0x200|0x80):

 # modprobe uvcvideo quirks=640

这篇关于如何在Linux UVC驱动程序中启用UVC_QUIRK_FIX_BANDWIDTH怪癖?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-27 04:40