私のUSBウェブカメラ時々キーボードとして認識されるので動作しないようです。通常再起動すると解決するのに面倒なので、他の方法がないかと思います。
編集する
最初はudevで奇妙なメッセージを見てudevだと思ってこの質問を投稿しましたが(@tecloMのおかげで)、これが関係がないことがわかりました。
これがXYの問題かどうか教えてください。 udevの横説説(ウェブカメラデバイスはキーボードです)を見たので、udevの問題だと思いますが、おそらくそうではありません。ウェブカメラが安定して動作したい!たぶんudevが名前を付けて問題がより深いかもしれませんか?
Webカメラを接続した後に表示されるsyslog行は次のとおりです。
Apr 8 16:56:21 meowko kernel: [561385.593298] usb 1-2.1: new high-speed USB device number 78 using xhci_hcd
Apr 8 16:56:23 meowko kernel: [561387.935896] usb 1-2.1: New USB device found, idVendor=046d, idProduct=085c, bcdDevice= 0.16
Apr 8 16:56:23 meowko kernel: [561387.935902] usb 1-2.1: New USB device strings: Mfr=0, Product=2, SerialNumber=1
Apr 8 16:56:23 meowko kernel: [561387.935905] usb 1-2.1: Product: C922 Pro Stream Webcam
Apr 8 16:56:23 meowko kernel: [561387.935908] usb 1-2.1: SerialNumber: 80ADA8BF
Apr 8 16:56:23 meowko kernel: [561387.937534] uvcvideo: Found UVC 1.00 device C922 Pro Stream Webcam (046d:085c)
Apr 8 16:56:23 meowko kernel: [561387.939350] input: C922 Pro Stream Webcam as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1/1-2.1:1.0/input/input230
Apr 8 16:56:24 meowko mtp-probe: checking bus 1, device 78: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1"
Apr 8 16:56:24 meowko mtp-probe: bus: 1, device: 78 was not an MTP device
Apr 8 16:56:24 meowko systemd-udevd[1153237]: controlC1: Process '/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore 1' failed with exit code 99.
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (II) config/udev: Adding input device C922 Pro Stream Webcam (/dev/input/event28)
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (**) C922 Pro Stream Webcam: Applying InputClass "libinput keyboard catchall"
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (II) Using input driver 'libinput' for 'C922 Pro Stream Webcam'
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (II) systemd-logind: got fd for /dev/input/event28 13:92 fd 107 paused 0
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (**) C922 Pro Stream Webcam: always reports core events
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (**) Option "Device" "/dev/input/event28"
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (**) Option "_source" "server/udev"
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (II) event28 - C922 Pro Stream Webcam: is tagged by udev as: Keyboard
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (II) event28 - C922 Pro Stream Webcam: device is a keyboard
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (II) event28 - C922 Pro Stream Webcam: device removed
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1/1-2.1:1.0/input/input230/event28"
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (II) XINPUT: Adding extended input device "C922 Pro Stream Webcam" (type: KEYBOARD, id 27)
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (**) Option "xkb_model" "pc105"
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (**) Option "xkb_layout" "gb"
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (WW) Option "xkb_variant" requires a string value
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (WW) Option "xkb_options" requires a string value
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (II) event28 - C922 Pro Stream Webcam: is tagged by udev as: Keyboard
Apr 8 16:56:24 meowko /usr/lib/gdm3/gdm-x-session[1047636]: (II) event28 - C922 Pro Stream Webcam: device is a keyboard
Apr 8 16:56:24 meowko gnome-shell[1047764]: Window manager warning: Overwriting existing binding of keysym 31 with keysym 31 (keycode a).
...various versions of last line (don't think relevant?)...
Apr 8 16:56:24 meowko mtp-probe: checking bus 1, device 78: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1"
Apr 8 16:56:24 meowko mtp-probe: bus: 1, device: 78 was not an MTP device
実行中:udevadm info -ap /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1
以下を提供します。
looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1':
KERNEL=="1-2.1"
SUBSYSTEM=="usb"
DRIVER=="usb"
ATTR{bNumConfigurations}=="1"
ATTR{configuration}==""
ATTR{quirks}=="0x42"
ATTR{busnum}=="1"
ATTR{ltm_capable}=="no"
ATTR{bDeviceSubClass}=="02"
ATTR{avoid_reset_quirk}=="0"
ATTR{urbnum}=="130"
ATTR{serial}=="80ADA8BF"
ATTR{bMaxPower}=="500mA"
ATTR{removable}=="unknown"
ATTR{speed}=="480"
ATTR{idProduct}=="085c"
ATTR{tx_lanes}=="1"
ATTR{bMaxPacketSize0}=="64"
ATTR{bDeviceProtocol}=="01"
ATTR{version}==" 2.00"
ATTR{bmAttributes}=="80"
ATTR{devnum}=="78"
ATTR{rx_lanes}=="1"
ATTR{authorized}=="1"
ATTR{idVendor}=="046d"
ATTR{bConfigurationValue}=="1"
ATTR{devpath}=="2.1"
ATTR{maxchild}=="0"
ATTR{product}=="C922 Pro Stream Webcam"
ATTR{bDeviceClass}=="ef"
ATTR{bNumInterfaces}==" 4"
ATTR{bcdDevice}=="0016"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2':
KERNELS=="1-2"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{speed}=="480"
ATTRS{maxchild}=="4"
ATTRS{tx_lanes}=="1"
ATTRS{bNumConfigurations}=="1"
ATTRS{bConfigurationValue}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bDeviceSubClass}=="00"
ATTRS{product}=="USB2.0 Hub"
ATTRS{bDeviceProtocol}=="01"
ATTRS{bmAttributes}=="e0"
ATTRS{devpath}=="2"
ATTRS{urbnum}=="336"
ATTRS{quirks}=="0x0"
ATTRS{bNumInterfaces}==" 1"
ATTRS{authorized}=="1"
ATTRS{version}==" 2.00"
ATTRS{bcdDevice}=="0288"
ATTRS{removable}=="removable"
ATTRS{idProduct}=="3431"
ATTRS{devnum}=="68"
ATTRS{bDeviceClass}=="09"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{idVendor}=="2109"
ATTRS{configuration}==""
ATTRS{rx_lanes}=="1"
ATTRS{ltm_capable}=="no"
ATTRS{bMaxPower}=="100mA"
ATTRS{busnum}=="1"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{idProduct}=="0002"
ATTRS{authorized_default}=="1"
ATTRS{bDeviceProtocol}=="01"
ATTRS{bConfigurationValue}=="1"
ATTRS{bNumConfigurations}=="1"
ATTRS{speed}=="480"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{version}==" 2.00"
ATTRS{ltm_capable}=="no"
ATTRS{tx_lanes}=="1"
ATTRS{serial}=="0000:00:14.0"
ATTRS{quirks}=="0x0"
ATTRS{busnum}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{bmAttributes}=="e0"
ATTRS{bcdDevice}=="0504"
ATTRS{bMaxPower}=="0mA"
ATTRS{bDeviceSubClass}=="00"
ATTRS{product}=="xHCI Host Controller"
ATTRS{devnum}=="1"
ATTRS{idVendor}=="1d6b"
ATTRS{authorized}=="1"
ATTRS{maxchild}=="16"
ATTRS{bNumInterfaces}==" 1"
ATTRS{rx_lanes}=="1"
ATTRS{devpath}=="0"
ATTRS{configuration}==""
ATTRS{bDeviceClass}=="09"
ATTRS{urbnum}=="32052"
ATTRS{removable}=="unknown"
ATTRS{interface_authorized_default}=="1"
ATTRS{manufacturer}=="Linux 5.4.0-66-generic xhci-hcd"
looking at parent device '/devices/pci0000:00/0000:00:14.0':
KERNELS=="0000:00:14.0"
SUBSYSTEMS=="pci"
DRIVERS=="xhci_hcd"
ATTRS{class}=="0x0c0330"
ATTRS{numa_node}=="-1"
ATTRS{dma_mask_bits}=="64"
ATTRS{revision}=="0x31"
ATTRS{local_cpus}=="ff"
ATTRS{driver_override}=="(null)"
ATTRS{device}=="0xa12f"
ATTRS{consistent_dma_mask_bits}=="64"
ATTRS{subsystem_vendor}=="0x1028"
ATTRS{dbc}=="disabled"
ATTRS{broken_parity_status}=="0"
ATTRS{ari_enabled}=="0"
ATTRS{enable}=="1"
ATTRS{msi_bus}=="1"
ATTRS{local_cpulist}=="0-7"
ATTRS{vendor}=="0x8086"
ATTRS{subsystem_device}=="0x06e4"
ATTRS{d3cold_allowed}=="1"
ATTRS{irq}=="133"
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
オンライン中Linux 5.4.0-66-generic #74-Ubuntu SMP Wed Jan 27 22:54:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
。
よろしくお願いします!
編集する
出力lsinput
(カメラが動作しているとき):
/dev/input/event27
bustype : BUS_USB
vendor : 0x46d
product : 0x85c
version : 22
name : "C922 Pro Stream Webcam"
phys : "usb-0000:00:14.0-2/button"
bits ev : (null) (null)
答え1
私はあなたと同じLogitech C922ウェブカメラを持っています。
私のシステムはDebian 10なので、systemdログにはすべて表示されませんが、ログに同様のメッセージが表示されます。
これらの特定のメッセージは、X11ディスプレイサーバーによって生成されます。
[ 121.255] (II) config/udev: Adding input device C922 Pro Stream Webcam (/dev/input/event31)
[ 121.255] (**) C922 Pro Stream Webcam: Applying InputClass "evdev keyboard catchall"
[ 121.255] (**) C922 Pro Stream Webcam: Applying InputClass "libinput keyboard catchall"
[ 121.255] (II) Using input driver 'libinput' for 'C922 Pro Stream Webcam'
[ 121.255] (**) C922 Pro Stream Webcam: always reports core events
[ 121.255] (**) Option "Device" "/dev/input/event31"
[ 121.255] (**) Option "_source" "server/udev"
[ 121.259] (II) event31 - C922 Pro Stream Webcam: is tagged by udev as: Keyboard
[ 121.259] (II) event31 - C922 Pro Stream Webcam: device is a keyboard
[ 121.259] (II) event31 - C922 Pro Stream Webcam: device removed
[ 121.293] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.4/1-4.4.2/1-4.4.2:1.0/input/input40/event31"
[ 121.293] (II) XINPUT: Adding extended input device "C922 Pro Stream Webcam" (type: KEYBOARD, id 19)
[ 121.293] (**) Option "xkb_model" "pc105"
[ 121.293] (**) Option "xkb_layout" "fi"
[ 121.293] (**) Option "xkb_options" "compose:menu,ctrl:nocaps"
[ 121.297] (II) event31 - C922 Pro Stream Webcam: is tagged by udev as: Keyboard
[ 121.297] (II) event31 - C922 Pro Stream Webcam: device is a keyboard
しかし、私のウェブカメラはうまくいきます。
私の場合、デバイスはとマークされています/dev/input/event31
。したがって、このツールを使用して詳細を学ぶことができますlsinput
。
# lsinput -v -s 31
/dev/input/event31
id : 046d:085c, USB, v22
phys : "usb-0000:00:14.0-4.4.2/button"
name : "C922 Pro Stream Webcam"
KEY : CAMERA
実際のUSBキーボードと比較するとどうでしょうか?さて、私のキーボードは次のように表示され、/dev/input/event7
結果lsinput
は次のようになります。
# lsinput -v -s 7
/dev/input/event7
id : 04d9:2221, USB, v272
phys : "usb-0000:00:14.0-13/input0"
name : "USB Keyboard"
KEY : [ 143 codes ]
MSC : SCAN
LED : NUML CAPSL SCROLLL
したがって、lsinput
実際のキーボードの情報によれば、約143の異なるキーコードを送信できます。ウェブカメラ「キーボード」は一つだけあり、名前もCAMERA
。
一部のWebカメラには、さまざまな目的で1つまたは2つのボタンがあります。 Webカメラuvcvideo
ドライバはWebカメラをレンダリングしてこれらのボタンをサポートします。返品「キーボード」デバイスとして、また主なウェブカメラ機能です。これにより、Webカメラボタンを特別に処理するためのカスタムソフトウェアがなくても、キーボードイベントマッピングツールを使用してWebカメラボタンの機能をカスタマイズできます。
Logitech C922 Pro Streamウェブカメラには物理的なボタンがないようです。おそらく、Webカメラ内のハードウェアはボタンをサポートしていますが、Logitechはこの機能が実際にはサポートされていないことを示すために、Webカメラのファームウェアを変更せずにこの特定のモデルからボタンを省略することにしました。そこに。
私の古いコンピュータにはLogitech QuickCam 9000がありましたが、ここにはこのようなボタンがありました。 Windowsでボタンを押すと、ウェブカメラソフトウェアはカメラを使用して可能な最高解像度で静止画をキャプチャするように実行されます。
したがって、追加の証拠がない限り、Webカメラの信頼性の問題についての手がかりを見つけるときに、ウェブカメラにボタンがある可能性があることを知らず、それをシステムに表示できることを知らないuvcvideo
ため、おそらく間違ったことに焦点を当てているようです。キーボードキーに似ています。
Webカメラが現在接続されているUSBポートに十分な電力が供給されていないか、コネクタが緩んでいる可能性があります。別のUSBポートに接続してみましたか?
カメラがバス電源USBハブを介して接続されている場合は、コンピュータに内蔵されているUSBポートまたは独自の電源を備えたハブに直接接続してみてください(ハブが接続されているデバイスにさらに電力を供給できるように)。それ)。
Webカメラが機能しない場合は、USBケーブルを抜いて再接続すると問題は解決しますか?そうでない場合は、uvcvideo
ドライバをアンインストールして再ロードしてみてください。
sudo modprobe -r uvcvideo
sudo modprobe uvcvideo
ドライバをアンロードして再ロードすると、ドライバ内に問題がある場合は、ドライバの状態が完全に再初期化されます。
失敗しmodprobe -r uvcvideo
たら何Webカメラが使用されている、マイクなどの一部の機能が機能しない、またはドライバーとWebカメラ間の通信が失われました。
dmesg
出力でエラーを確認し、ルートとしてfuser /dev/video*
ウェブカメラのビデオ部分と入力デバイス部分を使用している可能性があるfuser /dev/input/event27
プロセスを識別します。
残念ながら、オーディオセクションの使用法を確認することはより複雑です。特定のALSAオーディオデバイスを使用するプロセスを識別する良い低レベルのコマンドを知っている人はいますか? (この回答を自由に編集または知っている場合は、自分で追加してください。)