首页 > 解决方案 > usb.core.USBError:[Errno 5] 输入/输出错误

问题描述

描述:尝试使用以下代码读取鼠标数据,但出现如下错误。如果有人遇到过同样的问题,请提供帮助。这样做的目的是我已经从作为 HID 设备连接的设备中读取数据,所以在尝试使用鼠标时。

代码:

import usb.core
import usb.util
import sys
import usb.backend.libusb1

Vendor_ID = 0x0461
Product_ID =0x4E22

dev=usb.core.find(idVendor=Vendor_ID,idProduct=Product_ID)

if dev is None:
    raise ValueError('device not found')
    sys.exit(1)
else:
    print("Device Found")
    usb.util.claim_interface(dev,0)
    dev=usb.core.find(idVendor=Vendor_ID,idProduct=Product_ID)

try:
   dev.set_configuration()
   print ("Configuration set")

except:
  print("configuration not set")

data =dev.read(0x81,4)
print(data)

usb.util.release_interface(dev, 0)

输出:

    Device Found
    Configuration set
    Traceback (most recent call last):
    File "USB_Read.py", line 27, in <module>
    data =dev.read(0x81,4)
    File "C:\Python\lib\site-packages\usb\core.py", line 983, in read
    ret = fn(
    File "C:\Python\lib\site-packages\usb\backend\libusb1.py", line 846, in intr_read
    return self.__read(self.lib.libusb_interrupt_transfer,
    File "C:\Python\lib\site-packages\usb\backend\libusb1.py", line 936, in __read
    _check(retval)
    File "C:\Python\lib\site-packages\usb\backend\libusb1.py", line 595, in _check
    raise USBError(_strerror(ret), ret, _libusb_errno[ret])
    usb.core.USBError: [Errno 5] Input/Output Error

标签: pythonhidlibusbpyusb

解决方案


像这样设置LIBUSB_DEBUG

sudo env LIBUSB_DEBUG=1  python USB_Read.py

您将获得更多可能有助于解决问题的信息。

好吧,我修好了

usb.core.USBError: [Errno 5] Input/Output Error

像这样。转到/etc/udev/rules.d/并创建一个Primax.rules 包含以下内容的文件:

SUBSYSTEM=="usb",        ATTRS{idVendor}=="0461", MODE="0666"
SUBSYSTEM=="usb_device", ATTRS{idVendor}=="0461", MODE="0666"

请注意,您需要将其0461(Primax 的 vendorID 是什么)更改为您的设备。(......或者只是完全踢出那个ATTRS......,部分)

所以在它看起来像这样之前:(注意我的目标是总线 003 设备 022)

cd /dev/bus/usb/003
ls -l

crw-rw-r-- 1 root root 189, 256 18. Mär 15:38 001
c--------- 1 root root 189, 276 18. Mär 15:25 022

使用规则文件更改后(重新插入设备):

crw-rw-r-- 1 root root 189, 256 18. Mär 15:38 001
crw-rw-rw- 1 root root 189, 278 18. Mär 15:56 022

推荐阅读