系统相关
首页 > 系统相关> > linux – Angström上的网络摄像头

linux – Angström上的网络摄像头

作者:互联网

我在BeagleBoard-xm上运行Angström.我想使用网络摄像头(我有Microsoft LifeCam Cinema和Logitech C310).我用opkg安装了v4l-utils,libv4l-dev和kernel-module-uvcvideo.但是网络摄像头没有出现在/ dev文件夹中.奶酪也找不到它们.

这是dmesg的输出:

[ 8925.347137] usb 2-2.4.3: new high speed USB device using ehci-omap and address 8
[ 8925.489044] usb 2-2.4.3: New USB device found, idVendor=045e, idProduct=075d
[ 8925.496490] usb 2-2.4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 8925.504333] usb 2-2.4.3: Product: Microsoft�� LifeCam Cinema(TM)
[ 8925.510528] usb 2-2.4.3: Manufacturer: Microsoft
[ 8926.635742] 8:3:1: cannot get freq at ep 0x82

这是lsusb的输出:

# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 002 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 002 Device 004: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 002 Device 005: ID 04d9:1603 Holtek Semiconductor, Inc. 
Bus 002 Device 006: ID 045e:0040 Microsoft Corp. Wheel Mouse Optical
Bus 002 Device 008: ID 045e:075d Microsoft Corp.

uvcvideo内核模块似乎在正确的文件夹中:

# locate uvcvideo.ko
/lib/modules/2.6.32/kernel/drivers/media/video/uvc/uvcvideo.ko

# uname -a
Linux beagleboard 2.6.32 #3 PREEMPT Tue Jul 26 10:56:56 CEST 2011 armv7l unknown

lsmodoutput是:

# lsmod
Module                  Size  Used by
ipv6                  249063  10

但我没有在lsmod输出中看到uvcvideo模块.我应该做其他事情来加载模块吗?或者我应该安装特定的驱动程序?

解决方法:

连接到PCI,PCMCIA和USB等总线的设备具有唯一编码制造商和型号的标识符.包含连接到这些总线的设备的驱动程序的模块包含有关其支持的设备的信息,以PCI标识符,USB标识符,PCMCIA标识符等列表的形式.当内核在其中一个总线上检测到设备时,它会尝试加载此特定标识符的驱动程序.更准确地说,内核尝试加载一个名为(例如)usb的模块:somelongstring,其中长字符串对设备的USB标识符进行编码.当您编译或安装内核时,depmod程序会读取您拥有的所有模块文件(.ko),并在/ lib / module / $VERSION /中生成modules.alias文件,其中包含

alias usb:somelongstring uvcvideo

看起来在您的系统上,您有一个支持您的设备的驱动程序,但modules.alias文件没有声明正确的别名.首先,运行depmod -a以确保此文件是最新的.

如果,之后,模块没有自动加载,但在手动加载时工作,那么正在发生的是你有一个稍微更新的模型,它有一个未知的标识符,但使用相同的驱动程序,因为它与已知模型.在这种情况下,向上游开发人员报告您的成功,以便将标识符添加到驱动程序的下一个版本.在此期间,手动添加别名.你会在/sys/bus/usb/devices/2-2.4.3/modalias中找到长字符串.创建一个名为/etc/modprobe.d/local-aliases.conf的文件并添加这些行

# Microsoft LifeCam Cinema
alias usb:somelongstring uvcvideo

有一个good write-up of modalias in the Arch wiki.

标签:drivers,linux,video,camera,kernel-modules
来源: https://codeday.me/bug/20190810/1634772.html