Утверждено устройство PyUSB, detach_kernel_driver return Entity Not Found

Я пытаюсь делать массовые чтения и записи с USB-устройства на Ubuntu с помощью PyUSB. Тем не менее, я был безуспешным в том, чтобы зайти так далеко.

import usb.core import usb.util dev = usb.core.find(idVendor=0xXXXX,idProduct=0xYYYY) if dev is None: raise ValueError('Device not found.') try: dev.detach_kernel_driver(0) except: print "exception dev.detach_kernel_driver(0)" pass dev.set_configuration() print "all done" 

Это простой сценарий, который я использую. Я создал /etc/udev/rules.d/40-basic-rules.rules который содержит

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",SYSFS{idVendor}=="XXXX" , SYSFS{idProduct}=="YYYY", MODE="0666"

для моего соответствующего устройства.

Запуск сценария, как и у root, вызывает usb.core.USBError: [Errno 16] Resource busy Ошибка usb.core.USBError: [Errno 16] Resource busy поскольку dev.detach_kernel_driver(0) usb.core.USBError: [Errno 2] Entity not found исключение usb.core.USBError: [Errno 2] Entity not found

В dmesg я вижу эти сообщения,

 [ 638.007886] usb 1-1: usbfs: interface 1 claimed by usb-storage while 'python' sets config #1 [ 643.425802] usb 1-1: usbfs: interface 1 claimed by usb-storage while 'python' sets config #1 [ 647.957932] usb 1-1: usbfs: interface 1 claimed by usb-storage while 'python' sets config #1 

Любые мысли о том, что мне не хватает, чтобы получить доступ к этому устройству?

One Solution collect form web for “Утверждено устройство PyUSB, detach_kernel_driver return Entity Not Found”

Ваша проблема, как и моя, заключается в том, что вам нужно отделить ядро ​​от каждого интерфейса, прежде чем вы сможете set_configuration() . Вот код, который я использую прямо сейчас (включая некоторые строительные леса) для подключения к аудиоустройству USB:

 import usb.core import usb.util scarlet = usb.core.find(idVendor = 0x1235) # Focusrite if not scarlet: print"No Scarlet" c = 1 for config in scarlet: print 'config', c print 'Interfaces', config.bNumInterfaces for i in range(config.bNumInterfaces): if scarlet.is_kernel_driver_active(i): scarlet.detach_kernel_driver(i) print i c+=1 scarlet.set_configuration() 
  • Список всех USB-накопителей в Linux
  • Обнаружение USB Python
  • libusb-1.x VS openUsb
  • PyUSB dev.set_configuration ()
  • Обнаружение вставленного USB в Windows
  • как можно понять пируб
  • Как я могу общаться с этим устройством с помощью pyusb?
  • OUT Конечная точка недоступна pyusb
  •  
    Interesting Posts for Van-Lav

    Многопроцессорный пул внутри процесса Время ожидания

    Интерполяция одного временного ряда на другой в пандах

    Python Многопроцессорный параллелизм с использованием Менеджера, пула и общего списка не работает

    Краткое руководство по использованию gnuplot с python?

    Регулярное выражение Python для разбора HTML (BeautifulSoup)

    форматирование строки sql-запроса в sqlite3

    Можно ли совместить многострочную строку в python без использования re.DOTALL?

    Python – как пройти проверку подлинности с помощью Google Analytics от AWS Lambda?

    Обнаружение и запись звука с помощью python

    Как вы развертываете приложения django для Windows?

    NumPy: последствия использования 'np.save ()' с 'allow_pickle = False'

    Почему десятичная библиотека python не возвращает указанное число знаковых цифр для некоторых входов

    Как добавить соответствующие элементы из нескольких списков чисел?

    могут ли мои программы получить доступ к более чем 4 ГБ памяти?

    Создание списков с циклами в Python

    Python - лучший язык программирования в мире.