Harting Development

tty in Linux: Das Terminal-Tool für die serielle Kommunikation

Lukas Fuchs vor 2 Jahren 3 Min. Lesezeit

Was ist tty in Linux?

In der Unix-Welt bezieht sich tty (Teletype) auf eine textbasierte Benutzeroberfläche, die typischerweise über eine serielle Schnittstelle mit einem Terminalgerät verbunden ist. tty wird in Linux als Schnittstelle für die serielle Kommunikation verwendet, was es zu einem wertvollen Werkzeug für Entwickler, Administratoren und Hobbyisten macht.

Wie funktioniert tty?

TTY fungiert als virtuelles Terminal, mit dem sich Benutzer über eine serielle Leitung mit einem anderen Gerät verbinden können. Es bietet einen interaktiven Eingabeaufforderungsmodus, in dem Befehle eingegeben und Ausgabe empfangen werden kann. Die serielle Leitung überträgt Daten zwischen dem Computer und dem angeschlossenen Gerät, wodurch eine bidirektionale Kommunikation ermöglicht wird.

Anwendungsfälle von tty

TTY hat verschiedene Anwendungsfälle, darunter:

  • Fernsteuerung von Servern und Geräten über serielle Konsolen
  • Interaktion mit eingebetteten Systemen und Mikrocontrollern
  • Fehlersuche und Debugging von seriellen Geräten
  • Automatisierung von Aufgaben über serielle Protokolle
  • Kommunikation mit legacy-Systemen, die nur serielle Schnittstellen unterstützen

Verwendung von tty für die serielle Kommunikation

tty ist ein leistungsstarkes Werkzeug für die serielle Kommunikation unter Linux. Es ermöglicht dir den direkten Zugriff auf serielle Ports und die Steuerung des Datenflusses zwischen deinem Computer und externen Geräten wie Mikrocontrollern, Sensoren und Modems.

Konfiguration der tty-Einstellungen

Um eine serielle Verbindung über tty herzustellen, musst du zunächst die Einstellungen des tty-Geräts konfigurieren. Dazu gehören:

  • Gerätename: Der Name des tty-Geräts, z. B. /dev/ttyS0.
  • Baudrate: Die Datenübertragungsrate in Bits pro Sekunde.
  • Datenbits: Die Anzahl der Datenbits pro Zeichen.
  • Stoppbits: Die Anzahl der Stoppbits am Ende jedes Zeichens.
  • Parität: Die Methode zur Fehlererkennung (z. B. ungerade, gerade oder keine).

Du kannst diese Einstellungen mit dem Befehl stty festlegen, gefolgt von den entsprechenden Optionen. Beispielsweise kannst du die Baudrate auf 9600 bps, 8 Datenbits, 1 Stoppbit und keine Parität mit dem folgenden Befehl einstellen:

stty -F /dev/ttyS0 9600 -parenb -parodd cs8 -cstopb

Senden und Empfangen von Daten über tty

Sobald die tty-Einstellungen konfiguriert sind, kannst du Daten über den seriellen Port senden und empfangen. Dazu verwendest du die Befehle cat und echo.

Um Daten zu senden, verwende den folgenden Befehl:

echo "Daten" > /dev/ttyS0

Um Daten zu empfangen, verwende den folgenden Befehl:

cat /dev/ttyS0

Du kannst auch Programme wie minicom oder picocom verwenden, um eine interaktive serielle Schnittstelle einzurichten. Diese Programme bieten eine benutzerfreundliche Oberfläche zum Senden und Empfangen von Daten und zur Überwachung des seriellen Datenflusses.

Auflisten verfügbarer tty-Geräte

Um eine serielle Kommunikation mit tty durchzuführen, musst du zunächst die verfügbaren tty-Geräte auf deinem System auflisten. Dies ermöglicht es dir, das entsprechende Gerät auszuwählen, über das du eine Verbindung herstellen möchtest.

H3 Verfügbare tty-Geräte auflisten

tty-Geräte befinden sich typischerweise im Verzeichnis /dev. Um alle verfügbaren tty-Geräte aufzulisten, kannst du den folgenden Befehl verwenden:

ls /dev/tty*

Dieser Befehl listet alle Geräte auf, die mit "tty" beginnen. Beispielsweise könntest du folgende Ausgabe sehen:

/dev/tty0
/dev/tty1
/dev/ttyUSB0
/dev/ttyACM0

