如何解决在 T2 Macbook Pro 上看不到所有带有 PyUSB 和 libusb 的 USB 设备
我一直在使用 PyUSB 和 libusb 来处理我的 USB 设备。在底层,PyUSB 使用 libusb-1.0.24.dylib
访问所有 USB 设备。这很好用,但我在使用它来查看我的网络摄像头时遇到了问题。事实上,我什至无法为我的网络摄像头获取 USB 描述符,这让我感到惊讶。
我有一台配备 T2 芯片的 Macbook Pro 2019。当我在系统信息中查找我的 USB 设备时,我知道所有内部 USB 设备似乎都在 T2 芯片后面:
深入研究 ioreg
命令,我可以清楚地看到这些设备是 USB 并且是可见的:
% ioreg -c IOUSBDevice -r
[...]
+-o FaceTime HD Camera (Built-in)@80200000 <class AppleUSBDevice,id 0x1000005$
| {
| "kUSBSerialNumberString" = "CC2948501XLHNW1BM"
| "bDeviceClass" = 239
| "bDeviceSubClass" = 2
| "iSerialNumber" = 3
当我尝试使用 PyUSB 获取我的 USB 设备列表时,它似乎无法识别 T2 芯片上的任何内容:
import usb.core
import usb.util
for bus in usb.busses():
for device in bus.devices:
if device != None:
usbDevice = usb.core.find(idVendor=device.idVendor,idProduct=device.idProduct)
print(usbDevice)
因此我得到了一些设备:我看到一些位于 T2 芯片后面的 HID 设备,但没有看到我的网络摄像头。同样,我使用了 py-libusb 中的示例代码,它也不会从 T2 芯片返回任何内容,除了 HID 设备。
我不认为 T2 芯片挡住了摄像头:首先 OpenCV2 找到我的网络摄像头没有问题,如果我使用 Parallels Desktop 并将摄像头分配给 Windows,我可以在 Windows 上运行 PyUSB 代码和查看我的网络摄像头 USB 描述符。所以看起来这真的是mac和T2芯片上的libusb。
我尝试请求我的相机的确切 idVendor 和 idProduct,但仍然没有返回。我尝试使用 print(usb.busses())
进行挖掘,但除了某个位置外,我找不到任何地方都很空。
我知道网络摄像头是由系统提供的 UVC 驱动程序拍摄的,我不需要自己编程,但这不是重点。谁能告诉我这是怎么回事:为什么我看不到 USB 描述符?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。