Cookie
Electronic Team, Inc. uses cookies to personalize your experience on our website. By continuing to use this site, you agree to our cookie policy. Click here to learn more.

Linux-Serielle Schnittstellen – Vollständiger Leitfaden

Nikolai Svarachevsky Nikolai Svarachevsky
Aktualisiert: Aug 4, 2026

Hier erfahren Sie, wie Sie eine Verbindung zu einem seriellen Linux-Gerät herstellen können, sowie eine einfache Möglichkeit, angeschlossene serielle Geräte mit einem Remote-Computer zu verbinden. Als Beispiel verwende ich einen ESC/POS-kompatiblen Belegdrucker.

14-tägige kostenlose Testversion verfügbar
Der Lizenzpreis beginnt bei $259.95
Verfügbar für
USB zu Remotedesktop

Überprüfen Ihrer Ports

Serielle Schnittstellen sind eine Art serielles Gerät. Der Befehl dmesg hilft Ihnen dabei zu sehen, ob ein serielles Gerät vom Betriebssystem erkannt und identifiziert wurde. Wenn ja, wird es in der Ausgabe dieses Befehls aufgeführt.

Da dmesg alle Geräte des Systems auflistet, werden wir die Ausgabe durch grep filtern. Es durchsucht Text nach Zeilen, die das angegebene Schlüsselwort enthalten. Die Namen serieller Schnittstellen unter Linux beginnen mit „ttyS“, daher können wir das als Suchbegriff verwenden. Die Ausgabe von dmesg kann an grep übergeben werden, indem man die beiden Befehle mit einer Pipe (dem Symbol |) verbindet. Außerdem sind Superuser-Rechte erforderlich, daher muss sudo hinzugefügt werden. Der resultierende Befehl sieht so aus:

sudo dmesg | grep tty
dmesg-Suchergebnisse
Die Geräte werden zusammen mit ihren entsprechenden Gerätenamen aufgeführt. Dabei handelt es sich um Dateien in /dev, wie z. B. ttyS0 und ttyS1, die wir später als Argumente für andere Befehle verwenden können, um anzugeben, mit welchem seriellen Port interagiert werden soll. Außerdem kann dmesg auf ein technisches Problem hinweisen, wenn das Gerät überhaupt nicht angezeigt wird.

Wenn Sie USB-zu-Seriell-Adapter verwenden, werden diese als ttyUSB-Geräte angezeigt. Sie können auch in dmesg mit demselben Befehl gefunden werden.

Wichtig: Um die seriellen Ports des Systems verwenden zu können, muss ein Benutzer in der Gruppe dialout sein. Während dies für den ersten Standardbenutzer kein Problem ist, wird es zu einem, wenn versucht wird, als andere Benutzer auf serielle Ports zuzugreifen, also solche, die nach der Installation des Systems erstellt wurden.

Mit anderen Worten: Wenn Sie auf den Fehler „Could not open serial port...“ stoßen, führen Sie den folgenden Befehl aus:

sudo adduser your_user_name dialout

Ersetzen Sie „your_user_name“ durch den Benutzer, der Probleme beim Zugriff auf Ports hat.

Interaktion mit seriellen Geräten

Mit Standarddienstprogrammen

Da serielle Schnittstellen unter Linux durch Dateien repräsentiert werden, können Standardwerkzeuge wie echo und cat verwendet werden, um mit ihnen zu interagieren. stty kann verwendet werden, um die Einstellungen der Schnittstelle zu ändern. Sehen wir uns an, wie jede dieser Anwendungen verwendet wird.

Mit stty können Sie die Baudrate der Schnittstelle, die Anzahl der Datenbits, die Parität, den Handshake-Typ (auch als Flow Control bekannt) und andere Parameter festlegen. Dies kann notwendig sein, um mit einem Gerät oder einer Anwendung zu interagieren, da die Parameter in den meisten Fällen übereinstimmen müssen, damit die Verbindung funktioniert.

Hinweis von Nick:
Ich habe die folgende Demonstration auf Debian 11 (Bullseye) mit einem SP-POS88VMF-Drucker durchgeführt.
Sie können die bereitgestellten Befehle jedoch auch mit einer Nullmodem-Verbindung zwischen zwei seriellen oder USB-zu-Seriell-Ports auf demselben Computer ausprobieren. In diesem Fall müssen Sie den cat-Befehl so anpassen, dass er auf den anderen verbundenen Port lauscht, nicht auf den sendenden.


Verwenden Sie den folgenden Befehl, um die aktuellen Einstellungen Ihrer Schnittstelle aufzulisten:

sudo stty -a -F <your port>
Anzeigen der Einstellungen des Ports mit stty
Und dies ist ein Beispielbefehl, der die Baudrate des ttyS0-Ports auf 9600 setzt, die Datenbits auf 8 setzt und RTS/CTS-Handshaking aktiviert:

