Wofür eine serielle Konsole?
Bei Rechnern, die nicht physikalisch erreichbar sind ist eine serielle Konsole oftmals die letzte Rettung um eine defekte Netzwerk- oder Firewall-Konfiguration reparieren zu können. Auch wenn die Geschwindigkeit deutlich unter der der normalen Netzverbindung liegt, so lassen sich damit doch die wichtigsten Einstellungen vornehmen, und das (unter Umständen) sogar, wenn noch kein System gebootet ist.
Finden tut man sowas z.B. bei Servern der Strato AG. Wir behandeln hier nun, wie man sowas auch in einem Heim-/Firmen-Netzwerk umsetzen kann.
Konfiguration
Um das zu erreichen, müssen Bootloader, Kernel und u.U. sogar Anwendungen für eine Ein- bzw. Ausgabe über die serielle Konsole konfiguriert werden. Wie das zu bewerkstelligen ist sollen die nächsten Kapitel zeigen.
In allen Beispielen wird die erste serielle Konsole (<code>/dev/ttyS0code>) mit folgenden Einstellungen konfiguriert:
- 9600 Baud
- No Parity
- 8 Bit
Kernel
Der Linux-Kernel hat in der Regel den Support für serielle Schnittstellen eingebaut und kann diese als Konsole nutzen. Um das zu erreichen muss auf der Kommandozeile des Kernels die Option console= verwendet werden. Eine mehrfache Angabe dieser Option führt dazu, dass mehrere Geräte als Konsole fungieren.
Die folgende Einstellung benutzt das Standard-Terminal (meist die VGA-Karte des Systems) als Konsole:
console=tty0
Will man hingegen die Ausgabe des Kernels nur auf der seriellen Schnittstelle, so erreicht man dies durch die Kernel-Option:
console=ttyS0,9600n8
Und für eine Ausgabe auf Monitor und serieller Schnittstelle verwendet man:
console=ttyS0,9600n8 console=tty0
Wie man diese Optionen konkret angibt hängt vom verwendeten Bootmanager ab.
Bootloader
LILO
Die Konfiguration des Bootloaders LILO findet sich in der Datei <code>/etc/lilo.confcode>.
# Global setup ... serial = 0,9600n8 ... # Boot image setup image = /boot/vmlinuz label = linux root = /dev/sda1 initrd = /boot/initrd append = "console=ttyS0,9600n8 console=tty0"
Grub
Für Grub-Bootloader muß folgende Ergänzung in <code>/boot/grub/menu.lstcode> gemacht werden:
# Global setup ... serial --unit=0 --speed=9600 ... # Boot image setup title Linux kernel (hd0,1)/vmlinuz root=6803 console=tty0 console=ttyS0,9600 initrd (hd0,1)/initrd
Init
In die <code>/etc/inittabcode> gehört folgende Ergänzung:
S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102
Root Login erlauben
In der Datei <code>/etc/securettycode> muß folgender Eintrag stehen:
/dev/ttyS0