O problema

O problema

O problema

Olá, tenho uma câmera Sunplus USB (Siri A9 UVC) e estou tentando usá-la como webcam de PC. Não importa o que eu tente, ele é visível na v4l2, mas quebra os aplicativos que o utilizam. Ex., o Cheese trava quando mudo para a câmera USB.

Como teste, usei fswebcam para tirar uma foto. Ele para por um tempo e depois gera o seguinte:

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.

No Win10 (no mesmo laptop), a câmera funciona sem problemas. No entanto, aqui, ele não apenas quebra os aplicativos que o utilizam, mas também quebrapulsoáudio. Quando a câmera está conectada, todos os meus dispositivos de áudio desaparecem das configurações.

Sistema

estou a usarUbuntu 21.04;
Versão do kernel -5.11.0-34-genérico

Especificações do dispositivo/driver:


Dispositivo USB( lsusb):

Bus 001 Device 008: ID 04fc:6333 Sunplus Technology Co., Ltd Siri A9 UVC chipset

Especificações 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

Por fim, detalhes da câmera 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

Responder1

Muitos problemas de acesso a dispositivos podem ser resolvidos através de alterações nos membros do grupo.

Especificamente, se ls -l mostrar que as permissões do grupo (o segundo " rwx" trigêmeo) são " rw" (por exemplo, " -rw-rw----"), então, adicionar-se ao grupo que possui o dispositivo concederá rwacesso.

Veja como:

device="/dev/whatever"
sudo adduser $USER $(stat -c "%G" $device)

Isso permite que você seja membro do grupo que pode usar rwo dispositivo,mas há mais um passo.

Para tornar todos os seus processos membros do novo grupo, efetue logout e login. As associações ao grupo são configuradas no loginmomento.

Para criar um único processo no novo grupo (para teste, antes do logout/login):

newgrp $(stat -c "%G" $device)  

ou apenas digite o nome do grupo. Ver man newgrp.

informação relacionada