sudo stty -F /dev/ttyS0 9600 cs8 crtscts

Wenn die richtigen Einstellungen ausgewählt sind, können wir mit echo Daten an das Gerät senden. Es ist möglich, mit echo einfachen Text an einen seriellen Port zu senden, so:

echo 'TEXT' > /dev/ttyS0

Um dies zu tun, müssen Sie sich jedoch als Superuser anmelden. Dies kann mit dem Befehl „su -“ erfolgen.

In unserem Fall werden spezielle ASCII-Symbole wie ESC und Carriage Return benötigt, um den angeschlossenen Drucker vollständig nutzen zu können. Eine Möglichkeit, dies zu tun, ist die Verwendung von echos Argument -e und Escape-Sequenzen. Eine Escape-Sequenz für ASCII-Zeichen beginnt mit \x, gefolgt von einer hexadezimalen Zahl, die dem Zeichen entspricht.
Zum Beispiel kann das Wort „TEXT“ mit Escape-Sequenzen wie folgt ausgegeben werden:

echo -e '\x54\x45\x58\x54'

Wir werden die folgenden Nachrichten senden:

1B 40 (ESC @, Initialize)
1B 6D (ESC m, Full Cut)
4C 49 4E 45 20 31 ("LINE 1")
1B 21 80 (Enable Underline)
4C 49 4E 45 20 32 ("LINE 2")
0D 0A (CR LF, New Line)
1B 6D (Full Cut)


Das Argument -e wird benötigt, um die hexadezimalen Escape-Sequenzen „\x“ zuzulassen. So sieht es im Terminal und auf dem resultierenden Ausdruck aus:
Druckerbefehle über echo und Ausgabe der Ergebnisse
Während echo zum Senden von Daten über eine serielle Verbindung verwendet werden kann, kann cat zum Empfangen verwendet werden. In unserem Fall wird der Drucker auf Standard-ESC/POS-Anfragen nach Status- und ID-Informationen antworten. Das bedeutet, dass wir die Antworten abfangen müssen. Zuerst starten wir cat, lauschen auf dem Gerät ttyS0 und leiten die Ausgabe in eine Textdatei um:

cat /dev/ttyS0 > examplefile

Die Anwendung muss weiterlaufen, um Daten zu empfangen, daher muss ein neues Terminalfenster oder ein neuer Tab geöffnet werden, um Anfragen an unser Gerät zu senden. Wir verwenden echo, um Folgendes zu senden:

1D 49 31 (Request model ID)
1D 49 32 (Request type ID)
Da die Ausgaben im Hexadezimalformat bereitgestellt werden, ist die direkte cat-Ausgabe, die in „examplefile“ aufgezeichnet wurde, für Menschen nicht lesbar. Stattdessen werden wir die Datei durch hexdump laufen lassen:
Druckeranfrage und -antwort

Gtkterm verwenden

Linux bietet auch serielle Terminals wie minicom und gtkterm, die umfassend mit seriellen Schnittstellen interagieren können, sowohl Eingabe als auch Ausgabe verarbeiten, mehr Formatierungsoptionen bieten und insgesamt vieles einfacher machen.

Als Beispiel probieren wir gtkterm aus. Ähnlich wie stty muss gtkterm mit Kommandozeilenargumenten gestartet werden, um die Verbindungseinstellungen festzulegen, falls die Standardwerte nicht geeignet sind.

Hinweis von Nick:
Während Minicom ein äußerst flexibles Tool ist, machen die komplizierten Bedienelemente es für Anfänger ungeeignet und in einem kurzen Leitfaden schwer abzudecken. Wenn du anfangen möchtest, etwas über Minicom zu lernen, beginne mit seiner Manpage, um nicht verwirrt zu werden, sobald du die App startest.

GTKTerm-Oberfläche
Einige nützliche Optionen umfassen lokales Echo (um die von Ihnen gesendeten Daten auf Ihrer Seite zu duplizieren), Protokollierung, Hexadezimalansicht und das Senden von Hex-Daten. Beachten Sie außerdem die Anzeigen unten rechts – sie zeigen die Zustände der DTR-, RTS-, CD-, DSR- und RI-Signalleitungen – das ist eine weitere Möglichkeit zu sehen, dass das Gerät verbunden und bereit ist, Daten zu empfangen.
Konfigurationsmenü und Handshake-Indikatoren in GTKTerm

Verbindung zu einem seriellen Port in Ihrem lokalen Netzwerk herstellen

