首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linux UVC驱动程序中启用UVC_QUIRK_FIX_BANDWIDTH quirk?

如何在Linux UVC驱动程序中启用UVC_QUIRK_FIX_BANDWIDTH quirk?
EN

Stack Overflow用户
提问于 2014-09-02 16:45:08
回答 2查看 14.2K关注 1票数 8

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

然而,UVC驱动程序的实现对于这种情况的kind和其他情况有一个怪癖。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-02 16:55:09

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

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

代码语言:javascript
复制
# modinfo uvcvideo

说明有一个"quirks“参数,可以使用。看看你发布的faq,似乎quirks实际上是一个位域,所以如果你想启用多个怪癖,你必须添加数字。

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

代码语言:javascript
复制
 # rmmod uvcvideo

然后使用quirks参数重新加载它。假设您想要同时启用UVC_QUIRK_FIX_BANDWIDTH (具有十六进制值0x80,以十进制表示为128 )和UVC_QUIRK_RESTRICT_FRAME_RATE (即0x200,因此为512),您将使用640 (即128+512 )这一奇怪的值。0x200|0x80):

代码语言:javascript
复制
 # modprobe uvcvideo quirks=640
票数 17
EN

Stack Overflow用户

发布于 2016-01-14 06:27:23

为了使umläute的答案在重启后仍然有效,我创建了包含以下内容的文件/etc/modprobe.d/uvcvideo.conf

代码语言:javascript
复制
options uvcvideo quirks=0x80

要让模块重新加载uvcvideo.conf,请卸载并加载模块:

代码语言:javascript
复制
rmmod uvcvideo
modprobe uvcvideo

有趣的是,使用echo设置quirks (即在加载uvcvideo时)不起作用,即使UVC driver FAQ使用echo修改uvcvideotrace参数。

注意:在我的例子中(在Ubuntu14.04上),UVC_QUIRK_FIX_BANDWIDTH为一个机器视觉应用程序在每个LifeCam主机控制器上启用了许多微软USB影院网络摄像头。LifeCam影院保留了大约48%的USB2.0带宽(根据Windows上的设备管理器),所以没有怪癖,每个主机控制器最多可以操作两个LifeCams。(对于几个主机控制器芯片,我甚至被限制在一个LifeCam上,而没有这种怪癖。)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25619309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档