H3 Interpretieren der Ausgabe

  • /dev/tty0 und /dev/tty1 sind virtuelle Konsolengeräte, die nicht für die serielle Kommunikation verwendet werden.
  • /dev/ttyUSB0 ist ein USB-zu-Seriell-Konverter, der häufig für die serielle Kommunikation verwendet wird.
  • /dev/ttyACM0 ist ein Abstract Control Model (ACM)-Gerät, das auch häufig für die serielle Kommunikation verwendet wird.

Die spezifischen tty-Geräte, die auf deinem System verfügbar sind, hängen von deiner Hardwarekonfiguration ab.

H3 Auswählen eines tty-Geräts

Sobald du die verfügbaren tty-Geräte aufgelistet hast, kannst du dasjenige auswählen, über das du eine Verbindung herstellen möchtest. Überlege dir, welches Gerät mit dem seriellen Gerät verbunden ist, mit dem du kommunizieren möchtest, und wähle das entsprechende tty-Gerät aus.

Zugriff auf ein tty-Gerät

Nachdem du die verfügbaren tty-Geräte auf deinem System aufgelistet hast, kannst du auf ein bestimmtes tty-Gerät zugreifen, um mit dem entsprechenden seriellen Gerät zu kommunizieren.

Öffnen eines tty-Geräts

Um ein tty-Gerät zu öffnen, verwendest du die Funktion open() in C oder Serial() in Python. Du musst den Gerätepfad als Argument angeben, z. B. /dev/ttyUSB0 für das erste USB-Seriengerät.

Überwachungsmodus

Im Überwachungsmodus kann das Programm den Zustand des tty-Geräts überwachen, ohne Daten zu senden oder zu empfangen. Dies ist nützlich, um Ereignisse zu erkennen oder Statusinformationen abzurufen.

Nicht-blockierender Modus

Im Nicht-blockierenden Modus gibt die read()- oder write()-Funktion keinen Fehler zurück, wenn keine Daten zu lesen oder zu schreiben sind. Stattdessen gibt sie einen speziellen Wert zurück, um anzuzeigen, dass die Operation nicht ausgeführt werden konnte. Dies ist nützlich für die Verarbeitung von Echtzeitdaten oder die Implementierung von ereignisgesteuerten Programmen.

Konfigurieren der tty-Einstellungen

Damit tty ordnungsgemäß funktioniert, musst du seine Einstellungen konfigurieren. Dies umfasst Folgendes:

Geschwindigkeit (Baudrate): Geschwindigkeit, mit der Daten übertragen werden. Verwende den Befehl stty -F <tty-Gerät> speed <Geschwindigkeit> (z. B. stty -F /dev/ttyUSB0 speed 9600).

Parität: Überprüfungsmethode zur Erkennung von Datenübertragungsfehlern. Wähle eine Parität (z. B. none, odd, even) mit dem Befehl stty -F <tty-Gerät> parity <Parität>.

Datenbits: Anzahl der Bits in jedem Datenwort. Übliche Optionen sind 7 oder 8, die du mit stty -F <tty-Gerät> data <Bits> einstellst.

Stoppbits: Anzahl der Bits, die das Ende eines Datenwords signalisieren. In der Regel 1 oder 2, einstellbar mit stty -F <tty-Gerät> stopbits <Bits>.

Flusssteuerung: Mechanismus zur Verhinderung von Datenüberläufen. Verwende stty -F <tty-Gerät> crtscts für hardwarebasierte oder stty -F <tty-Gerät> ixon für softwarebasierte Flusssteuerung.

Lokaler Modus: Optionen zur lokalen Verarbeitungsoptionen. Deaktiviere beispielsweise die Eingabe-Echo mit stty -F <tty-Gerät> -echo.

Verwende den Befehl stty -F <tty-Gerät> -a, um alle aktuellen tty-Einstellungen anzuzeigen.

Daten über tty senden und empfangen

Daten senden

Um Daten über tty zu senden, verwendest du die write()-Funktion. Diese Funktion nimmt two Argumente:

  • Den Dateideskriptor für das tty-Gerät, das du verwenden möchtest
  • Die Daten, die du senden möchtest

Beispiel:

int fd = open("/dev/ttyUSB0", O_WRONLY);
write(fd, "Hallo Welt!", 11);
close(fd);

Daten empfangen

Um Daten über tty zu empfangen, verwendest du die read()-Funktion. Diese Funktion nimmt three Argumente:

  • Den Dateideskriptor für das tty-Gerät, das du verwenden möchtest
  • Den Puffer, in den die empfangenen Daten geschrieben werden sollen
  • Die maximale Anzahl von Bytes, die gelesen werden sollen

