Dette sker, fordi IDE ikke har tilstrækkelige tilladelser til at få adgang til Arduino-enheden.
Permissions
Vi kan se på Arduino-enheden ved at køre
ls -l /dev/ttyACM*
i en terminal. Outputtet ser for det meste sådan ud:
crw-rw---- 1 root dialout 166, 0 Des 14 09:47 /dev/ttyACM0
Den “0” i slutningen af “ACM” kan være anderledes, og der kan være flere poster på listen, men de dele, vi skal fokusere på, er bogstavstrengen og stregerne foran og de to navne root
og dialout
.
Det første navn root
er enhedens ejer, og dialout
er enhedens ejergruppe.
Bogstaverne og stregerne foran, der begynder efter “c”, repræsenterer tilladelserne til enheden efter bruger: – Den første triplet rw-
betyder, at ejeren (root
) kan læse og skrive på denne enhed – Den anden triplet rw-
betyder, at medlemmer af ejergruppen (dialout
) kan læse og skrive på denne enhed – Den tredje triplet ---
betyder, at andre brugere slet ingen tilladelser har (hvilket betyder, at ingen andre kan læse og skrive på enheden)
Kort sagt kan ingen andre end root
og medlemmer af dialout
gøre noget med Arduino’en; da vi ikke kører IDE’en som root
eller som medlem af dialout
, kan IDE’en ikke få adgang til Arduino’en på grund af utilstrækkelige tilladelser.
At tilføje dig selv til dialout-gruppen
Men vent! Tidligere, da vi startede IDE’en, tilføjede vi os selv til gruppen dialout
!
Så hvorfor har IDE’en stadig ikke tilladelse til at få adgang til Arduino’en?
De ændringer, som prompten foretager, gælder ikke, før vi logger ud og logger ind igen, så vi er nødt til at gemme vores arbejde, logge ud og logge ind igen.
Når du logger ind igen og starter Arduino IDE, bør indstillingen Seriel port være tilgængelig; ændre den, og vi bør kunne uploade kode til Arduino.