Eines der unverzichtbaren Elemente bei der Arbeit an Embedded-Linux-Projekten ist der Zugriff auf Ihr Gerät über die serielle Konsolenschnittstelle. Dazu muss der Rechner, auf dem Sie ein Embedded System entwickeln, über eine serielle Schnittstelle verfügen. Heutzutage haben jedoch nur sehr wenige Computer einen seriellen Anschluss, und deshalb verwenden wir stattdessen USB-zu-Seriell-Konverter.
Am Ende haben Sie ein detailliertes Verständnis dafür, was serielle Konsolen sind und wie sie unter Linux funktionieren.
Einrichten des USB-zu-Seriell-Konverters
Fast jeder USB-Seriell-Konverter, den Sie auf dem Markt finden können, wird von Linux automatisch erkannt. Schließen Sie einen beliebigen USB-Konverter an Ihren Computer an und verwenden Sie den dmesg Befehl, um den Dateinamen des Geräts herauszufinden.
dmesg
Im obigen Beispiel sehen Sie VirtualBox im Herstellerbereich, da der Host eine Linux-Distribution ist, die auf VirtualBox ausgeführt wird. Hier ändert sich der Herstellername je nach verwendetem Konverter. Sie können auch sehen, dass der von Ihnen verwendete serielle Konverter mit einem Namen an das System angehängt ist, z
ttyUSB0.Über die Gerätedatei können Sie den von Ihrem System erkannten seriellen Konverter verwenden /dev/ttyUSB0. Je nach verwendeter Distribution wird die Gerätedatei automatisch unter der erstellt /dev Verzeichnis, das Haupt-, Neben- und Gerätetypen anzeigt. Für USB-Seriell-Konverter ist das Namensschema normalerweise ttyUSB0, ttyUSB1, und ttyUSBX für jede Simultanübersetzung.
Wenn Sie den USB-Seriell-Konverter entfernen und wieder einsetzen, während er von einer Anwendung verwendet wird, gibt das System eine neue Nummer an das Gerät aus.
Zugriffsberechtigung auf seriellen Geräten
Die Standard-Zugriffsrechte von gemounteten USB-Konverter-Gerätedateien sind normalerweise wie folgt:
ls -l /dev/ttyUSB0
# Ausgabe
crw-rw 1 root dialout 188, 46. Juli 17 15:34 /dev/ttyUSB0
Wenn Sie die obige Ausgabe untersuchen, können Sie feststellen:
- Der Buchstabe c am Anfang der Zeile zeigt an, dass es sich um ein zeichenbasiertes Gerät handelt
- Der Dateibesitzer ist der Root-Benutzer und der Benutzer hat Lese- und Schreibrechte
- Der Gruppeneigentümer der Datei ist die Hinauswählen Gruppe und Benutzer, die dieser Gruppe angehören, haben ebenfalls Lese- und Schreibberechtigungen
- Die restlichen Benutzer haben keine Lese- und Schreibrechte auf die Datei
Wenn Sie derzeit als normaler Benutzer angemeldet sind, der kein Mitglied der Dialout-Gruppe ist, können Sie nicht auf den USB-Seriell-Konverter lesen und schreiben. Um dieses Problem zu lösen, müssen Sie entweder den aktuellen Benutzer zu einem Mitglied der Dialout-Gruppe machen oder die Gruppe bearbeiten udev Regeldateien auf Ihrem System.
Sie können die erste Technik der Einfachheit halber verwenden. Verwenden Sie zu Beginn die Ich würde Befehl, um festzustellen, zu welchen Gruppen Ihr Benutzer gehört:
Ich würde
Fügen Sie Ihren Benutzer mithilfe von zur Gruppe hinzu Nutzer hinzufügen oder Benutzermod Befehl:
# Für Fedora
sudo usermod -aG dialout BENUTZERNAME# Für Debian
sudo adduser BENUTZERNAME dialout
# Für Arch
sudo usermod -a -G uucp BENUTZERNAME
Die Gruppenzugehörigkeit Verfahren ist nun abgeschlossen. Das System prüft jedoch die Gruppenmitgliedschaftsinformationen während des ersten Anmeldeschritts in grafischen Sitzungen und stellt sie dann allen laufenden Prozessen zur Verfügung.
Daher müssen Sie sich von der aktuellen grafischen Sitzung abmelden und dann wieder anmelden oder Starten Sie Ihre Maschine neu damit die Änderungen wirksam werden. Nach Abschluss dieses Vorgangs haben Sie Lese-/Schreibzugriff auf das serielle Konvertergerät.
So stellen Sie eine Verbindung zu seriellen Konsolen unter Linux her
Wenn Sie Zugriff auf einen Computer oder eine Netzwerkkonsole benötigen, können Sie auf serielle Konsolenanwendungen verweisen. Normalerweise benötigen Sie dazu einen Zugriff über SSH. Aus Software- und Hardwaresicht ist es jedoch in einigen Fällen auch möglich, nur über serielle Schnittstellen auf die Konsole zuzugreifen.
Sie finden diese Art von Beispielen am häufigsten auf älteren Computern. Unten sind einige der besten seriellen Konsolenanwendungen, die für Sie funktionieren werden.
Mit Minicom
Sie können Minicom, eine alte, aber noch funktionierende Anwendung, wie folgt auf Ihrem System installieren:
# Auf Fedora, CentOS und RHEL
sudo lecker Installieren minicom# Auf Debian und Ubuntu
sudo apt-erhalten minikom installieren
# Auf Arch Linux
sudo snap Installieren minicom
Wenn Sie die Anwendung zum ersten Mal starten, versucht sie, eine Gerätedatei wie z /dev/modem standardmäßig. Es wird beendet, wenn es die Datei nicht finden kann. Um dieses Problem zu umgehen, können Sie den Einstellungsbildschirm der Anwendung direkt mit starten -s Parameter:
minicom -s
Sie können den Gerätenamen festlegen, indem Sie auf drücken EIN und die Geschwindigkeit des seriellen Anschlusses durch Drücken der Taste E Schlüssel. Dann beim Verlassen mit Ausgang, können Sie die entsprechende serielle Schnittstelle verwenden.
Auf dem Hauptbildschirm der Anwendung können Sie mit zum Konfigurationsbildschirm zurückkehren Strg + A + O, beenden Sie die Anwendung mit Strg + A + X, aktivieren Sie mit den Zeilenumbruchmodus Strg + A + W, und erhalten Sie Hilfe zu anderen Tastenkombinationen mit Strg + A + Z.
Verwenden von GTKTerm
Minicom wird im Allgemeinen von fortgeschrittenen Linux-Benutzern verwendet und ist daher für Anfänger nicht zu empfehlen. Linux-Neulinge können GTKTerm installieren, einen grafischen seriellen Terminal-Emulator für Linux. Sie können die Anwendung mit den folgenden Befehlen auf Ihrem System installieren:
# Auf Fedora, CentOS und RHEL
sudo dnf -y Installieren gtkterm# Auf Debian und Ubuntu
sudo apt-erhalten gtkterm installieren
# Auf Arch Linux
yay -S gtkterm
Wenn Sie die App starten, müssen Sie den Gerätenamen und die Geschwindigkeitsparameter über einstellen Konfiguration > Port Menü wie folgt:
Speichern Sie die Einstellungen als Standard, um die spätere Verwendung zu erleichtern.
Bildschirm verwenden
Wenn Sie mit dem Bildschirm für die Verwaltung mehrerer Terminals vertraut sind, wissen Sie, dass Sie ihn auch für den Zugriff auf die serielle Schnittstelle verwenden können. Hier sind die Befehle, um es zu installieren:
# Auf Fedora, CentOS und RHEL
sudo dnf -y Installieren Bildschirm# Auf Debian, Ubuntu und Linux Mint
sudo apt-erhalten -y Installationsbildschirm
# Verwenden Sie Snap für andere Distributionen
sudo snap Installieren Bildschirm --klassisch
Nach der Installation können Sie einen Befehl wie diesen ausführen, um eine Verbindung zu einer seriellen Konsole herzustellen:
screen /dev/ttyUSB0 115500
Jetzt können Sie eine serielle Port-Verbindung unter Linux herstellen
Der Zugriff auf Ihr Linux-System über die serielle Schnittstelle ist eine sehr nützliche Funktion, insbesondere wenn Sie keinen Monitor an den SBC (Session Border Controller) anschließen möchten.
Da die Autorisierung für die serielle Konsole zum Zeitpunkt der Kompilierung in den Linux-Kernel integriert ist, sollten Sie zumindest ein grundlegendes Verständnis des Linux-Kernels und seiner Funktionsweise haben.