Beispiel:

int fd = open("/dev/ttyUSB0", O_RDONLY);
char buf[1024];
int bytes_read = read(fd, buf, sizeof(buf));
close(fd);

Fehlerhandling

Es gibt eine Reihe von Fehlern, die beim Senden oder Empfangen von Daten über tty auftreten können. Einige der häufigsten Fehler sind:

  • EAGAIN: Der Vorgang konnte nicht sofort abgeschlossen werden.
  • EINTR: Der Vorgang wurde durch ein Signal unterbrochen.
  • EIO: Ein E/A-Fehler ist aufgetreten.
  • EINVAL: Ungültige Argumente wurden für den Vorgang bereitgestellt.

Du kannst die errno-Variable verwenden, um den Fehlercode für einen tty-Fehler abzurufen. Die folgende switch-Anweisung zeigt, wie verschiedene Fehlercodes verarbeitet werden können:

switch (errno) {
    case EAGAIN:
        // Der Vorgang konnte nicht sofort abgeschlossen werden.
        break;
    case EINTR:
        // Der Vorgang wurde durch ein Signal unterbrochen.
        break;
    case EIO:
        // Ein E/A-Fehler ist aufgetreten.
        break;
    case EINVAL:
        // Ungültige Argumente wurden für den Vorgang bereitgestellt.
        break;
    default:
        // Ein unbekannter Fehler ist aufgetreten.
        break;
}

Fehlerbehebung bei tty-Problemen

Wenn du Probleme mit tty hast, kannst du die folgenden Schritte zur Fehlerbehebung ausprobieren:

Überprüfen, ob das tty-Gerät verfügbar ist

  • Verwende den Befehl dmesg, um zu prüfen, ob das tty-Gerät erkannt wurde.
  • Stelle sicher, dass das tty-Gerät durch die Berechtigungen deiner Gruppe und anderen Benutzern zugänglich ist.

Verbindungsprobleme

  • Überprüfe, ob die serielle Verbindung korrekt verkabelt und angeschlossen ist.
  • Stelle sicher, dass die Einstellungen auf beiden Seiten (Host und Gerät) übereinstimmen, wie z. B. Baudrate, Datenbits und Parität.
  • Versuche, das tty-Gerät zurückzusetzen, indem du den Befehl stty sane ausführst.

Datenübertragungsprobleme

  • Überprüfe, ob die Daten im richtigen Format gesendet und empfangen werden.
  • Passe ggf. die tty-Einstellungen für die Datenübertragung wie Puffergröße und Zeitlimits an.
  • Überwache die Datenübertragung mit einem Tool wie minicom oder picocom, um Probleme zu erkennen.

Berechtigungsprobleme

  • Stelle sicher, dass du über die erforderlichen Berechtigungen zum Zugriff auf das tty-Gerät verfügst.
  • Verwende den Befehl chmod oder chown, um die Berechtigungen anzupassen.

Hardwareprobleme

  • Überprüfe, ob die serielle Schnittstelle richtig funktioniert.
  • Probiere, ein anderes tty-Gerät oder einen anderen seriellen Port zu verwenden.
  • Wende dich an den Hersteller des Geräts, um Unterstützung bei Hardwareproblemen zu erhalten.

Andere Tipps

  • Konsultiere die Dokumentation von tty für detailliertere Informationen.
  • Verwende die Befehlszeilenoption -v mit tty-Befehlen, um zusätzliche Informationen zur Fehlerbehebung zu erhalten.
  • Suche in Online-Foren und Stackoverflow nach ähnlichen Problemen und Lösungen.

Weitere Beiträge

Folge uns

Neue Beiträge

Beitrag

Erstellung eines bootfähigen Linux-USB-Sticks: Schritt-für-Schritt-Anleitung

AUTOR • Apr 21, 2026
Beitrag

Sami Lesebär: WLAN-Einrichtung und Nutzung

AUTOR • Apr 21, 2026
Beitrag

Thunderbird unter Linux: Installation, Konfiguration und Fehlerbehebung

AUTOR • Apr 21, 2026
Beitrag

Roborock verbindet sich nicht mit WLAN: Probleme beheben und Lösungen finden

AUTOR • Apr 21, 2026
Beitrag

FRITZ!Box 7590: So beheben Sie einen defekten WLAN-Chip

AUTOR • Apr 21, 2026
Beitrag

Erstellung von Linux-Partitionen: Ein umfassender Leitfaden für die Verwaltung Ihrer Festplatte

