i am trying to use pyusb to access a device that has a native kernel driver on 
macOS. to do this I have to first call `detach_kernel_driver`, which I must do 
from a privileged (root) process. but I want to spend as little time as possible 
as root, just detaching the kernel driver and then deescalating. unfortunately, it 
seems like after the kernel driver has been disconnected, the device no longer 
appears to pyusb *except when running as root*. so, once the kernel driver has 
been detached, only root can see the device. this stops happening once the kernel 
driver has been reattached, but then i can't use the device. the device is missing 
from `.list()` and can't be seen at all. i ran with `LIBUSB_DEBUG=4 
PYUSB_DEBUG=debug` and instead of this (running as root): [ 0.002519] [00fec7c5] 
libusb: debug [darwin_get_cached_device] finding cached device for sessionID 
0x17289fa31f8c [ 0.002528] [00fec7c5] libusb: debug [darwin_get_cached_device] 
parent sessionID: 0x17289f4633fd [ 0.002530] [00fec7c5] libusb: debug 
[darwin_get_cached_device] matching sessionID/locationID 0x17289fa31f8c/0x1110000 
against cached device with sessionID/locationID 0x17289f4633fd/0x1100000 [ 
0.002531] [00fec7c5] libusb: debug [darwin_get_cached_device] caching new device 
with sessionID 0x17289fa31f8c [ 0.002643] [00fec7c5] libusb: debug 
[darwin_cache_device_descriptor] cached device descriptor: [ 0.002645] [00fec7c5] 
libusb: debug [darwin_cache_device_descriptor] bDescriptorType: 0x01 [ 0.002646] 
[00fec7c5] libusb: debug [darwin_cache_device_descriptor] bcdUSB: 0x0200 [ 
0.002647] [00fec7c5] libusb: debug [darwin_cache_device_descriptor] bDeviceClass: 
0x00 [ 0.002648] [00fec7c5] libusb: debug [darwin_cache_device_descriptor] 
bDeviceSubClass: 0x00 [ 0.002649] [00fec7c5] libusb: debug 
[darwin_cache_device_descriptor] bDeviceProtocol: 0x00 [ 0.002649] [00fec7c5] 
libusb: debug [darwin_cache_device_descriptor] bMaxPacketSize0: 0x40 [ 0.002650] 
[00fec7c5] libusb: debug [darwin_cache_device_descriptor] idVendor: 0x05ac [ 
0.002651] [00fec7c5] libusb: debug [darwin_cache_device_descriptor] idProduct: 
0x1266 [ 0.002651] [00fec7c5] libusb: debug [darwin_cache_device_descriptor] 
bcdDevice: 0x0001 [ 0.002652] [00fec7c5] libusb: debug 
[darwin_cache_device_descriptor] iManufacturer: 0x01 [ 0.002653] [00fec7c5] 
libusb: debug [darwin_cache_device_descriptor] iProduct: 0x02 [ 0.002654] 
[00fec7c5] libusb: debug [darwin_cache_device_descriptor] iSerialNumber: 0x03 [ 
0.002655] [00fec7c5] libusb: debug [darwin_cache_device_descriptor] 
bNumConfigurations: 0x02 [ 0.003150] [00fec7c5] libusb: debug 
[darwin_check_configuration] active config: 1, first config: 1 [ 0.003155] 
[00fec7c5] libusb: debug [process_new_device] allocating new device in context 
0x11de0db40 for with session 0x17289fa31f8c [ 0.003158] [00fec7c5] libusb: debug 
[process_new_device] found device with address 2 port = 1 parent = 0x6000007ec600 
at 0x600000decaba i get this when running as user: [ 0.002641] [00febf6c] libusb: 
debug [darwin_get_cached_device] finding cached device for sessionID 
0x17289fa31f8c [ 0.002652] [00febf6c] libusb: debug [darwin_get_cached_device] 
parent sessionID: 0x17289f4633fd [ 0.002654] [00febf6c] libusb: debug 
[darwin_get_cached_device] matching sessionID/locationID 0x17289fa31f8c/0x1110000 
against cached device with sessionID/locationID 0x17289f4633fd/0x1100000 [ 
0.002655] [00febf6c] libusb: debug [darwin_get_cached_device] caching new device 
with sessionID 0x17289fa31f8c [ 0.002696] [00febf6c] libusb: debug 
[darwin_device_from_service] set up plugin for service retry: out of resources [ 
0.002733] [00febf6c] libusb: debug [darwin_device_from_service] set up plugin for 
service retry: out of resources [ 0.002759] [00febf6c] libusb: debug 
[darwin_device_from_service] set up plugin for service retry: out of resources [ 
0.002783] [00febf6c] libusb: debug [darwin_device_from_service] set up plugin for 
service retry: out of resources [ 0.002806] [00febf6c] libusb: debug 
[darwin_device_from_service] set up plugin for service retry: out of resources [ 
0.002811] [00febf6c] libusb: debug [darwin_device_from_service] could not set up 
plugin for service: out of resources this is annoying because i wanted to use a 
privileged helper to detach the kernel driver, but this makes me have to run my 
entire GUI as root!! thanks :> (i also sent this in as a GitHub discussion, but 
i'm not sure if that forum is active? so I forwarded it here too. I hope that is 
not too much of a problem :)
_______________________________________________
pyusb-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pyusb-users

Reply via email to