usb.core.USBError:[错误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

解决方法

像这样设置 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",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