[Risolto] Arduino funziona solo con permessi di root

(1/3) > >>

spider-net:
Salve a tutti, sono nuovo del forum e anche di Arduino.

Come da titolo ho un problema con Arduino, ovvero, dopo aver seguito il wiki, per installare e configurare la mia scheda arduino (Luigino 328), ho un piccolo problema: avviando normalmente l'IDE, non riesco a caricare nessuno sketch, ottenendo questo errore: Porta seriale '/dev/ttyUSB0' non trovata., mentre avviando l'ide tramite Code:

sudo arduino
tutto funziona alla perfezione.
Per maggiori informazioni vi posto l'output dei seguenti comandi:
Code:

lspci | grep USB
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03)
00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03)
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)

Code:

dmesg
[ ... ]
[   81.556736] usb 5-1: new full-speed USB device number 2 using uhci_hcd
[   81.798633] usbcore: registered new interface driver usbserial
[   81.798673] usbcore: registered new interface driver usbserial_generic
[   81.798702] USB Serial support registered for generic
[   81.798742] usbserial: USB Serial Driver core
[   81.807131] usbcore: registered new interface driver ftdi_sio
[   81.807217] USB Serial support registered for FTDI USB Serial Device
[   81.807407] ftdi_sio 5-1:1.0: FTDI USB Serial Device converter detected
[   81.807481] usb 5-1: Detected FT232RL
[   81.807486] usb 5-1: Number of endpoints 2
[   81.807491] usb 5-1: Endpoint 1 MaxPacketSize 64
[   81.807496] usb 5-1: Endpoint 2 MaxPacketSize 64
[   81.807500] usb 5-1: Setting MaxPacketSize 64
[   81.810294] usb 5-1: FTDI USB Serial Device converter now attached to ttyUSB0
[   81.810331] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver

Code:

ls -ld /dev/ttyUSB*
crw-rw---- 1 root uucp 188, 0 27 giu 10.48 /dev/ttyUSB0

Code:

groups
lp wheel uucp network video audio optical storage power users

contenuto di ~/.arduino/preferences.txt:
Code:

export.application.fullscreen=false
preproc.imports.list=java.applet.*,java.awt.Dimension,java.awt.Frame,java.awt.event.MouseEvent,java.awt.event.KeyEvent,java.awt.event.FocusEvent,java.awt.Image,java.io.*,java.net.*,java.text.*,java.util.*,java.util.zip.*,java.util.regex.*
editor.font.macosx=Monaco,plain,10
preproc.web_colors=true
export.application.platform=true
update.check=true
update.id=3101164539915605654
editor.indent=true
serial.stopbits=1
serial.databits=8
editor.font=Monospaced,plain,12
editor.window.height.default=600
run.options.memory=false
editor.divider.size=0
editor.caret.blink=true
preproc.color_datatype=true
export.applet.separate_jar_files=false
preproc.output_parse_tree=false
run.window.bgcolor=#DFDFDF
console.lines=4
upload.using=bootloader
console.error.file=stderr.txt
run.options.memory.maximum=256
editor.tabs.expand=true
upload.verify=true
editor.window.height.min=290
editor.keys.home_and_end_travel_far=false
editor.languages.current=
board=atmega328
console=true
run.present.exclusive.macosx=true
serial.parity=N
editor.tabs.size=2
console.length=500
serial.port=/dev/ttyUSB0
run.options=
console.auto_clear=true
update.last=1340739941654
editor.window.width.min=400
run.present.exclusive=false
export.application.platform.linux=true
editor.keys.home_and_end_travel_far.macosx=true
run.present.bgcolor=#666666
export.application.platform.windows=true
target=arduino
run.options.memory.initial=64
editor.keys.alternative_cut_copy_paste=true
editor.window.width.default=500
console.output.file=stdout.txt
preproc.substitute_unicode=true
run.present.stop.color=#cccccc
editor.external=false
last.screen.height=768
editor.keys.shift_backspace_is_delete=true
last.sketch.count=0
export.delete_target_folder=true
last.sketch0.path=
preproc.substitute_floats=true
editor.keys.alternative_cut_copy_paste.macosx=false
browser.linux=mozilla
editor.invalid=false
serial.debug_rate=9600
browser=mozilla
sketchbook.path=/home/spider-net/sketchbook
export.application.stop=true
editor.divider.size.windows=2
preproc.enhanced_casting=true
run.display=1
launcher=xdg-open
platform.auto_file_type_associations=true
editor.antialias=false
programmer=arduino:avrispmkii
preproc.save_build_files=false
last.screen.width=1366
export.application.platform.macosx=true

