一尘不染

如何在Linux UVC驱动程序中启用UVC_QUIRK_FIX_BANDWIDTH怪癖?

linux

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

然而,UVC驱动实现有此怪癖样的情况,等等。

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


阅读 681

收藏
2020-06-07

共1个答案

一尘不染

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

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

# modinfo uvcvideo

显示有一个“怪癖”参数,可以使用。查看您发布的常见问题,似乎quirks确实是一个位域,因此,如果要启用多个怪癖,则必须添加数字。

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

 # rmmod uvcvideo

然后重新加载quirks参数。假设你要同时启用UVC_QUIRK_FIX_BANDWIDTH(其中有十六进制值0x80,这是128十进制)和UVC_QUIRK_RESTRICT_FRAME_RATE(这是0x200这样512),你会用的怪癖值640(这是128+512RESP。
0x200|0x80):

 # modprobe uvcvideo quirks=640
2020-06-07