2016-10-23 27 views
0

Я использую rPi 2B, к которому я подключил устройство считывания карт Magstripe (с использованием конвертера PS/2 на USB). Я определил правильный идентификатор поставщика/продукта с помощью lsusb, а затем воспользуюсь следующим кодом, который использует libusb для подключения к считывателю. Этот код делает проверку для is_kernel_driver_active, которая, по-видимому, является основным источником ошибок для этой проблемы. Код находится от проекта keyboard_alike на github.LibUSB ErrNo 16 Resource Busy - считыватель Magstripe

def initialize(self): 
    self._device = usb.core.find(idVendor=self.vendor_id, idProduct=self.product_id) 

    if self._device is None: 
     raise DeviceException('No device found, check vendor_id and product_id') 

    if self._device.is_kernel_driver_active(self.interface): 
     try: 
      self._device.detach_kernel_driver(self.interface) 
     except usb.core.USBError as e: 
      raise DeviceException('Could not detach kernel driver: %s' % str(e)) 

    try: 
     self._device.set_configuration() 
     if self.should_reset: 
      self._device.reset() 
    except usb.core.USBError as e: 
     raise DeviceException('Could not set configuration: %s' % str(e)) 

    self._endpoint = self._device[0][(0, 0)][0] 

Когда выполняется как корень, я получаю Resource busy на призыв к self._device.set_configuration().

Я запустил все обновления, и я не уверен, что делать дальше.

ответ

0

Я думаю, что исправил это с помощью этого post. Похоже, проблема в том, что драйвер Magstripe был востребован драйвером USBHID при запуске. Эта проблема не разрешается с использованием detach_kernel_driver().

Я создал правило в /etc/udev/rules.d, чтобы это устройство не загружалось. Теперь я перехожу к новой проблеме, но, похоже, она исправила исходную проблему.

Мое правило выглядит следующим образом: # Magstripe читатель должен быть отключен Subsystem == "USB", AttrS {idVendor} == "04b4", ATTRS {idProduct} == "2324", ATTR {разрешено} = "0"

 Смежные вопросы

  • Нет связанных вопросов^_^