我正在使用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()
。
我已经运行了所有更新,但我不确定接下来要尝试什么。
答案 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"