PyUSB поставил проблему с настройкой - PullRequest
0 голосов
/ 31 августа 2018

Я хочу сделать скрипт Python, чтобы изменить конфигурацию по умолчанию для смартфона Samsung. Я использую библиотеку PyUSB для получения конфигурации. Я не могу переключиться на вторую конфигурацию.

Код следующий

# -*- coding:Utf-8 -*-
import sys
import usb.core
import usb.util

def main():
    #Recherche d'un Samsung Galaxy
    device = usb.core.find(idVendor=0x04e8, idProduct=0x6860)
    if device is None:
        raise ValueError('No Samsung device')
    #Affiche la configuration
    #print(device)
    cfg = device.get_active_configuration()
    print('*****Before changing*******************')
    print(cfg)
    device.set_configuration(2)
    cfg = device.get_active_configuration()
    print('*****After changing*******************')
    print(cfg)    
#end main

if (__name__ == '__main__'):
    main()
    sys.exit()
#end if

и возвращаемая ошибка

Traceback (most recent call last):
  File "./test_usb.py", line 26, in <module>
    main()
  File "./test_usb.py", line 19, in main
    device.set_configuration(2)
  File "/usr/lib/python2.7/dist-packages/usb/core.py", line 799, in set_configuration
    self._ctx.managed_set_configuration(self, configuration)
  File "/usr/lib/python2.7/dist-packages/usb/core.py", line 128, in managed_set_configuration
    self.backend.set_configuration(self.handle, cfg.bConfigurationValue)
  File "/usr/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 730, in set_configuration
    _check(self.lib.libusb_set_configuration(dev_handle.handle, config_value))
  File "/usr/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 552, in _check
    raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 16] Resource busy

Я изменил /etc/udev/rules.d/00-usb.rules, чтобы установить права для текущего пользователя.

SUBSYSTEM=="usb_device", SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="6860", GROUP="usbusers", MODE="0776"

Спасибо, Джефф

...