加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – pyusb:无法设置配置

发布时间:2020-12-16 23:16:08 所属栏目:Python 来源:网络整理
导读:我正在尝试制作一个脚本(在 Linux上),可以打开或关闭鼠标中的灯光. 这是我到目前为止的代码: import usb.coreimport usb.utilimport sysinterface = 0dev = usb.core.find(idVendor=0x1532,idProduct=0x0017)def main(): if dev is None: print "device not
我正在尝试制作一个脚本(在 Linux上),可以打开或关闭鼠标中的灯光.

这是我到目前为止的代码:

import usb.core
import usb.util
import sys
interface = 0
dev = usb.core.find(idVendor=0x1532,idProduct=0x0017)

def main():

        if dev is None:
            print "device not found"

        else:
        print "device found"
        if dev.is_kernel_driver_active(interface) is True:
            print "but we need to detach kernel driver"
            dev.detach_kernel_driver(interface)
            print "claiming device"
            usb.util.claim_interface(dev,interface)


            print "release claimed interface"
            usb.util.release_interface(dev,interface)
            print "now attaching the kernel driver again"
            dev.attach_kernel_driver(interface)
            print "all done"
return 0

if __name__ == '__main__':
    main()

这工作正常,但如果我尝试做:dev.set_configuration()

在claim_interface(dev,interface)之后

该脚本返回错误:usb.core.USBError:资源忙

在分离内核驱动程序后,为什么它仍然很忙?

解决方法

不确定这是否会解决,但是你的鼠标设置正确的udev规则是什么?我和朋友为我做的自定义设备有类似的问题,我通过添加如下规则解决了这个问题:
SUBSYSTEM !="usb_device",ACTION !="add",GOTO="device_rules_end"
SYSFS{idVendor} =="1532",SYSFS{idProduct} =="0017",SYMLINK+="mydevice"
MODE="0666",OWNER="<your-username-here>",GROUP="root"
LABEL="device_rules_end"

在我的/etc/udev/rules.d文件夹中.

HTH!

编辑:在添加规则之前,尝试使用sudo运行脚本.如果它将以这种方式工作,几乎可以肯定是一个权限设置将由上述规则修复.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读