permission wird abgelehnt
Verfasst: Mittwoch 28. Oktober 2015, 12:55
Moin,
ich habe pyusb verwenden wollen und es geschah folgendes:
demliegt der folgende code zugrunde:
Der Code kommt aus der docu von pyusb. Mir ist nicht klar, wer hier wem welche Permission nicht erteilt und wie ich das ändern kann.
System ist Linux.
Gruss
Robert
ich habe pyusb verwenden wollen und es geschah folgendes:
Code: Alles auswählen
>>> runfile('/home/rfr/workspace/python/.temp.py', wdir=r'/home/rfr/workspace/python')
DEVICE ID 1a86:5512 on Bus 003 Address 005 =================
bLength : 0x12 (18 bytes)
bDescriptorType : 0x1 Device
bcdUSB : 0x110 USB 1.1
bDeviceClass : 0xff Vendor-specific
bDeviceSubClass : 0x0
bDeviceProtocol : 0x2
bMaxPacketSize0 : 0x8 (8 bytes)
idVendor : 0x1a86
idProduct : 0x5512
bcdDevice : 0x304 Device 3.04
iManufacturer : 0x0
iProduct : 0x0
iSerialNumber : 0x0
bNumConfigurations : 0x1
CONFIGURATION 1: 96 mA ===================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x2 Configuration
wTotalLength : 0x27 (39 bytes)
bNumInterfaces : 0x1
bConfigurationValue : 0x1
iConfiguration : 0x0
bmAttributes : 0x80 Bus Powered
bMaxPower : 0x30 (96 mA)
INTERFACE 0: Vendor Specific ===========================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x0
bAlternateSetting : 0x0
bNumEndpoints : 0x3
bInterfaceClass : 0xff Vendor Specific
bInterfaceSubClass : 0x1
bInterfaceProtocol : 0x2
iInterface : 0x0
ENDPOINT 0x82: Bulk IN ===============================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x82 IN
bmAttributes : 0x2 Bulk
wMaxPacketSize : 0x20 (32 bytes)
bInterval : 0x0
ENDPOINT 0x2: Bulk OUT ===============================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x2 OUT
bmAttributes : 0x2 Bulk
wMaxPacketSize : 0x20 (32 bytes)
bInterval : 0x0
ENDPOINT 0x81: Interrupt IN ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x81 IN
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x8 (8 bytes)
bInterval : 0x1
EINS
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 540, in runfile
execfile(filename, namespace)
File "/home/rfr/workspace/python/.temp.py", line 17, in <module>
dev.set_configuration(0x1)
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 799, in set_configuration
self._ctx.managed_set_configuration(self, configuration)
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 127, in managed_set_configuration
self.managed_open()
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 105, in managed_open
self.handle = self.backend.open_device(self.dev)
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 722, in open_device
return _DeviceHandle(dev)
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 600, in __init__
_check(_lib.libusb_open(self.devid, byref(self.handle)))
File "/usr/local/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 13] Access denied (insufficient permissions)
>>> Code: Alles auswählen
import usb.core
import usb.util
# find our device
dev = usb.core.find(idVendor=0x1a86, idProduct=0x5512)
print dev
# was it found?
if dev is None:
raise ValueError('Device not found')
print 'EINS'
# set the active configuration. With no arguments, the first
# configuration will be the active one
dev.set_configuration(0x1)
print 'ZWEI'
# get an endpoint instance
cfg = dev.get_active_configuration()
intf = cfg[(0,0)]
ep = usb.util.find_descriptor(
intf,
# match the first OUT endpoint
custom_match = \
lambda e: \
usb.util.endpoint_direction(e.bEndpointAddress) == \
usb.util.ENDPOINT_OUT)
assert ep is not None
# write the data
ep.write('test')System ist Linux.
Gruss
Robert