USB 直通连接 Android 模拟器中的 RealSense 摄像头

USB passthrough to connect a RealSense camera in Android Emulator

我想将英特尔实感摄像头 (D455) 连接到我的 android 虚拟设备,android 模拟器上的 运行,这样我就可以调试我的 android使用实感摄像头的APP。

this page上,好像最新的android studio模拟器支持USB passthrough,所以我尝试了以下命令:

./emulator -avd Nexus_6P_API_29 -qemu -usb -device usb-host,vendorid=0x8086,productid=0x0b5c

其中-avd Nexus_6P_API_29指定android虚拟设备的名称,vendoridproductid通过lsusb获得。

模拟器给出以下错误消息(显示 3 次):

qemu-system-x86_64: Warning: speed mismatch trying to attach usb device "Intel(R) RealSense(TM) Depth Ca" ( speed) to bus "usb-bus.0", port "1" (full speed)

模拟器似乎确实找到了设备,但存在“速度不匹配”问题。我在this page上找到了很好的问题解释,说usb-bus对应USB 1.0。由于Realsense摄像头支持usb-3.2,我想我应该用usb-3.0,所以我尝试了以下方法:

./emulator -avd Nexus_6P_API_29 -qemu -usb -device nec-usb-xhci,id=xhci -device usb-host,vendorid=0x8086,productid=0x0b5c

为 usb-3.0 指定 nec-usb-xhci

但是我收到的错误消息是:

qemu-system-x86_64: Warning: speed mismatch trying to attach usb device "Intel(R) RealSense(TM) Depth Ca" ( speed) to bus "xhci.0", port "1" (full+high+super speed)

我注意到,相机的速度显示为(速度)。 (即实际速度,虽然通常应该是(全速)/(高速)/(超速)之一,但为空白。) 我猜速度不匹配问题与这个空白速度有关。有没有人有过类似的经历?提前致谢!

只有 EHCI 已内置在 AVD 的内核中。

我在 XDA 上写了一个小指南,其中包含一些更深入的信息。

您可以阅读更多内容there

如果您的设备可以处理 EHCI,您可以尝试使用:

    -qemu -usb -device usb-ehci,id=ehci -device usb-host,bus=ehci.0,vendorid=0x8086,productid=0x0b5c

否则,请在启用 XHCI 的情况下重新编译内核。 也许还需要一些其他步骤。喜欢给 android.hardware.usb.host

添加权限

更新:22.03.2021 我认为这是(曾经)来自模拟器 qemu 的速度报告问题。现在有了模拟器版本 30.5.3,这个问题就解决了,它适用于我在 EHCI 和 XHCI 上的所有 UVC 标准相机。内置的 Face Time 相机也可用作 USB 连接设备。但是,PlayStore 中只有两个应用程序能够向我展示视频片段。 USB Camera - Connect EasyCap or USB WebCam very smooth and nice footage. UVC Camera / Usb Camera with driver from userspace抖动。