Ez azért történik, mert az IDE nem rendelkezik elegendő jogosultsággal az Arduino eszközhöz való hozzáféréshez.
Jogosultságok
Az Arduino eszközt megnézhetjük, ha a
ls -l /dev/ttyACM*
terminálban futtatjuk. A kimenet többnyire így néz ki:
crw-rw---- 1 root dialout 166, 0 Des 14 09:47 /dev/ttyACM0
A ‘ACM’ végén lévő ‘0’ lehet más, és több bejegyzés is szerepelhet, de a részek, amelyekre koncentrálnunk kell, az az előtte lévő betűsor és kötőjelek, valamint a két név root
és dialout
.
Az első név root
az eszköz tulajdonosa, a dialout
pedig az eszköz tulajdonosi csoportja.
A ‘c’ után kezdődő betűk és kötőjelek az eszköz felhasználói jogosultságait jelölik: – Az első hármas rw-
azt jelenti, hogy a tulajdonos (root
) olvashat és írhat az eszközre – A második hármas rw-
azt jelenti, hogy a tulajdonos csoport (dialout
) tagjai olvashatnak és írhatnak az eszközre – A harmadik hármas ---
azt jelenti, hogy a többi felhasználónak egyáltalán nincs jogosultsága (vagyis senki más nem olvashat és írhat az eszközre)
Röviden, a root
és a dialout
tagjain kívül senki nem tehet semmit az Arduinóval; mivel nem root
-ként vagy a dialout
tagjaként futtatjuk az IDE-t, az IDE nem tud hozzáférni az Arduinóhoz a nem megfelelő jogosultságok miatt.
Adjuk hozzá magunkat a dialout csoporthoz
De várjunk csak! Korábban, amikor elindítottuk az IDE-t, hozzáadtuk magunkat a dialout
csoporthoz!
Az IDE-nek tehát miért nincs még mindig jogosultsága az Arduino eléréséhez?
A prompt által végrehajtott módosítások nem érvényesek, amíg ki nem jelentkezünk és újra be nem jelentkezünk, ezért el kell mentenünk a munkánkat, ki kell jelentkeznünk és újra be kell jelentkeznünk.
Miután újra bejelentkezünk és elindítjuk az Arduino IDE-t, a Serial Port opciónak elérhetőnek kell lennie; változtassuk meg ezt, és máris tudunk kódot feltölteni az Arduinóra.
Meg kell tudnunk tölteni a kódot az Arduinóra.