AUTOR • Apr 21, 2026
Beitrag

MX Linux Systemanforderungen: Alles, was du wissen musst

AUTOR • Apr 21, 2026
Beitrag

Die besten PDF-Reader für Linux: Eine umfassende Übersicht

AUTOR • Apr 21, 2026
Beitrag

Hoymiles HM-800: Schritt-für-Schritt-Anleitung zur WLAN-Verbindung

AUTOR • Apr 21, 2026
Beitrag

Wechselrichter verbindet sich nicht mit WLAN: Problemlösungen und Anleitungen

AUTOR • Apr 21, 2026
Beitrag

FritzBox 7590 Firmware Downgrade: So Geht's

AUTOR • Apr 21, 2026
Beitrag

Anleitung: Home Assistant mit Hoymiles verbinden

AUTOR • Apr 21, 2026
Beitrag

Deye Wechselrichter einrichten: Schritt-für-Schritt-Anleitung für eine reibungslose Inbetriebnahme

AUTOR • Apr 10, 2026
Beitrag

Verbinden Sie Ihren Sungrow-Wechselrichter ganz einfach mit WLAN

AUTOR • Apr 10, 2026
Beitrag

Formatieren einer Festplatte unter Linux: Eine umfassende Anleitung

AUTOR • Apr 10, 2026
Beitrag

Linux-Festplattenklonen: Schritt-für-Schritt-Anleitung zum Duplizieren Ihrer Festplatte

AUTOR • Apr 10, 2026
Beitrag

Tastaturlayout unter Linux ändern: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 10, 2026
Beitrag

WLAN-Verbindung zur Fritzbox bricht ständig ab: Ursachen und Lösungen

AUTOR • Mar 18, 2026
Beitrag

So zeigen Sie USB-Geräte unter Linux an: Eine umfassende Anleitung

AUTOR • Mar 18, 2026
Beitrag

PDF24 für Linux: Erstellen, Bearbeiten und Bearbeiten von PDFs unter Linux

AUTOR • Mar 18, 2026

Beliebte Beiträge

Beitrag

Bluetooth-Signale in WLAN konvertieren: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 19, 2024
Beitrag

Linux Mint: Speicherplatz freigeben leicht gemacht

AUTOR • Dec 12, 2024
Beitrag

WLAN-Rauchmelder mit FRITZ!Box verbinden: So geht's

AUTOR • Apr 19, 2024
Beitrag

Threema unter Linux verwenden: So gelingt der Einstieg

AUTOR • Jun 18, 2025
Beitrag

NFS-Volumes mit Linux mounten: Anleitung zum effektiven Dateisystemzugriff

AUTOR • Apr 17, 2024
Beitrag

Landroid verbindet sich nicht mit WLAN: Ursachen und Lösungen

AUTOR • Apr 19, 2024
Beitrag

WhatsApp für Linux: Installation, Einrichtung und Nutzung

AUTOR • Jun 18, 2025
Beitrag

Linux Netzwerk Einrichten: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 06, 2025
Beitrag

Marktdominanz von Linux: Ein Überblick über den aktuellen Stand

AUTOR • Apr 17, 2024
Beitrag

WLAN-Anmeldeseite erscheint nicht: Ursachen und Lösungen

AUTOR • Apr 19, 2024
Beitrag

Linux Mint 32 Bit: Installation, Verwendung und Tipps für ein reibungsloses Erlebnis

AUTOR • Apr 17, 2024
Beitrag

Die ultimative Anleitung zum Linux-Befehl für Updates

AUTOR • Apr 17, 2024
Beitrag

Linux auf USB-Stick installieren: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 17, 2024
Beitrag

Die ultimative Anleitung zur fstab-Datei: Mounten und Konfigurieren von Dateisystemen

AUTOR • Dec 19, 2025
Beitrag

Handy-Symbolführer: Bedeutung der Symbole auf Ihrem Smartphone

AUTOR • Apr 19, 2024
Beitrag

Linux Mint vergessenes Passwort zurücksetzen: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 17, 2024
Beitrag

Linux Mint installieren: Eine Schritt-für-Schritt-Anleitung für Anfänger

AUTOR • Apr 17, 2024
Beitrag

Linux-Browser: Vergleich, Funktionen und Tipps für die beste Wahl

AUTOR • Apr 17, 2024
Beitrag

OneNote für Linux: Installation, Funktionen und Vorteile

AUTOR • Apr 17, 2024
Beitrag

So erstellen Sie einen bootfähigen Linux Live USB-Stick: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 17, 2024