In einigen Fällen muss ein serielles Gerät von mehreren Computern gemeinsam genutzt werden, oder Sie möchten eine physische serielle Verbindung zwischen zwei Computern durch eine virtuelle ersetzen. Eines meiner Projekte – Serial to Ethernet Connector – ist eine effiziente Möglichkeit, dies zu erreichen. Zusätzlich dazu, physische Ports in einem lokalen Netzwerk verfügbar zu machen, kann die Anwendung virtuelle Ports erstellen, auf die Anwendungen zugreifen können.

Serial to Ethernet Connector lässt sich schnell einrichten und verfügt über eine Befehlszeilenschnittstelle, die die Integration in einen Terminal-Workflow oder in bash-Skripte erleichtert. Ausführliche Dokumentation, Benutzerhandbücher und Kundenservice-Experten stehen Ihnen zur Hilfe bereit. Außerdem gibt es eine 15-day Free Trial, daher empfehle ich dringend, es auszuprobieren.

So verwenden Sie einen Serial to Ethernet Connector

1
Melden Sie sich für eine kostenlose Testversion auf dieser Seite. Warten Sie, bis der Aktivierungsschlüssel in Ihrem Postfach eintrifft.
Melden Sie sich für eine kostenlose Testversion an
2
Gehen Sie zum Download Center. Wählen Sie das richtige Installationsprogramm für Ihre Linux-Distribution und Architektur aus.
Zum Download-Center gehen
3
Öffnen Sie Ihr Terminal, navigieren Sie zur Datei und verwenden Sie die folgenden Befehle auf Debian-basierten Systemen (benötigt Superuser-Zugriff):

dpkg -i serial_ethernet_connector_64.deb
apt-get install -f


Oder diesen Befehl auf Fedora oder CentOS:

sudo rpm -i serial_ethernet_connector_64.rpm

Sobald die Installation abgeschlossen ist, starten Sie Ihren Computer neu.
4
Verwenden Sie Ihren Aktivierungscode, indem Sie den folgenden Befehl ausführen:

evesecli register <your activation code>

Die Aktivierung kann überprüft werden, indem Sie Folgendes ausführen:

evesecli license

Diese Installations- und Aktivierungsschritte müssen auf beiden Maschinen abgeschlossen werden, die verbunden werden sollen.
Verwenden Sie Ihren Aktivierungscode
5
Da wir Nachrichten zwischen zwei Anwendungen senden werden, erstellen wir virtuelle Ports sowohl für den Server als auch für den Client. Beginnen Sie, indem Sie den folgenden Befehl auf dem Server verwenden:

evesecli add -v /tmp/ttyLS0 server --local 5000

Der Befehl „start“ öffnet die Verbindung:

evesecli start /tmp/ttyLS0

Außerdem müssen Sie die IP-Adresse Ihres Computers im lokalen Netzwerk kennen. Führen Sie „hostname -I“ (großes i) aus.
virtuelle Ports sowohl für den Server als auch für den Client erstellen
6
Auf dem Client-Computer führen Sie Folgendes aus:

evesecli add -v /tmp/ttyRS0 client --remote <your IP address>:5000
evesecli start /tmp/ttyRS0


Sie können überprüfen, ob die Verbindung erfolgreich war, indem Sie „evesecli list“ verwenden. Es sollte anzeigen, dass es 1 Verbindung gibt.
Überprüfen Sie, ob die Verbindung erfolgreich war
7
Schließlich können die verbundenen Ports, da sie beide virtuell sind, wie zuvor mit cat/echo getestet werden.
da die verbundenen Ports beide virtuell sind, können sie getestet werden
Vergessen Sie nicht, dass Sie „man evesecli“ verwenden können, um weitere Informationen über die verfügbaren Optionen und Befehle zu erhalten. Zusätzlich gibt es ein Benutzerhandbuch, das für Beispiele und allgemeine Informationen zur Verwendung des Serial to Ethernet Connector herangezogen werden kann.

Meine Zugangsdaten

Ich bin Nikolai Svarachevsky – ein Senior-Entwickler bei Electronic Team, Inc. Ich bin leitender Entwickler bei mehreren Projekten, darunter Serial to Ethernet Connector. Ich habe Code in kommerzieller Qualität für die Zwecke der seriellen Kommunikation, des Netzwerkbetriebs und der Verschlüsselung geschrieben. Außerdem bin ich ein Linux-Power-User, und ich liebe es, neue Wege zu finden, sowohl integrierte Dienstprogramme als auch Software von Drittanbietern zu nutzen, um Probleme zu lösen – ob einfach oder komplex! Möge Ihnen dieser Leitfaden hilfreich sein.
Serial to Ethernet Connector
Access remote serial port over IP Network for Windows
14-tägige kostenlose Testversion verfügbar
Der Lizenzpreis beginnt bei $259.95
Verfügbar für