尝试使用 xfreerdp 重定向 USB 网络摄像头时出现 libusb 错误

尝试使用 xfreerdp 重定向 USB 网络摄像头时出现 libusb 错误

使用 xfreerdp 重定向我的罗技网络摄像头/麦克风时遇到困难。尽管 udev 规则应该允许我的 plugdev 组(我是其中的成员)访问该设备,但我不断收到来自 libusb 的访问错误。我可以正常加载麦克风或音频直通,但这仍然失败。有人知道我在这里遗漏了什么吗?

xfreerdp 输出的错误

user@ubuntu$ xfreerdp /loglevel:DEBUG /usb:id,dev:046d:0892 [...truncated...]
[21:37:42:540] [21547:21548] [INFO][com.freerdp.channels.rdpsnd.client] - [static] Loaded fake backend for rdpsnd
[21:37:42:540] [21547:21548] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel urbdrc
[21:37:42:542] [21547:21548] [INFO][com.freerdp.channels.urbdrc.client] - VID: 0x046D, PID: 0x0892
[21:37:42:542] [21547:21548] [ERROR][com.freerdp.channels.urbdrc.client] - libusb_open: error LIBUSB_ERROR_ACCESS[-3]
[21:37:42:542] [21547:21548] [ERROR][com.freerdp.channels.urbdrc.client] - **libusb_open [b=0x01,p=0x02,a=0x18,VID=0x046D,PID=0x0892]: error LIBUSB_ERROR_ACCESS[-3]**

下面包含一些有关版本、udev 规则、设备输出的基本信息。我今天添加了 90-usbperms.rules 文件,重新加载了 udev 规则,拔下/重新插入了网络摄像头,但仍然出现上述错误。我在 Windows 10 主机上的策略中启用/禁用了一些条目,以确保我的主机没有阻止此处建议的功能:https://stackoverflow.com/questions/33719489/how-to-enable-usb-redirection-in-windows-10/46628854

user@ubuntu$ cat /etc/upstream-release/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu Focal Fossa"

user@ubuntu$ dpkg -l libusb*
||/ Name               Version          Architecture Description
+++-==================-================-============-=====================================
ii  libusb-0.1-4:amd64 2:0.1.12-32      amd64        userspace USB programming library
ii  libusb-1.0-0:amd64 2:1.0.23-2build1 amd64        userspace USB programming library
ii  libusb-1.0-0:i386  2:1.0.23-2build1 i386         userspace USB programming library

user@ubuntu$ lsusb | grep Orb
Bus 001 Device 024: ID 046d:0892 Logitech, Inc. OrbiCam

user@ubuntu$ xfreerdp /version
This is FreeRDP version 2.2.0 (n/a)

user@ubuntu$ cat /etc/udev.rules.d/90-usbperms.rules
SUBSYSTEM=="usb",GROUP="plugdev",MODE="0666"
SUBSYSTEM=="usb",ATTRS{idVendor}=="046d",ATTRS{idProduct}=="0892",GROUP="plugdev",TAG+="uaccess"SYMLINK+="webcam"

user@ubuntu$ grep plugdev /etc/group
plugdev:x:46:user

任何帮助将非常感激。

答案1

你的 udev 规则(最后一行)有拼写错误

用户@ubuntu$ cat /etc/udev.rules.d/90-usbperms.rules SUBSYSTEM=="usb",GROUP="plugdev",MODE="0666" SUBSYSTEM=="usb",ATTRS{idVendor}=="046d",ATTRS{idProduct}=="0892",GROUP="plugdev",TAG+="uaccess"SYMLINK+="网络摄像头"

首先纠正它-应该是:

TAG+="uaccess", SYMLINK+="网络摄像头"

然后通过符号链接检查设备是否存在以及它具有哪些权限和所有权:

$ ls -al /dev/webcam
crw-rw-rw-+ 1 root plugdev 189, 0 12-25 03:17 /dev/webcam

*检查之前你可能需要重新加载 udev 规则

udevadm control --reload-rules && udevadm trigger

相关内容