Suite à mon article précédant ou mon Raspberry Pi communique avec une Arduino Leonardo grâce à la lib libusb… j’ai voulu lancer mon programme avec un utilisateur non root et j’obtiens l’erreur suivante :
libusb couldn't open USB device /dev/bus/usb/002/005: Permission denied
Après quelques recherches sur Internet :
- http://ubuntuforums.org/showthread.php?t=1939231
- https://groups.google.com/forum/#!msg/ultra-cheap-sdr/bNn5naF4nwg/u_FjO7xC3rcJ
- https://wiki.archlinux.org/index.php/Map_Custom_Device_Entries_with_udev
Je me rends compte que le problème vient de Udev qui crée le périphérique lors du branchement avec un accès en écriture uniquement pour le root. Pour pallier ce problème une solution simple et de créer une règle UDEV pour changer la création du périphérique à la volée. Il existe déjà beaucoup de documentation sur UDEV et je n’ai pas l’intention de faire du copier-coller 😉
Voilà la règle ajoute dans mon cas pour changer les permissions du périphérique Arduino Leonardo :
pi@raspberrypi /var/www $ sudo cat /etc/udev/rules.d/10-arduinoLeo.rules SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="8036", MODE:="0777"
Fini les problèmes 😉
Bonus : Protéger le site web par mot de passe (serveur lighttpd) :
http://www.cyberciti.biz/tips/lighttpd-setup-a-password-protected-directory-directories.html