ArchLinux i686 3.4.4-2-ARCH aggiornato a ieri.

leo72:
Se hai Arch probabilmente sei incappato nel problema di filesystem
http://www.archlinux.it/forum/viewtopic.php?f=15&t=14723

Per risolvere, devi dare i permessi di accesso a /run/lock al tuo utente.
Dai da terminale:
Code:

sudo chmod o+rwx /run/lock

C'è un problema: ad ogni avvio il sistema rende quella cartella accessibile solo a root. Devi perciò farlo in modo permanente, per cui dopo dai
Code:

sudo nano /etc/rc.local


ed aggiungi in fondo al file queste righe:

Code:

#permessi per montare le schede Arduino
chmod o+rwx /run/lock

spider-net:
Ti ringrazio!  :*
Mi hai risolto un problema che mi assillava da tempo.
Grazie ancora.

leo72:
Quote from: spider-net on June 27, 2012, 06:52:13 am

Ti ringrazio!  :*
Mi hai risolto un problema che mi assillava da tempo.
Grazie ancora.

Era tempo che tu chiedessi  ;)

leo72:
Riapro questa discussione per aggiornare lo stato dei permessi di Arduino con il nuovo sistema di gestione dei servizi e demoni systemd.

Questo sistema sostituisce quello vecchio basato su init. Si può scegliere una configurazione mista init/systemd ma è preferibile passare al solo systemd. Se si passa ad una configurazione pura col solo systemd, gli utenti che hanno creato il file rc.local per eseguire dei comandi al boot avranno dei problemi, dato che systemd ignora quel file.
Questo vale anche per chi, come me, ha inserito lì il comando per dare i permessi per poter accedere alle porte seriali agli utenti normali al boot.

Per far funzionare nuovamente il file rc.local bisogna "ragionare" con la nuova logica di systemd, che prevede dei "servizi" da avviare al boot. Dobbiamo quindi creare un servizio che esegua quel file. Per far ciò, portiamoci in /etc/systemd/system e creiamo un nuovo file denominato rc-local.service:
Code:

cd /etc/systemd/system
sudo nano rc-local.service

Ora copiamo in quel file il seguente testo:
Code:

[Unit]
Description=/etc/rc.local Compatibility

[Service]
Type=oneshot
ExecStart=/etc/rc.local
TimeoutSec=0
StandardInput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.targe


Diamogli poi i permessi per essere eseguito ed assegnamolo a root (così non lo possiamo modificare come utente normale):
Code:

sudo chmod a+x rc-local.service
sudo chown root:root rc-local.service

Adesso attiviamo il servizio in modo che venga eseguito al prossimo riavvio:
Code:

sudo systemctl enable rc-local.service

Riavviamo e poi controlliamo che tutto sia filato liscio aprendo l'IDE di Arduino. Se in "Strumenti" la voce "Porta seriale" è selezionabile e compare l'elenco delle porte seriali tra cui scegliere quella a cui è collegato l'Arduino, allora è andato tutto bene.

EDIT:
controllate anche che il file /etc/rc.local abbia i permessi per essere eseguito. Nel caso, date un
Code:

sudo chmod +x /etc/rc.local
per sicurezza

Navigation

[0] Message Index

[#] Next page