web-dev-qa-db-ja.com

Angströmのウェブカメラ

BeagleBoard-xmAngström を実行しています。 Webカメラを使用したい(Microsoft LifeCamCinemaとLogitechC310を使用しています)。 v4l-utilslibv4l-dev、およびkernel-module-uvcvideoをopkgでインストールしました。ただし、Webカメラは/devフォルダーに表示されません。 cheeseもそれらを見つけることができません。

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モジュールが表示されません。モジュールをロードするために何か他のことをする必要がありますか?または、特定のドライバーをインストールする必要がありますか?

7
mustafa

PCI、PCMCIA、USBなどのバスに接続されたデバイスには、製造元とモデルを一意にエンコードする識別子があります。これらのバスに接続されたデバイスのドライバーを含むモジュールには、PCI識別子、USB識別子、PCMCIA識別子などのリストの形式で、サポートするデバイスに関する情報が含まれます。カーネルは、これらのバスの1つでデバイスを検出すると、試行します。この特定の識別子のドライバーをロードします。より正確には、カーネルは(たとえば)usb:somelongstringと呼ばれるモジュールをロードしようとします。ここで、長い文字列はデバイスのUSB識別子をエンコードします。カーネルをコンパイルまたはインストールすると、depmodプログラムは、所有しているすべてのモジュールファイル(.ko)を読み取り、modules.aliasに次のような行を含む/lib/module/$VERSION/ファイルを生成します。

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

Arch wikiにモダリアの良い記述 があります。