7

マウスのライトをオンまたはオフにできるスクリプトを (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: Resource busy

カーネル ドライバーをデタッチした後もまだビジー状態になるのはなぜですか?

4

2 に答える 2

4

私もこの問題を抱えていました。最初に「set_configuration」を実行してからインターフェイスを要求すると、コードはうまく機能します。これは、ここで提案されている順序でもあります: http://libusb.sourceforge.net/api-1.0/caeats.html

于 2011-12-20T21:35:45.897 に答える