Проблема
Привет, у меня есть USB-камера Sunplus (Siri A9 UVC), и я пытаюсь использовать ее как веб-камеру для ПК. Что бы я ни пытался, она видна в v4l2, однако ломает приложения, использующие ее. Например, Cheese зависает, когда я переключаюсь на USB-камеру.
В качестве теста я использовал fswebcam, чтобы сделать снимок. Он зависает на некоторое время, а затем выдает это:
karol@karol-hp2:~$ fswebcam --jpeg 85 -d /dev/video2 web-cam-shot.jpg
--- Opening /dev/video2...
Trying source module v4l2...
/dev/video2 opened.
No input was specified, using the first. (here stalls)
Unable to find a compatible palette format.
На Win10 (на том же ноутбуке) камера работает без проблем. Однако здесь она не только ломает приложения, использующие ее, но и ломаетпульсаудио. При подключении камеры все мои аудиоустройства исчезают из настроек.
Система
я используюУбунту 21.04;
Версия ядра -5.11.0-34-общий
Характеристики устройства/драйвера:
USB-устройство( lsusb
):
Bus 001 Device 008: ID 04fc:6333 Sunplus Technology Co., Ltd Siri A9 UVC chipset
Характеристики оборудования( lshf
):
*-usb:1
description: Video
product: Mass Storage
vendor: iCatchtek Co Ltd
physical id: 2
bus info: usb@1:2
version: 1.00
serial: 01.00.00
capabilities: usb-2.00
configuration: driver=snd-usb-audio maxpower=100mA speed=480Mbit/s
Устройства v4l2 ( v4l2-ctl --list-devices
):
'OBS (platform:v4l2loopback-000):
/dev/video13
Mass Storage (usb-0000:00:14.0-2):
/dev/video2
/dev/video3
/dev/media1
HP Wide Vision HD Camera: HP Wi (usb-0000:00:14.0-5):
/dev/video0
/dev/video1
/dev/media0
Наконец, подробности о камере v4l2 ( v4l2-ctl -d 2 -D
):
Driver Info:
Driver name : uvcvideo
Card type : Mass Storage
Bus info : usb-0000:00:14.0-2
Driver version : 5.11.22
Capabilities : 0x84a00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : uvcvideo
Model : Mass Storage
Serial : 01.00.00
Bus info : usb-0000:00:14.0-2
Media version : 5.11.22
Hardware revision: 0x00000100 (256)
Driver version : 5.11.22
Interface Info:
ID : 0x03000002
Type : V4L Video
Entity Info:
ID : 0x00000001 (1)
Name : Mass Storage
Function : V4L2 I/O
Flags : default
Pad 0x01000007 : 0: Sink
Link 0x02000010: from remote pad 0x100000a of entity 'Extension 3': Data, Enabled, Immutable
решение1
Многие проблемы с доступом к устройствам можно решить путем изменения членства в группе.
В частности, если ls -l
показано, что разрешения группы (вторая rwx
тройка " ") - " rw
" (например, " -rw-rw----
"), то добавление себя в группу, владеющую устройством, предоставит rw
доступ.
Вот как:
device="/dev/whatever"
sudo adduser $USER $(stat -c "%G" $device)
Это позволяет вам стать членом группы, которая может использовать rw
устройство,Но есть еще один шаг.
Чтобы сделать все ваши процессы членами новой группы, выйдите из системы и войдите в нее. Членство в группе настраивается во login
время.
Чтобы создать один процесс в новой группе (для тестирования, перед выходом/входом в систему):
newgrp $(stat -c "%G" $device)
или просто введите имя группы. Смотрите man newgrp
.