On Sun, Apr 25, 2021 at 08:54:20PM +0300, Арам Абовян wrote: > thanks for the previous answer. I also get the error. > > > When I applied the following few lines in IDLE Python GUI: > > import usb.core > > dev = usb.core.find(idVendor=0x10c4, idProduct=0xea61) > ep = dev[0].interfaces()[0].endpoints()[0] > i = dev[0].interfaces()[0].bInterfaceNumber > dev.reset() > > if dev.is_kernel_driver_active(i): > dev.datach_kernel_driver(i)
The is_kernel_driver_active() and detach_kernel_driver() methods are not implemented by LibUSB on Windows.[1] If you still need to detach the driver, that is, if the current OS driver is not compatible with LibUSB, you must to it manually: the recommended method on Windows is to use Zadig,[2] and suggest you stick with the WinUSB option unless you have a good reason not to. That said, don't replace the driver if you don't need to; you could unintentionally block access to the device from other programs, as well as invite problems from potential corner cases. [1] https://libusb.sourceforge.io/api-1.0/group__libusb__dev.html#ga1cabd4660a274f715eeb82de112e0779 [2] https://github.com/libusb/libusb/wiki/FAQ#How_to_use_libusb_under_Windows Jonas > > dev.set_configuration() > eaddr = ep.bEndpointAddress > > r = dev.read(eaddr, 1024) > > print(r) > > > I have got the following response : > Traceback (most recent call last): > File "C:\Users\Администратор\Desktop\davis\main.py", line 17, in <module> > if dev.is_kernel_driver_active(i): > File > "C:\Users\Администратор\Desktop\davis\venv\lib\site-packages\usb\core.py", > line 1098, in is_kernel_driver_active > return self._ctx.backend.is_kernel_driver_active( > File > "C:\Users\Администратор\Desktop\davis\venv\lib\site-packages\usb\backend\libusb1.py", > line 915, in is_kernel_driver_active > return > bool(_check(self.lib.libusb_kernel_driver_active(dev_handle.handle, > File > "C:\Users\Администратор\Desktop\davis\venv\lib\site-packages\usb\backend\libusb1.py", > line 600, in _check > raise NotImplementedError(_strerror(ret)) > NotImplementedError: Operation not supported or unimplemented on this > platform > > > чт, 22 апр. 2021 г., 15:36 Jonas Malaco via pyusb-users < > pyusb-users@lists.sourceforge.net>: > > > On Thu, Apr 22, 2021 at 01:38:58PM +0300, Арам Абовян wrote: > > > ---------- Forwarded message --------- > > > От: Aram Abovyan <abovyan.ae...@yandex.ru> > > > Date: чт, 22 апр. 2021 г., 13:37 > > > Subject: > > > To: abovanara...@gmail.com <abovanara...@gmail.com> > > > > > > > > > I am very new to PyUSB and any help from PyUSB experts will be highly > > > appreciated. . > > > > > > When I applied the following few lines in IDLE Python GUI, > > > --------------------------------------------------------------- > > > > > > import os > > > os.environ['PYUSB_DEBUG'] = 'debug'import usb.core > > > usb.core.find() > > > > > > ---------------------------------------------------------------- > > > > > > I have got the following response : > > > > > > ======================= ======================= > > > > > > > > > > > > 2021-04-22 10:29:59,680 > > DEBUG:usb.backend.libusb1:_LibUSB.__init__(<WinDLL > > 'C:\Windows\system32\libusb-1.0.dll', handle 6b600000 at 0x3dc53fd250>) > > > 2021-04-22 10:29:59,688 INFO:usb.core:find(): using backend > > "usb.backend.libusb1" > > > 2021-04-22 10:29:59,688 > > DEBUG:usb.backend.libusb1:_LibUSB.enumerate_devices() > > > 2021-04-22 10:30:02,122 > > DEBUG:usb.backend.libusb1:_LibUSB.get_device_descriptor(<usb.backend.libusb1._Device > > object at 0x0000003DC73C5DC0>) > > > 2021-04-22 10:30:02,123 > > DEBUG:usb.backend.libusb1:_LibUSB._finalize_object() > > > > > > > > > > > > I have googled that, but did not understand much from the serach- > > > results. > > > > There is absolutely nothing wrong here. > > > > You enabled PYUSB_DEBUG, and called usb.core.find(). > > > > The default is for find() to find (at most) a single USB device, which, > > according to the debug output, it did (even though it appears that you > > omitted the IDLE output that looks something like `<DEVICE ID ffff:ffff > > on Bus 001 Address 001>`). > > > > Maybe you wanted to store the device returned by find() somewhere? > > > > Also, generally speaking, you either want to find one of a specific device > > usb.core.find(idVendor=<...>, idProduct=<...>) > > or all devices (optionally also filtering by idVendor and/or idProduct) > > usb.core.find(find_all=True) > > usb.core.find(find_all=True, idVendor=<...>) > > usb.core.find(find_all=True, idVendor=<...>, idProduct=<...>) > > but rarely do you need a single randomly picked device. > > > > My suggestion is for you to (continue to) follow the PyUSB tutorial: > > https://github.com/pyusb/pyusb/blob/master/docs/tutorial.rst > > > > Thanks, > > Jonas > > > > > > > > > > > What am I missing out? > > > > > > > _______________________________________________ > > > pyusb-users mailing list > > > pyusb-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/pyusb-users > > > > > > > > _______________________________________________ > > pyusb-users mailing list > > pyusb-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/pyusb-users > > > _______________________________________________ > pyusb-users mailing list > pyusb-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/pyusb-users _______________________________________________ pyusb-users mailing list pyusb-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pyusb-users