Questo succede perché l’IDE non ha i permessi sufficienti per accedere al dispositivo Arduino.
Permessi
Possiamo guardare il dispositivo Arduino eseguendo
ls -l /dev/ttyACM*
in un terminale. L’output appare per lo più come questo:
crw-rw---- 1 root dialout 166, 0 Des 14 09:47 /dev/ttyACM0
Lo ‘0’ alla fine di ‘ACM’ potrebbe essere diverso, e potrebbero essere elencate più voci, ma le parti su cui dobbiamo concentrarci sono la stringa di lettere e trattini davanti, e i due nomi root
e dialout
.
Il primo nome root
è il proprietario del dispositivo, e dialout
è il gruppo proprietario del dispositivo.
Le lettere e i trattini davanti, che iniziano dopo ‘c’, rappresentano i permessi per il dispositivo per utente: – La prima terzina rw-
significa che il proprietario (root
) può leggere e scrivere su questo dispositivo – La seconda terzina rw-
significa che i membri del gruppo proprietario (dialout
) possono leggere e scrivere su questo dispositivo – La terza terzina ---
significa che gli altri utenti non hanno alcun permesso (cioè nessun altro può leggere e scrivere sul dispositivo)
In breve, nessuno tranne root
e i membri di dialout
possono fare nulla con Arduino; poiché non stiamo eseguendo l’IDE come root
o come membro di dialout
, l’IDE non può accedere ad Arduino a causa di permessi insufficienti.
Aggiungere al gruppo di dialout
Ma aspetta! Prima, quando abbiamo lanciato l’IDE, ci siamo aggiunti al gruppo dialout
!
Perciò perché l’IDE non ha ancora il permesso di accedere ad Arduino?
Le modifiche apportate dal prompt non vengono applicate finché non ci disconnettiamo e ci riconnettiamo, quindi dobbiamo salvare il nostro lavoro, disconnetterci e riconnetterci.
Dopo aver effettuato nuovamente il login e lanciato l’IDE di Arduino, dovrebbe essere disponibile l’opzione Serial Port; cambiala e dovremmo essere in grado di caricare il codice su Arduino.