Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-04-16 19:47:21

  silelis - Użytkownik

silelis
Użytkownik
Zarejestrowany: 2010-05-27

PROBLEM: libusb requires write access to USB device nodes.

Cześć,

Zaczynam bawić się pythonem i piszę (zaczynam pisać program) przy użyciu libusb, pyusb i chipu FT232r.

Program na razie wygląda następująco:

import usb.core
import usb.util

myVendorId = 0x0403
myProductId = 0x6001

dev = usb.core.find(idVendor=myVendorId, idProduct=myProductId) #tu wpisac dane czhipu docelowego

if dev is None:
    raise ValueError('Device not found')

dev.set_configuration()
test = dev.read(0x81,8)
print "res: ",test

i przy jego odpaleniu pojawia mi się komunikat:

Evaluating 16 lines of code...
libusb couldn't open USB device /dev/bus/usb/002/002: Permission denied.
libusb requires write access to USB device nodes.
Traceback (most recent call last):
  File "/usr/local/lib/wingide3.2/src/debug/tserver/_sandbox.py", line 14, in <module>
  File "/usr/local/lib/python2.6/dist-packages/usb/core.py", line 530, in set_configuration
    self._ctx.managed_set_configuration(self, configuration)
  File "/usr/local/lib/python2.6/dist-packages/usb/core.py", line 91, in managed_set_configuration
    self.managed_open()
  File "/usr/local/lib/python2.6/dist-packages/usb/core.py", line 70, in managed_open
    self.handle = self.backend.open_device(self.dev)
  File "/usr/local/lib/python2.6/dist-packages/usb/_debug.py", line 52, in do_trace
    return f(*args, **named_args)
  File "/usr/local/lib/python2.6/dist-packages/usb/backend/libusb10.py", line 446, in open_device
    _check(_lib.libusb_open(dev.devid, byref(handle)))
  File "/usr/local/lib/python2.6/dist-packages/usb/backend/libusb10.py", line 357, in _check
    raise USBError(_str_error[retval.value])
usb.core.USBError: Access denied (insufficient permissions)

Chodzi oczywiście o prawa dostepu do USB (zapewne udev), których nie umiem skonfigurować.

Może ktoś mi pomóc?

Ostatnio edytowany przez silelis (2011-04-16 19:48:33)

Offline

 

#2  2011-04-16 19:58:11

  NIC - Członek DUG

NIC
Członek DUG
Skąd: Wrocław
Zarejestrowany: 2006-12-25
Serwis

Re: PROBLEM: libusb requires write access to USB device nodes.

Poniższy wpis zapewni uprawniania każdemu do każdego urządzenia USB.

----------------------------------------vim /etc/udev/99-usbforall.rules
SUBSYSTEMS=="usb", MODE="0777"
----------------------------------------

Potrzeba jeszcze uaktualnić stan [[udev]]a by zmiany zaczęły być wykonywane:
----------------------------------------bash
udevadm control --reload-rules
udevadm trigger
----------------------------------------

PS. 666 powinno w zupełności wystarczyć :) To wyżej to fragment z mojej wiedzówki :) Jeśli to komputer domowy, czasem nie warto bawić się w jakieś grupy i inne takie :)


Stronka-dom: http://titek.victorygames.pl
Jabber: nic@jabster.pl
Hobby: kompilowanie Linuksa, Bluetooth
Dystrybucja: żadna, bliski krewny LFS, składak

Offline

 

#3  2011-04-16 22:11:50

  silelis - Użytkownik

silelis
Użytkownik
Zarejestrowany: 2010-05-27

Re: PROBLEM: libusb requires write access to USB device nodes.

Zbyt wiele się nie zmieniło.

Po dokonaniu wskazanewj przez Ciebie zmiany mam komunikat:

Evaluating 14 lines of code...
Traceback (most recent call last):
  File "/usr/local/lib/wingide3.2/src/debug/tserver/_sandbox.py", line 12, in <module>
  File "/usr/local/lib/python2.6/dist-packages/usb/core.py", line 530, in set_configuration
    self._ctx.managed_set_configuration(self, configuration)
  File "/usr/local/lib/python2.6/dist-packages/usb/core.py", line 92, in managed_set_configuration
    self.backend.set_configuration(self.handle, cfg.bConfigurationValue)
  File "/usr/local/lib/python2.6/dist-packages/usb/_debug.py", line 52, in do_trace
    return f(*args, **named_args)
  File "/usr/local/lib/python2.6/dist-packages/usb/backend/libusb10.py", line 455, in set_configuration
    _check(_lib.libusb_set_configuration(dev_handle, config_value))
  File "/usr/local/lib/python2.6/dist-packages/usb/backend/libusb10.py", line 357, in _check
    raise USBError(_str_error[retval.value])
usb.core.USBError: Resource busy

Offline

 

#4  2011-04-16 22:53:00

  NIC - Członek DUG

NIC
Członek DUG
Skąd: Wrocław
Zarejestrowany: 2006-12-25
Serwis

Re: PROBLEM: libusb requires write access to USB device nodes.

Ależ dużo się zmieniło. Teraz dostęp do urządzenia masz, ale już coś z niego korzysta. Sprawdź co takiego:
Może
# fuser -h #  -m             pokazanie procesów używających podanych systemów plików
fuser -m /dev/bus/usb/002/002
ps -p $PID
ps -p $PID
...
Tylko prawidłową ścieżkę trzeba, a te raczej są zmienne [wkładanie/wykładanie]

PS. Może też sprawdzić to programem "lsof", którego nie mam, więc nie doradzę jak go użyć :)
PS 2. A czasem urządzenia nie trzeba otworzyć (prawdopodobnie to jest tu) i zamknąć (tego nie widzę)? Ewentualnie wyciągnąć i wsadzić urządzenie USB jeszcze raz.


Stronka-dom: http://titek.victorygames.pl
Jabber: nic@jabster.pl
Hobby: kompilowanie Linuksa, Bluetooth
Dystrybucja: żadna, bliski krewny LFS, składak

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)