Linux Konsole · 4 min read · Feb 02, 2026

Einrichten einer seriellen Konsole

Einrichten einer seriellen Konsole

Dieses Tutorial zeigt Ihnen, wie Sie eine serielle Konsole auf einem Linux-System einrichten und über ein Nullmodemkabel eine Verbindung herstellen. Dies ist besonders nützlich, wenn Ihr Linux-Server in einer headless Konfiguration (kein Keyboard oder Monitor) betrieben wird, da es Ihnen ermöglicht, einfach eine Konsole auf dem System zu erhalten, falls es Probleme gibt (insbesondere Netzwerkprobleme, wenn SSH nicht verfügbar ist). Am Ende wird das GRUB-Menü über die serielle Verbindung angezeigt, ebenso wie die Bootnachrichten (Ausgabe beim Booten des Systems). Ich verwende Debian Etch auf dem Server und Ubuntu Edgy auf meinem Client, obwohl dies auf jeder Linux-Distribution funktionieren sollte.

Erste Schritte

Eine der wichtigsten Dinge, die wir überprüfen müssen, ist, ob Sie tatsächlich einen seriellen Port auf dem Server haben :). Schauen Sie sich die Rückseite Ihres Servers an und sehen Sie, ob er einen 9-poligen seriellen Port hat. Die meisten Motherboards haben entweder einen oder zwei serielle Ports. Überprüfen Sie auf dem System, ob Linux die seriellen Ports erkennt:

root@server:~# dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) ist ein 16550A
00:08: ttyS0 at I/O 0x3f8 (irq = 4) ist ein 16550A

Dies zeigt, dass mein System einen seriellen Port hat, ttyS0 (merken Sie sich das für später).

GRUB-Konfiguration

Der nächste Schritt besteht darin, die GRUB-Konfiguration zu bearbeiten, damit sie ihre Nachrichten an die serielle Konsole sendet. Eine der wichtigsten Dinge ist, ein Passwort festzulegen, da sonst jeder ein serielles Kabel anschließen, die GRUB-Konfigurationszeile bearbeiten kann, während das System bootet (über die “e”-Taste) und Root-Zugriff erhält. Wenn ein Passwort festgelegt ist, wird die interaktive Menübearbeitung deaktiviert, es sei denn, das richtige Passwort wird eingegeben. Um das Passwort festzulegen, müssen wir zuerst die verschlüsselte Version davon erhalten.

Führen Sie grub aus und verwenden Sie den Befehl “md5crypt”, um das Passwort zu verschlüsseln:

grub> md5crypt

Passwort: **
Verschlüsselt: $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1

Kopieren Sie die verschlüsselte Version des Passworts (wir benötigen sie für den nächsten Schritt) und geben Sie dann quit ein, um zu beenden.

Jetzt müssen wir die GRUB-Konfiguration bearbeiten. Bearbeiten Sie die Datei /boot/grub/menu.lst (indem Sie nano /boot/grub/menu.lst eingeben) und suchen Sie diesen Abschnitt:

## password ['--md5'] passwd
   # Wenn im ersten Abschnitt einer Menüdatei verwendet, deaktivieren Sie alle interaktiven Bearbeitungen
   # Steuerung (Menüeintrag-Editor und Befehlszeile) und Einträge, die durch den
   # Befehl 'lock' geschützt sind
   # z.B. password topsecret
   #      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
   # password topsecret

Fügen Sie darunter hinzu:

password --md5 $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1
serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1   
terminal --timeout=10 serial console

Ersetzen Sie $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1 durch die verschlüsselte Form Ihres Passworts. Die zweite Zeile sagt GRUB, dass der serielle Port mit 38.400 bps (gleiche Geschwindigkeit wie die Standardkonsole), 8 Datenbits, keine Parität und 1 Stoppbit (im Grunde die Standardeinstellungen) initialisiert werden soll. Beachten Sie, dass –unit=0 bedeutet, dass der erste serielle Port (ttyS0) verwendet wird. Wenn Sie den zweiten seriellen Port (ttyS1) verwenden, ändern Sie es in –unit=1. Die letzte Zeile sagt GRUB, dass es sein Menü sowohl über die serielle Leitung als auch über die Konsole (Monitor) anzeigen soll.

