问题

问题

问题

您好,我有一个 Sunplus USB 摄像头 (Siri A9 UVC),我想把它用作 PC 网络摄像头。无论我怎么尝试,它都能在 v4l2 中看到,但会破坏使用它的应用程序。例如,当我切换到 USB 摄像头时,Cheese 会停滞。

作为测试,我使用 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 上(在同一台笔记本电脑上),相机工作正常。然而在这里,它不仅破坏了使用它的应用程序,而且还破坏了脉冲音频。当相机插入电源时,我的所有音频设备都会从设置中消失。

系统

我在用着Ubuntu 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

相关内容