προσπαθω να περασω κωδικα στο arduino και λαμβανω αυτο το μυνημα λαθουσavrdude: ser_open(): can't open device "/dev/ttyACM0": Input/output error
Αν και δεν παραθέτεις και πολλές πληροφορίες για το πρόβλημά σου, εικάζω πως είναι θέμα permissions για την συσκευή /dev/ttyACM0
.
Η μία λύση που μπορείς να δοκιμάσεις στα γρήγορα για να δεις αν είναι αυτό, είναι να ανοίξεις ένα terminal και τρέξεις από εκεί το IDE του arduino σαν sudo user. Μετά δοκίμασε να κάνεις upload το πρόγραμμα. (Λογικά θα παίξει)
Μετά η μόνιμη και πιο σωστή λύση είναι να προσθέσεις τον χρήστη σου στο group που μπορεί να βλέπει αυτές τις συσκευές.
Τρέξε
ls -l /dev/ttyACM0
και θα δεις κάτι τέτοιο
crw-rw---- 1 root uucp 166, 0 14. dub 12.44 /dev/ttyACM0
Μετά θα τρέξεις:
sudo usermod -a -G uucp YOUR_USERNAME
Και λογικά θα παίξει.
Να σημειώσω πως κάνω λάθος που δίνω αυτές τις οδηγίες χωρίς να ξέρω άλλες λεπτομέρειες για το σύστημά σου… Ελπίζω να ξέρεις τι κάνεις και να μην προκαλέσεις κάποια “ζημιά” από τις δικές μου οδηγίες (αν δεν είναι αυτό το πρόβλημα που φαντάζομαι)
Υπάρχουν οι εξής πιθανότητες
-
Να μην έκανες σωστή εγκατάσταση του IDE. Όταν το εγκαθιστάς περνάει κάποιους κανόνες στο
udev
ώστε να έχει η συσκευή τα σωστά permissions και τρέχει και έναudevadm trigger
. -
Να μην είσαι μέλος του
dialup
group. Την πρώτη φορά που θα τρέξει το IDE σε ρωτάει συνήθως.
Ανέτρεξε σε οδηγίες της διανομής σου για το αν πρέπει να κάνεις κάτι κατά την εγκατάσταση.
- Απλά να μην είναι η συσκευή στο
/dev/ttyACM0
αλλά σε κάποιο άλλο όπως πχ/dev/ttyACM1
. Δες αν υπάρχει αυτό το αρχείο. Η αν δεν είναι αυθεντικό μπορεί να υπάρχει σαν/dev/ttyUSBx
, δες την τεκμηρίωση του board που έχεις ή δες στα logs ποιο device file δημιουργεί όταν το συνδέεις.
Κάνε ένα ls -l /dev/ttyACM*
και θα πρέπει να δεις κάτι σαν το παρακάτω
crw-rw-r-- 1 root dialout ... /dev/ttyACM0
Με την εντολή id
μπορείς να δεις αν ανήκεις στο dialup
, αν όχι
sudo usermod -a -G dialout $USER
και αμέσως μετά αποσύνδεση.
Σημείωση: Στο Arch ίσως να είναι στην ομάδα uucp
τροποποίησε ανάλογα. Σε ubuntu ίσως να χρειαστεί να αφαιρέσεις το πακέτο modem-manager
.
Update Πρόσεξα ότι το έβαλες στο Arch, άρα η διανομή είναι γνωστή
Το ετρεξΑ με sudo πάλι τα ιδια
Έχω το Manjaro θα δοκιμάσω και τα άλλα όταν είμαι στον υπολογιστή
Η συσκευή μου είναι στο ttyACM0 πως το αλλάζω αυτό έχω Manjaro.ειμαι στην ομάδα uucp αλλά πάλι το ίδιο προβλημα
ακουθησα τις οδηγιες απο εδω https://unix.stackexchange.com/questions/645033/arduino-avrdude-ser-open-cant-open-device-dev-ttyacm1-input-output-err
τωρα το αναγνωριζει αλλα δεν μπορει να κανει up lload αναβοσβηνουν τα λαμπακια χωρισ κανενα αποτελεσμα
Έχεις δηλώσει σωστά το board; Εχεις δοκιμάσει με άλλο καλώδιο, θύρα USB;
ΥΓ: Μην κάνεις διαδοχικές δημοσιεύσεις. Πες ότι έχεις να πεις σε μια δημοσίευση ή διόρθωσε την προηγούμενη
Καλησπέρα!
Το Arduino δε βρίσκεται πάντα στο /dev/ttyACM0
ακόμα και αν λέει ότι είναι εκεί. Δε ξέρω γιατί γίνεται αυτό. Θα πρότεινα να δοκιμάσεις και τα /dev/ttyS0
και /dev/ttyUSB0
. Από προσωπική εμπειρία, μερικές φορές τα βάζει εκεί.
Έβαλα στο grub αυτή την εντολη usbcore.autosuspend=-1
και δουλεψε
Αυτό το νήμα έκλεισε αυτόματα 2 ημέρες μετά την τελευταία απάντηση. Δεν επιτρέπονται πλέον νέες απαντήσεις.