Mit FreeBSD 8.0 wurden die Gerätedateien für
serielle Ports von
/dev/ttyd
in
N
/dev/ttyu
umbenannt. Setzen Sie noch FreeBSD 7.X ein, müssen
Sie die Befehle in den folgenden Abschnitten entsprechend
anpassen.N
FreeBSD kann ein System mit einem Dumb-Terminal (unintelligente Datenstation) an einer seriellen Schnittstelle als Konsole booten. Diese Konfiguration ist besonders nützlich für Systemadministratoren, die FreeBSD auf Systemen ohne Tastatur oder Monitor installieren wollen, und Entwickler, die den Kernel oder Gerätetreiber debuggen.
Wie in Kapitel 13, FreeBSDs Bootvorgang beschrieben, besitzt FreeBSD drei
Bootphasen. Der Code für die ersten beiden Bootphasen befindet
sich im Bootsektor am
Anfang der FreeBSD-Slice der Bootplatte. Dieser Bootblock
lädt den Bootloader (/boot/loader
) in
Phase drei.
Um eine serielle Konsole einzurichten, müssen Sie den Bootblock, den Bootloader und den Kernel konfigurieren.
Dieser Abschnitt fasst zusammen, wie Sie eine serielle Konsole einrichten. Es wird vorausgesetzt, dass Sie die Voreinstellungen verwenden und wissen, wie serielle Schnittstellen verbunden werden.
Verbinden Sie die serielle Konsole mit
COM1
sowie dem Kontrollterminal.
Um die Startmeldungen der seriellen Konsole zu sehen,
geben Sie als root
Folgendes ein:
#
echo 'console="comconsole"' >> /boot/loader.confÄndern Sie in /etc/ttys
den Eintrag für ttyu0
von
off
auf on
.
Zusätzlich sollten Sie den Wert
dialup
auf vt100
ändern. Nur so wird auf der seriellen Konsole
eine Eingabeaufforderung mit einer Passwortabfrage
aktiviert.
Starten Sie nun das System neu, damit die serielle Konsole aktiviert wird.
Wenn Sie eine unterschiedliche Konfiguration benötigen, sollten Sie Abschnitt 27.6.3, „Konfiguration der Konsole“ lesen.
Bereiten Sie ein serielles Kabel vor.
Sie benötigen entweder ein Nullmodemkabel oder ein serielles Standard Kabel mit einem Nullmodemkabel-Adapter. In Abschnitt 27.2.2, „Kabel und Schnittstellen“ wurden serielle Kabel beschrieben.
Trennen Sie die Tastatur vom Computer.
Die meisten PC Systeme suchen beim Power On Self Test (POST) nach einer Tastatur und geben eine Fehlermeldung aus, wenn sie keine finden. Einige Maschinen werden sich sogar weigern, ohne Tastatur zu booten.
Wenn Ihr Rechner trotz einer Fehlermeldung normal weiterbootet, brauchen Sie weiter nichts zu tun. Beispielsweise geben einige Maschinen mit einem Phoenix BIOS nur Keyboard failed aus und booten dann normal weiter.
Wenn Ihr System ohne Tastatur nicht booten will, müssen Sie das BIOS so konfigurieren, das es diesen Fehler ignoriert (wenn das möglich ist). Das Handbuch zu Ihrem Motherboard sollte beschreiben, wie das zu bewerkstelligen ist.
Selbst wenn Sie im BIOS „Not installed“ für die Tastatur einstellen, können Sie eine Tastatur angeschlossen haben und diese auch weiterhin benutzen, da sie mit dieser Anweisung das BIOS lediglich anweisen, nach dem Einschalten des Rechners nicht nach einer Tastatur zu suchen und den Rechner ohne entsprechende Fehlermeldung zu starten. Wenn die oben beschriebene Option nicht im BIOS vorhanden ist, halten Sie stattdessen Ausschau nach einer „Halt on Error“ Option. Sie können den gleichen Effekt wie oben erzielen, wenn Sie diese Option auf „All but Keyboard“ oder sogar „No Errors“ setzen.
Wenn Ihr System über eine PS/2® Maus verfügt, müssen Sie diese wahrscheinlich auch abziehen. Da sich die PS/2® Maus und die Tastatur einige Hardwarekomponenten teilen, kann das dazu führen, dass die Hardwareerkennung fälschlicherweise eine Tastatur findet, wenn eine PS/2® Maus angeschlossen ist. Gateway 2000 Pentium 90 MHz Systemen wird dieses Verhalten nachgesagt. Normalerweise ist das kein Problem, da eine Maus ohne Tastatur sowieso nicht sinnvoll einsetzbar ist.
Schließen Sie einen Dumb-Terminal an
COM1
(sio0
)
an.
Wenn Sie keinen Dumb-Terminal besitzen, können Sie
einen alten PC/XT mit einem Terminalemulator oder die serielle
Schnittstelle eines anderen UNIX® Rechners benutzen. Sie
benötigen auf jeden Fall eine freie erste serielle
Schnittstelle (COM1
). Zurzeit ist es
nicht möglich, in den Bootblöcken eine andere
Schnittstelle zu konfigurieren, ohne diese neu zu kompilieren.
Wenn Sie COM1
bereits für ein
anderes Gerät benutzen, müssen Sie dieses Gerät
temporär entfernen und einen neuen Bootblock sowie Kernel
installieren, wenn Ihr FreeBSD erst einmal installiert ist.
Auf einem Server sollte COM1
ohnehin
verfügbar sein. Wenn Sie die Schnittstelle für ein
anderes Gerät benutzen und Sie dieses nicht auf
COM2
(sio1
)
legen können, sollten Sie sich nicht an erster Stelle mit
dem Aufsetzen einer seriellen Konsole beschäftigen.
Stellen Sie sicher, dass Ihre Kernelkonfiguration die
richtigen Optionen für COM1
(sio0
) enthält.
Relevante Optionen sind:
0x10
Aktiviert die Konsolenunterstützung für
dieses Gerät. Zurzeit kann nur ein Gerät die
Konsolenunterstützung aktiviert haben. Das erste,
in der Konfigurationsdatei aufgeführte Gerät,
mit dieser Option, verfügt über eine aktivierte
Konsolenunterstützung. Beachten Sie, dass
diese Option alleine nicht ausreicht, um die serielle
Konsole zu aktivieren. Setzen Sie entweder noch die
nachfolgend diskutierte Option oder verwenden Sie beim
Booten, wie unten beschrieben, den Schalter
-h
.
0x20
Das erste Gerät in der Kernelkonfigurationsdatei
mit dieser Option wird, unabhängig von dem unten
diskutierten Schalter -h
, zur Konsole.
Die Option 0x20
muss zusammen mit
0x10
verwendet werden.
0x40
Reserviert dieses Gerät und sperrt es für normale Zugriffe. Sie sollten diese Option nicht auf dem Gerät setzen, das Sie als serielle Konsole verwenden wollen. Der Zweck dieser Option ist es, dieses Gerät für das Remote-Debuggen zu reservieren. Das FreeBSD Developers' Handbook enthält dazu weitere Informationen.
Beispiel:
Weitere Einzelheiten entnehmen Sie bitte sio(4).
Wenn diese Optionen nicht gesetzt sind, müssen Sie auf einer anderen Konsole beim Booten UserConfig starten oder den Kernel neu kompilieren.
Erstellen Sie boot.config
im
Rootverzeichnis der a
-Partition des
Bootlaufwerks.
Der Code des Bootblocks entnimmt dieser Datei, wie Sie Ihr System booten möchten. Um die serielle Konsole zu aktivieren, müssen Sie hier eine oder mehrere Optionen (alle in derselben Zeile) angeben. Die folgenden Optionen stehen zur Auswahl der Konsole zur Verfügung:
-h
Schaltet zwischen der internen und der seriellen
Konsole um. Wenn Sie beispielsweise von der internen
Konsole (Bildschirm) booten, weist -h
den Bootloader und den Kernel an, die serielle
Schnittstelle als Konsole zu nehmen. Wenn die Konsole
normal auf der seriellen Schnittstelle liegt, wählen
Sie mit -h
den Bildschirm aus.
-D
Schaltet zwischen Einzelkonsole und Dual-Konsole um.
Die Einzelkonsole ist entweder die interne Konsole
(der Bildschirm) oder die serielle Schnittstelle, je nach
dem Stand von -h
. Im
Dual-Konsolen Betrieb ist die Konsole, unabhängig
von -h
, gleichzeitig der Bildschirm und
die serielle Schnittstelle. Dies trifft aber nur zu,
wenn der Bootblock ausgeführt wird. Sobald der
Bootloader ausgeführt wird, wird die durch
-h
gegebene Konsole die alleinige
Konsole.
-P
Veranlasst den Bootblock nach einer Tastatur zu
suchen. Wenn keine Tastatur gefunden wird, werden
-D
und -h
automatisch
gesetzt.
Wegen Platzbeschränkungen in den
Bootblöcken kann -P
nur
erweiterte Tastaturen erkennen. Tastaturen mit weniger
als 101 Tasten (und ohne F11 und F12 Tasten) werden
wahrscheinlich, wie vielleicht auch die Tastaturen
einiger Laptops, nicht erkannt. Wenn dies bei Ihrem
System der Fall ist, können Sie -P
nicht verwenden, da es leider noch keine Umgehung
für dieses Problem gibt.
Benutzen Sie also entweder -P
, um die
Konsole automatisch zu setzen, oder -h
, um die
serielle Konsole zu verwenden.
In boot.config
können Sie auch
andere, in boot(8) beschriebene Optionen,
aufnehmen.
Mit Ausnahme von -P
werden die Optionen an
den Bootloader (/boot/loader
)
weitergegeben. Der Bootloader untersucht dann einzig
-h
um festzustellen, welches Gerät die
Konsole wird. Wenn Sie also nur -D
angegeben
haben, können Sie die serielle Schnittstelle nur als
Konsole verwenden während der Bootblock ausgeführt
wird. Danach wird der Bootloader, da ja -h
fehlt, den Bildschirm zur Konsole machen.
Booten Sie die Maschine.
Wenn Sie das FreeBSD-System starten, werden die
Bootblöcke den Inhalt von /boot.config
auf der Konsole ausgeben:
Die zweite Zeile sehen Sie nur, wenn Sie in
/boot.config
-P
angegeben
haben. Sie zeigt an, ob eine Tastatur angeschlossen ist oder
nicht. Die Meldungen gehen je nach den Einstellungen in
/boot.config
auf die interne Konsole, die
serielle Konsole, oder beide Konsolen.
Optionen | Meldungen erscheinen auf |
---|---|
keine | der internen Konsole |
-h | der seriellen Konsole |
-D | der seriellen und der internen Konsole |
-Dh | der seriellen und der internen Konsole |
-P , mit Tastatur | der internen Konsole |
-P , ohne Tastatur | der seriellen Konsole |
Nach den oben gezeigten Meldungen gibt es eine kleine Verzögerung bevor die Bootblöcke den Bootloader laden und weitere Meldungen auf der Konsole erscheinen. Sie können die Ausführung der Bootblöcke unterbrechen, um zu überprüfen, ob auch alles richtig aufgesetzt ist, brauchen das aber unter normalen Umständen nicht zu tun.
Drücken Sie eine Taste außer Enter um den Bootvorgang zu unterbrechen. Sie erhalten dann ein Prompt, an dem Sie weitere Eingaben tätigen können:
Je nach Inhalt von /boot.config
erscheint das Prompt auf der seriellen Konsole, der internen
Konsole oder beiden Konsolen. Wenn die Meldung auf der
richtigen Konsole erscheint, drücken Sie
Enter um fortzufahren.
Wenn Sie das Prompt auf der seriellen Konsole erwartet
haben, dort aber nichts sehen, liegt ein Fehler in Ihren
Einstellungen vor. Als Umgehung geben Sie an der momentanen
Konsole -h
ein, um den Bootblock und den
Bootloader auf die serielle Konsole umzustellen. Führen
Sie dann den Bootvorgang mit Enter weiter
und wenn das System gebootet hat, können Sie die
fehlerhaften Einstellungen korrigieren.
Nachdem der Bootloader geladen wurde und Sie sich in der dritten Bootphase befinden, können Sie immer noch zwischen der internen und der seriellen Konsole auswählen. Setzen Sie dazu, wie in Abschnitt 27.6.6, „Die Konsole im Bootloader ändern“ beschrieben, die entsprechenden Variablen des Bootloaders.
Die folgende Übersicht zeigt, welche Konsole, abhängig von den getroffenen Einstellungen, ausgewählt wird.
Optionen in /boot.config | Konsole in den Bootblöcken | Konsole im Bootloader | Konsole im Kernel |
---|---|---|---|
keine | interne | interne | interne |
-h | serielle | serielle | serielle |
-D | serielle und interne | interne | interne |
-Dh | serielle und interne | serielle | serielle |
-P , mit Tastatur | interne | interne | interne |
-P , ohne Tastatur | serielle und interne | serielle | serielle |
Optionen in /boot.config | Konsole in den Bootblöcken | Konsole im Bootloader | Konsole im Kernel |
---|---|---|---|
keine | interne | interne | serielle |
-h | serielle | serielle | serielle |
-D | serielle und interne | interne | serielle |
-Dh | serielle und interne | serielle | serielle |
-P , mit Tastatur | interne | interne | serielle |
-P , ohne Tastatur | serielle und interne | serielle | serielle |
Die Vorgabewerte für die Kommunikationsparameter der seriellen Schnittstelle sind: 9600 baud, 8 Bit, keine Parität und ein Stopp-Bit. Wenn Sie die Standardgeschwindigkeit ändern wollen, haben Sie folgende Möglichkeiten:
Geben Sie die neue Konsolengeschwindigkeit mit
BOOT_COMCONSOLE_SPEED
an und
kompilieren Sie die Bootblöcke neu. Ausführliche
Informationen zum Bau und zur Installation von neuen
Bootblöcken finden Sie im
Abschnitt 27.6.5.2, „Eine andere Schnittstelle als sio0
benutzen“ des Handbuchs.
Wenn die serielle Konsole nicht mit der Option
-h
gestartet wird,
oder wenn die verwendete serielle Konsole sich von
der von den Bootblöcken verwendeten unterscheidet,
müsssen Sie zusätzlich die folgende Option in
Ihre Kernelkonfigurationsdatei aufnehmen und den Kernel
neu bauen:
Verwenden Sie die Option -S
, um den
Kernel zu booten. Die Option -S
kann
auch in die Datei /boot.config
aufgenommen werden. Eine Beschreibung dieses Vorgangs
sowie eine Auflistung der von
/boot.config
unterstützten
Optionen finden Sie in der Manualpage boot(8).
Aktivieren Sie die Option
comconsole_speed
in der Datei
/boot/loader.conf
.
Diese Option setzt voraus, dass auch die Optionen
console
,
boot_serial
, sowie
boot_multicons
in der Datei
/boot/loader.conf
gesetzt sind.
Im Folgenden finden Sie ein Beispiel, in dem
comconsole_speed
verwendet wird,
um die Geschwindigkeit der seriellen Konsole zu
ändern:
Wenn Sie, warum auch immer, ein anderes Gerät als
sio0
für die serielle Konsole
einsetzen wollen, kompilieren Sie bitte die Bootblöcke, den
Bootloader und den Kernel nach dem folgenden Verfahren
neu.
Installieren Sie die Kernelquellen (siehe Kapitel 25, FreeBSD aktualisieren).
Setzen Sie in /etc/make.conf
BOOT_COMCONSOLE_PORT
auf die Adresse der
Schnittstelle (0x3F8, 0x2F8, 0x3E8 oder 0x2E8), die Sie
benutzen möchten. Sie können nur
sio0
bis
sio3
(COM1
bis COM4
) benutzen, Multiportkarten
können Sie nicht als Konsole benutzen. Interrupts
müssen Sie hier nicht angeben.
Erstellen Sie eine angepasste Kernelkonfiguration
und geben Sie dort die richtigen Optionen für die
Schnittstelle, die Sie benutzen möchten, an. Wenn Sie
zum Beispiel sio1
(COM2
) zur Konsole machen wollen,
geben Sie dort entweder
oder
an. Keine andere serielle Schnittstelle sollte als Konsole definiert werden.
Übersetzen und installieren Sie die Bootblöcke und den Bootloader:
#
cd /sys/boot
#
make clean
#
make
#
make install
Bauen und installieren Sie einen neuen Kernel.
Schreiben Sie die Bootblöcke mit bsdlabel(8) auf die Bootplatte und booten Sie den neuen Kernel.
Wenn Sie den Kerneldebugger über eine serielle Verbindung bedienen möchten (nützlich, kann aber gefährlich sein, wenn auf der Leitung falsche BREAK-Signale generiert werden), sollten Sie einen Kernel mit den folgenden Optionen erstellen:
Da Sie schon die Bootmeldungen auf der Konsole verfolgen können und den Kerneldebugger über die Konsole bedienen können, wollen Sie sich vielleicht auch an der Konsole anmelden.
Öffnen Sie /etc/ttys
in einem
Editor und suchen Sie nach den folgenden Zeilen:
ttyu0
bis ttyu3
entsprechen COM1
bis
COM4
. Ändern Sie für die
entsprechende Schnittstelle off
zu
on
. Wenn Sie auch die Geschwindigkeit der
seriellen Schnittstelle geändert haben, müssen Sie
std.9600
auf die momentane Geschwindigkeit, zum
Beispiel std.19200
, anpassen.
Sie sollten auch den Terminaltyp von
unknown
auf den tatsächlich verwendeten
Terminal setzen.
Damit die Änderungen an der Datei wirksam werden,
müssen Sie noch kill -HUP 1
absetzen.
In den vorigen Abschnitten wurde beschrieben, wie Sie die serielle Konsole durch Änderungen im Bootblock aktivieren. Dieser Abschnitt zeigt Ihnen, wie Sie mit Kommandos und Umgebungsvariablen die Konsole im Bootloader definieren. Da der Bootloader die dritte Phase im Bootvorgang ist und nach den Bootblöcken ausgeführt wird, überschreiben seine Einstellungen die des Bootblocks.
Mit einer einzigen Zeile in
/boot/loader.conf
können Sie den
Bootloader und den Kernel anweisen, die serielle Schnittstelle
zur Konsole zu machen:
Unabhängig von den Einstellungen im Bootblock legt dies die Konsole fest.
Die obige Zeile sollte die erste Zeile in
/boot/loader.conf
sein, so dass Sie die
Bootmeldungen so früh wie möglich auf der Konsole
sehen.
Analog können Sie die interne Konsole verwenden:
Wenn Sie console
nicht setzen, bestimmt der
Bootloader (und damit auch der Kernel) die Konsole über
die -h
Option des Bootblocks.
Sie können die Bootkonsole in
/boot/loader.conf.local
oder
/boot/loader.conf
angeben.
Weitere Informationen erhalten Sie in loader.conf(5).
Momentan gibt es im Bootloader nichts vergleichbares zu
-P
im Bootblock. Damit kann die Konsole nicht
automatisch über das Vorhandensein einer Tastatur
festgelegt werden.
Sie müssen den Bootloader neu kompilieren, wenn Sie eine
andere Schnittstelle als sio0
benutzen
wollen. Folgen Sie der Anleitung aus
Abschnitt 27.6.5.2, „Eine andere Schnittstelle als sio0
benutzen“.
Hinter dem ganzen steckt die Idee, Server ohne Hardware
für Grafik und ohne Tastatur zu betreiben. Obwohl es die
meisten Systeme erlauben, ohne Tastatur zu booten, gibt es leider
nur wenige Systeme, die ohne eine Grafikkarte booten. Maschinen
mit einem AMI BIOS können ohne Grafik booten, indem Sie den
Grafikadapter im CMOS-Setup auf Not installed
setzen.
Viele Maschinen unterstützen diese Option allerdings nicht. Damit diese Maschinen booten, müssen sie über eine Grafikkarte, auch wenn es nur eine alte Monochromkarte ist, verfügen. Allerdings brauchen Sie keinen Monitor an die Karte anzuschließen. Sie können natürlich auch versuchen, auf diesen Maschinen ein AMI BIOS zu installieren.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.