我目前正在尝试在Wandboard板上运行2个摄像头,这些摄像头必须共享一个USB集线器。问题是,当前的驱动程序实现(仅YUV)使USB集线器饱和,最后我只能连接一台摄像机。
然而,UVC驱动实现有此怪癖样的情况,等等。
问题是,我没有找到有关如何加载这些怪癖的任何文档。你能帮我吗?
您可以通过传递一些参数来更改许多内核模块的行为。
您可以使用以下modinfo命令获取所有可用模块参数的列表:
modinfo
# modinfo uvcvideo
显示有一个“怪癖”参数,可以使用。查看您发布的常见问题,似乎quirks确实是一个位域,因此,如果要启用多个怪癖,则必须添加数字。
quirks
首先卸载驱动程序(这样做时显然不能使用它):
# rmmod uvcvideo
然后重新加载quirks参数。假设你要同时启用UVC_QUIRK_FIX_BANDWIDTH(其中有十六进制值0x80,这是128十进制)和UVC_QUIRK_RESTRICT_FRAME_RATE(这是0x200这样512),你会用的怪癖值640(这是128+512RESP。 0x200|0x80):
UVC_QUIRK_FIX_BANDWIDTH
0x80
128
UVC_QUIRK_RESTRICT_FRAME_RATE
0x200
512
640
128+512
0x200|0x80
# modprobe uvcvideo quirks=640