El problema
Hola, tengo una cámara USB Sunplus (Siri A9 UVC) y estoy intentando usarla como cámara web para PC. No importa lo que intente, es visible en v4l2, sin embargo, interrumpe las aplicaciones que lo usan. Ej., Cheese se detiene cuando cambio a la cámara USB.
Como prueba, utilicé fswebcam para tomar una fotografía. Se detiene por un momento y luego genera esto:
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.
En Win10 (en la misma computadora portátil), la cámara funciona sin problemas. Sin embargo, aquí no sólo daña las aplicaciones que lo usan, sino que también dañapulsoaudio. Cuando la cámara está conectada, todos mis dispositivos de audio desaparecen de la configuración.
Sistema
Estoy usandoubuntu 21.04;
Versión del núcleo -5.11.0-34-genérico
Especificaciones del dispositivo/controlador:
Dispositivo USB( lsusb
):
Bus 001 Device 008: ID 04fc:6333 Sunplus Technology Co., Ltd Siri A9 UVC chipset
Especificaciones de hardware( 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
Dispositivos 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
Finalmente, detalles de la cámara 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
Respuesta1
Muchos problemas de acceso a dispositivos se pueden resolver mediante cambios de membresía en el grupo.
Específicamente, si ls -l
muestra que los permisos del grupo (el segundo " rwx
" triplete) son " rw
" (por ejemplo, " -rw-rw----
"), entonces, agregarse al grupo propietario del dispositivo otorgará rw
acceso.
Así es cómo:
device="/dev/whatever"
sudo adduser $USER $(stat -c "%G" $device)
Esto le permite ser miembro del grupo que puede controlar rw
el dispositivo,pero hay un paso más.
Para que todos sus procesos sean miembros del nuevo grupo, cierre sesión e inicie sesión. Las membresías grupales se configuran en el login
momento.
Para crear un proceso único en el nuevo grupo (para probar, antes de cerrar sesión/iniciar sesión):
newgrp $(stat -c "%G" $device)
o simplemente escriba el nombre del grupo. Ver man newgrp
.