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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
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
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 :)
Offline
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
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.
Offline
Strony: 1