Ένα από τα απαραίτητα στοιχεία όταν εργάζεστε σε ενσωματωμένα έργα Linux είναι η πρόσβαση στη συσκευή σας μέσω της διεπαφής σειριακής κονσόλας. Για αυτό, ο υπολογιστής στον οποίο αναπτύσσετε ένα ενσωματωμένο σύστημα πρέπει να διαθέτει σειριακή θύρα. Ωστόσο, πολύ λίγοι υπολογιστές σήμερα διαθέτουν σειριακή θύρα και γι' αυτό χρησιμοποιούμε μετατροπείς USB σε σειριακό αντ' αυτού.
Στο τέλος, θα έχετε μια λεπτομερή κατανόηση του τι είναι οι σειριακές κονσόλες και πώς λειτουργούν στο Linux.
Ρύθμιση του μετατροπέα USB σε σειριακό
Σχεδόν κάθε σειριακός μετατροπέας USB που μπορείτε να βρείτε στην αγορά αναγνωρίζεται αυτόματα από το Linux. Συνδέστε οποιονδήποτε μετατροπέα USB στον υπολογιστή σας και χρησιμοποιήστε το dmesg εντολή για να μάθετε το όνομα αρχείου της συσκευής.
dmesg
Στο παραπάνω παράδειγμα, βλέπετε το VirtualBox στην ενότητα κατασκευαστή, καθώς ο κεντρικός υπολογιστής είναι μια διανομή Linux που εκτελείται στο VirtualBox. Εδώ, το όνομα του κατασκευαστή θα αλλάξει ανάλογα με τον μετατροπέα που χρησιμοποιείτε. Μπορείτε επίσης να δείτε ότι ο σειριακός μετατροπέας που χρησιμοποιείτε είναι συνδεδεμένος στο σύστημα με ένα όνομα, όπως π.χ
ttyUSB0.Μπορείτε να χρησιμοποιήσετε τον σειριακό μετατροπέα που αναγνωρίζεται από το σύστημά σας μέσω του αρχείου της συσκευής /dev/ttyUSB0. Ανάλογα με τη διανομή που χρησιμοποιείτε, το αρχείο της συσκευής δημιουργείται αυτόματα κάτω από το /dev καταλόγου, που δείχνει κύριους, δευτερεύοντες και τύπους συσκευών. Για τους σειριακούς μετατροπείς USB, το σχήμα ονομασίας είναι συνήθως ttyUSB0, ttyUSB1, και ttyUSBX για κάθε ταυτόχρονη μετάφραση.
Εάν αφαιρέσετε και επανατοποθετήσετε τον σειριακό μετατροπέα USB ενώ χρησιμοποιείται από μια εφαρμογή, το σύστημα εκδίδει έναν νέο αριθμό στη συσκευή.
Εξουσιοδότηση πρόσβασης σε σειριακές συσκευές
Τα προεπιλεγμένα δικαιώματα πρόσβασης των προσαρτημένων αρχείων συσκευής μετατροπέα USB είναι συνήθως τα εξής:
ls -l /dev/ttyUSB0
# Έξοδος
cw-rw 1 root dialout 188, 46 Ιουλίου 17 15:34 /dev/ttyUSB0
Εξετάζοντας την παραπάνω έξοδο, μπορείτε να πείτε:
- Το γράμμα ντο στην αρχή της γραμμής υποδηλώνει ότι πρόκειται για μια συσκευή που βασίζεται σε χαρακτήρες
- Ο κάτοχος του αρχείου είναι ο χρήστης root και ο χρήστης έχει προνόμια ανάγνωσης και εγγραφής
- Ο κάτοχος της ομάδας του αρχείου είναι ο dialout η ομάδα και οι χρήστες που περιλαμβάνονται σε αυτήν την ομάδα έχουν επίσης δικαιώματα ανάγνωσης και εγγραφής
- Οι υπόλοιποι χρήστες δεν έχουν δικαιώματα ανάγνωσης και εγγραφής στο αρχείο
Εάν είστε συνδεδεμένος αυτήν τη στιγμή ως κανονικός χρήστης, ο οποίος δεν είναι μέλος της ομάδας κλήσης, δεν μπορείτε να διαβάσετε και να γράψετε στον σειριακό μετατροπέα USB. Για να λύσετε αυτό το πρόβλημα, πρέπει είτε να κάνετε τον τρέχοντα χρήστη μέλος της ομάδας κλήσης είτε να την επεξεργαστείτε udev αρχεία κανόνων στο σύστημά σας.
Μπορείτε να χρησιμοποιήσετε την πρώτη τεχνική για ευκολία. Για να ξεκινήσετε, χρησιμοποιήστε το ταυτότητα εντολή για να προσδιορίσετε σε ποιες ομάδες ανήκει ο χρήστης σας:
ταυτότητα
Προσθέστε τον χρήστη σας στην ομάδα χρησιμοποιώντας το πρόσθεσε χρήστη ή usermod εντολή:
# Για το Fedora
sudo usermod -aG κλήση USERNAME# Για το Debian
sudo adduser USERNAME dialout
# Για Αρχ
sudo usermod -a -G uucp USERNAME
Η ιδιότητα μέλους της ομάδας η διαδικασία έχει πλέον ολοκληρωθεί. Ωστόσο, το σύστημα ελέγχει τις πληροφορίες μέλους ομάδας κατά το πρώτο βήμα σύνδεσης σε γραφικές περιόδους σύνδεσης και στη συνέχεια τις παρέχει σε όλες τις διεργασίες που εκτελούνται.
Ως αποτέλεσμα, πρέπει να αποσυνδεθείτε από την τρέχουσα περίοδο λειτουργίας γραφικών και, στη συνέχεια, να συνδεθείτε ξανά ή επανεκκινήστε το μηχάνημά σας για να τεθούν σε ισχύ οι τροποποιήσεις. Θα έχετε πρόσβαση ανάγνωσης/εγγραφής στη συσκευή σειριακού μετατροπέα μετά την ολοκλήρωση αυτής της λειτουργίας.
Πώς να συνδεθείτε σε σειριακές κονσόλες στο Linux
Όταν χρειάζεστε πρόσβαση σε υπολογιστή ή κονσόλα δικτύου, μπορείτε να ανατρέξετε σε εφαρμογές σειριακής κονσόλας. Συνήθως, χρειάζεστε πρόσβαση μέσω SSH για να το κάνετε. Ωστόσο, από άποψη λογισμικού και υλικού, σε ορισμένες περιπτώσεις, είναι επίσης δυνατή η πρόσβαση στην κονσόλα χρησιμοποιώντας μόνο σειριακές θύρες.
Αυτού του είδους τα παραδείγματα θα βρείτε πιο συχνά σε παλαιότερους υπολογιστές. Παρακάτω είναι μερικές από τις καλύτερες εφαρμογές σειριακής κονσόλας που θα λειτουργήσουν για εσάς.
Χρησιμοποιώντας το Minicom
Μπορείτε να εγκαταστήσετε το Minicom, μια παλιά αλλά ακόμα λειτουργική εφαρμογή στο σύστημά σας ως εξής:
# Σε Fedora, CentOS και RHEL
sudo yum εγκαθιστώ minicom# Σε Debian και Ubuntu
sudo apt-παίρνω εγκαταστήστε το minicom
# Στο Arch Linux
sudo snap εγκαθιστώ minicom
Όταν εκκινείτε την εφαρμογή για πρώτη φορά, θα προσπαθήσει να ανοίξει ένα αρχείο συσκευής όπως π.χ /dev/modem από προεπιλογή. Τερματίζει όταν δεν μπορεί να βρει το αρχείο. Για να ξεπεράσετε αυτό το πρόβλημα, μπορείτε να ξεκινήσετε απευθείας την οθόνη ρυθμίσεων της εφαρμογής με το -μικρό παράμετρος:
minicom -s
Μπορείτε να ορίσετε το όνομα της συσκευής πατώντας το ΕΝΑ και την ταχύτητα της σειριακής θύρας πατώντας το μι κλειδί. Στη συνέχεια, όταν βγείτε με Εξοδος, μπορείτε να χρησιμοποιήσετε την αντίστοιχη σειριακή θύρα.
Ενώ βρίσκεστε στην κύρια οθόνη της εφαρμογής, μπορείτε να επιστρέψετε στην οθόνη διαμόρφωσης με Ctrl + A + O, βγείτε από την εφαρμογή με Ctrl + A + X, ενεργοποιήστε τη λειτουργία αναδίπλωσης γραμμής με Ctrl + A + Wκαι λάβετε βοήθεια με άλλες συντομεύσεις με Ctrl + A + Z.
Χρησιμοποιώντας το GTKTerm
Το Minicom χρησιμοποιείται γενικά από προχωρημένους χρήστες Linux και ως εκ τούτου, δεν συνιστάται για αρχάριους. Οι νεοεισερχόμενοι στο Linux μπορούν να εγκαταστήσουν το GTKTerm, έναν εξομοιωτή γραφικών σειριακών τερματικών για Linux. Μπορείτε να εγκαταστήσετε την εφαρμογή στο σύστημά σας χρησιμοποιώντας τις ακόλουθες εντολές:
# Σε Fedora, CentOS και RHEL
sudo dnf -y εγκαθιστώ gtkterm# Σε Debian και Ubuntu
sudo apt-παίρνω εγκαταστήστε το gtkterm
# Στο Arch Linux
yay -S gtkterm
Όταν εκκινήσετε την εφαρμογή, θα πρέπει να ορίσετε το όνομα της συσκευής και τις παραμέτρους ταχύτητας μέσω του Διαμόρφωση > Θύρα μενού ως εξής:
Αποθηκεύστε τις ρυθμίσεις ως προεπιλογή για να διευκολύνετε τη μετέπειτα χρήση.
Χρήση οθόνης
Εάν είστε εξοικειωμένοι με την οθόνη για διαχείριση πολλαπλών τερματικών, θα ξέρετε ότι μπορείτε να τη χρησιμοποιήσετε και για πρόσβαση σε σειριακή θύρα. Ακολουθούν οι εντολές για να το εγκαταστήσετε:
# Σε Fedora, CentOS και RHEL
sudo dnf -y εγκαθιστώ οθόνη# Σε Debian, Ubuntu και Linux Mint
sudo apt-παίρνω -y οθόνη εγκατάστασης
# Χρησιμοποιήστε το Snap για άλλες διανομές
sudo snap εγκαθιστώ οθόνη --κλασσικός
Μετά την εγκατάσταση, μπορείτε να εκτελέσετε μια εντολή όπως αυτή για να συνδεθείτε σε μια σειριακή κονσόλα:
οθόνη /dev/ttyUSB0 115500
Τώρα μπορείτε να δημιουργήσετε μια σύνδεση σειριακής θύρας στο Linux
Η δυνατότητα πρόσβασης στο σύστημα Linux χρησιμοποιώντας τη σειριακή θύρα είναι μια πολύ χρήσιμη δυνατότητα, ειδικά όταν δεν θέλετε να συνδέσετε μια οθόνη στο SBC (Session Border Controller).
Εφόσον η εξουσιοδότηση της σειριακής κονσόλας είναι ενσωματωμένη στον πυρήνα του Linux τη στιγμή της μεταγλώττισης, θα πρέπει να έχετε τουλάχιστον μια βασική κατανόηση του πυρήνα του Linux και της λειτουργίας του.