LibUSB ErrNo 16资源忙 - Magstripe读者

时间:2016-10-23 20:01:14

标签: python raspberry-pi pyusb libusb-1.0

我正在使用rPi 2B,我已插入Magstripe读卡器(使用PS / 2转USB转换器)。我使用lsusb确定了正确的供应商/产品ID,然后使用以下使用libusb连接到阅读器的代码。此代码检查is_kernel_driver_active,这似乎是此问题的主要错误来源。代码来自github上的keyboard_alike项目。

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]

以root身份执行时,我在Resource busy的调用中得到self._device.set_configuration()

我已经运行了所有更新,但我不确定接下来要尝试什么。

1 个答案:

答案 0 :(得分:0)

我想我已经使用这个post解决了这个问题 - 看起来问题是启动时USBHID驱动程序声称Magstripe Reader。使用detach_kernel_driver()无法解决此问题。

我在/etc/udev/rules.d中创建了一条规则,以防止加载此设备。我现在正处于一个新问题,但这似乎纠正了最初的问题。

我的规则看起来像这样:     #Magstripe阅读器应该被禁用     SUBSYSTEM ==" usb",ATTRS {idVendor} ==" 04b4",ATTRS {idProduct} ==" 2324",ATTR {authorized} =&#34 ; 0"