Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 在T2 Macbook Pro上看不到所有带有PyUSB和libusb的USB设备_Macos_Libusb_Pyusb - Fatal编程技术网

Macos 在T2 Macbook Pro上看不到所有带有PyUSB和libusb的USB设备

Macos 在T2 Macbook Pro上看不到所有带有PyUSB和libusb的USB设备,macos,libusb,pyusb,Macos,Libusb,Pyusb,一段时间以来,我一直在使用PyUSB和libusb来处理我的USB设备。在引擎盖下,PyUSB使用libusb-1.0.24.dylib访问所有USB设备。这工作得很好,但我在使用它查看我的网络摄像头时遇到了问题。事实上,我甚至无法获得我的网络摄像头的USB描述符,这让我感到惊讶 我有一台带有T2芯片的Macbook Pro 2019。当我在系统信息中查找USB设备时,我知道所有内部USB设备似乎都位于T2芯片后面: 深入查看ioreg命令,我可以清楚地看到这些设备是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

因此我得到了一些设备:我看到一些隐藏设备在T2芯片后面,但不是我的网络摄像头。类似地,我使用了来自的示例代码,除了HID设备外,它也不会从T2芯片返回任何内容

我不认为T2芯片会阻塞摄像头:首先,OpenCV2在查找我的网络摄像头时没有问题,如果我使用Parallels Desktop并将摄像头分配给Windows,我可以在Windows上运行PyUSB代码并查看我的网络摄像头USB描述符。看起来这是mac和T2芯片上的libusb

我试图要求确切的idVendor和idProduct我的相机,但仍然没有返回。我试着用
print(usb.busses())
进行挖掘,但除了一个位置外,我没有发现任何其他类是空的

我知道网络摄像头是由系统提供的UVC驱动程序拍摄的,我不需要自己编程,但这不是重点。谁能告诉我发生了什么:为什么我看不到USB描述符

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)