Jetzt müssen wir auch die Kernelabschnitte bearbeiten, damit sie Nachrichten an die serielle Konsole ausgeben. Fügen Sie am Ende jeder Kernelzeile console=tty0 console=ttyS0,38400n8 hinzu (ersetzen Sie ttyS0 durch den richtigen seriellen Port). In meinem Fall sah es schließlich so aus:

title           Debian GNU/Linux, kernel 2.6.18-4-vserver-686
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-4-vserver-686 root=/dev/hda3 ro console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-4-vserver-686
   savedefault
title           Debian GNU/Linux, kernel 2.6.18-4-vserver-686 (Einzelbenutzermodus)
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-4-vserver-686 root=/dev/hda3 ro single console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-4-vserver-686
   savedefault
title           Debian GNU/Linux, kernel 2.6.18-3-686
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-3-686 root=/dev/hda3 ro console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-3-686
   savedefault
title           Debian GNU/Linux, kernel 2.6.18-3-686 (Einzelbenutzermodus)
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-3-686 root=/dev/hda3 ro single console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-3-686  
   savedefault  

Speichern Sie und beenden Sie, indem Sie CTRL+O (zum “Ausgeben” oder Speichern der Datei), Enter (um den Dateinamen zu akzeptieren) und CTRL+X (um tatsächlich zu beenden) drücken.

Erlauben Sie Anmeldungen über die serielle Konsole

Jetzt wird das GRUB-Menü über die serielle Verbindung angezeigt, aber wir hören noch nicht auf Anmeldungen (es läuft noch kein “getty” auf ihm). Bearbeiten Sie die Datei /etc/inittab und suchen Sie diesen Abschnitt:

# Beispiel, wie man ein getty auf einer seriellen Leitung (für ein Terminal) platziert
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

Darunter (ich mag es nicht, die Standardzeilen zu bearbeiten :P) fügen Sie hinzu:

T0:2345:respawn:/sbin/getty -L ttyS0 38400 vt100

Und das war’s. Ihr Server zeigt jetzt das GRUB-Menü über die serielle Konsole an und erlaubt auch Anmeldungen (sobald er mit dem Booten fertig ist).

Lassen Sie uns das testen!

Jetzt, wo das alles erledigt ist, müssen wir unseren Client konfigurieren. Ich verwende GtkTerm auf meinem Laptop, obwohl jedes Terminalprogramm funktionieren sollte (solange es einen seriellen Port verwenden kann. Unter Windows sollte HyperTerminal funktionieren). Mein Laptop hat keinen seriellen Port, also benutze ich einen USB-zu-Seriell-Adapter, den ich bei eBay gekauft habe (er erstellt ein ttyUSB0-Gerät). Stellen Sie Ihr Terminalprogramm auf diese Einstellungen ein:

  • Port (Linux): ttyS0 oder ttyS1 (wenn Ihr System einen seriellen Port hat), oder ttyUSB0 (wenn Sie einen USB-zu-Seriell-Adapter verwenden).
  • Port (Windows): COM1 oder COM2
  • Bits pro Sekunde: 38400
  • Datenbits: 8
  • Parität: Keine
  • Stoppbits: 1
  • Flusskontrolle: Keine, obwohl Hardware (RTS/CTS) ordnungsgemäß funktionieren sollte

Starten Sie den Server neu (wahrscheinlich von einer SSH-Verbindung oder wie auch immer Sie die GRUB-Konfiguration oben bearbeitet haben) und verbinden Sie dann das Nullmodemkabel, während er startet (d.h. beim BIOS-Bildschirm). Drücken Sie eine beliebige Taste, wenn Sie dazu aufgefordert werden, und Sie erhalten etwas wie:

Serielle Konsole Anleitung - GRUB-Menü

Das bedeutet, dass GRUB einwandfrei funktioniert :). Drücken Sie die Eingabetaste, und es sollte booten und alle Nachrichten im Terminalfenster anzeigen. Sobald es bootet, sieht es ungefähr so aus:

Serielle Konsole Anleitung - Booten

Schließlich melden Sie sich an und überprüfen Sie, ob alles einwandfrei funktioniert:

Serielle Konsole Anleitung - Eingeloggt

Herzlichen Glückwunsch, alles ist eingerichtet und funktioniert einwandfrei.

Ich hoffe, Ihnen hat dieses Tutorial gefallen! :)

Daniel15 (Daniel Lo Nigro)
http://www.daniel15.com/
http://www.dansoftaustralia.net/

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.