问题描述
我当前正在尝试运行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+512
和0x200|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怪癖?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!