mus*_*afa 7 linux drivers video kernel-modules camera
我在我的BeagleBoard-xm上运行Angström。我想使用网络摄像头(我有 Microsoft LifeCam Cinema 和 Logitech C310)。我安装了,并使用 opkg。但是网络摄像头没有出现在文件夹中。也找不到他们。v4l-utilslibv4l-devkernel-module-uvcvideo/devcheese
这是输出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
Run Code Online (Sandbox Code Playgroud)
这是输出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.
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
lsmod输出是:
# lsmod
Module Size Used by
ipv6 249063 10
Run Code Online (Sandbox Code Playgroud)
但是我在lsmod输出中没有看到 uvcvideo 模块。我应该做其他事情来加载模块吗?还是我应该安装特定的驱动程序?
连接到 PCI、PCMCIA 和 USB 等总线的设备有一个标识符,对制造商和型号进行唯一编码。包含连接到这些总线的设备驱动程序的模块以 PCI 标识符、USB 标识符、PCMCIA 标识符等列表的形式包含有关它们支持的设备的信息。当内核检测到这些总线之一上的设备时,它会尝试加载此特定标识符的驱动程序。更准确地说,内核尝试加载一个名为(例如)的模块usb:somelongstring,其中长字符串对设备的 USB 标识符进行编码。当您编译或安装内核时,depmod程序会读取.ko您拥有的所有模块文件 ( ) 并生成一个包含以下行的modules.alias文件/lib/module/$VERSION/
alias usb:somelongstring uvcvideo
Run Code Online (Sandbox Code Playgroud)
看起来在您的系统上,您有一个支持您的设备的驱动程序,但该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
Run Code Online (Sandbox Code Playgroud)
Arch wiki 中有一篇很好的关于 modalias 的文章。