[OpenBSD]

[FAQ-Index] [Zum Kapitel 6 - Netzwerk] [Zum Kapitel 8 - Allgemeine Fragen]

7 - Tastatur- und Bildschirmkontrollen


Inhaltsverzeichnis



7.1 - Wie kann ich die Tastatur neu belegen? (wscons)

Die Portierungen, die den wscons(4)-Konsolentreiber benutzen: alpha, amd64, hppa, i386, mac68k, macppc, sparc, sparc64, vax, und zaurus.

Bei wscons(4)-Konsolen werden die meisten Optionen mit dem Werkzeug wsconsctl(8) kontrolliert. Beispielsweise würde man die Tastaturbelegung mit Hilfe von wsconsctl(8) wie folgt ändern:

# wsconsctl -w keyboard.encoding=de

Im nächsten Beispiel werden wir die [CAPS LOCK]-Taste neu belegen; und zwar so, dass sie nun [STRG L] ist:

# wsconsctl -w keyboard.map+="keysym Caps_Lock = Control_L"

7.2 - Wird die Maus auch unter der Konsole unterstützt?

Für die alpha-, amd64- und i386-Plattformen bietet OpenBSD den wsmoused(8) an - einen Port des moused(8) von FreeBSD. Er kann bei jedem Booten automatisch aktiviert werden, indem du die passende Zeile in rc.conf(8) editierst.

7.3 - Wie lösche ich die Konsole jedes Mal, wenn sich ein Benutzer abmeldet?

Dazu musst du eine Zeile in /etc/gettytab(5) einfügen. Ändere die Sektion, die so aussieht:

P|Pc|Pc console:\ :np:sp#9600:

Füge die Zeile :cl=\E[H\E[2J: am Ende hinzu, sodass das ganze schlussendlich so aussieht:

P|Pc|Pc console:\ :np:sp#9600:\ :cl=\E[H\E[2J:

7.4 - Auf den Scrollbackpuffer zugreifen (amd64, i386 und einige Alphas)

OpenBSD bietet auf einigen Plattformen einen sogenannten Konsolenscrollbackpuffer. Damit ist es möglich, Informationen zu sehen, die bereits wieder oben aus dem Bildschirm gescrollt sind. Um sich auf- und abwärts zu bewegen, benutze einfach die Tastenkombinationen [SHIFT]+[BILD AUF] und [SHIFT]+[BILD AB]

Der Standardscrollbackpuffer und somit auch die Anzahl der Seiten, die du so betrachten kannst, beträgt 8. Das ist eine Funktionalität des vga(4)-Treibers - daher funktioniert das alles natürlich nicht ohne VGA-Karte auf jeglichen Plattformen (viele Alpha-Systeme haben TGA-Video).

Wegen der Speicherbegrenzung unterstützen die Installationskernel keine Scrollbackfunktion. Ein Konsolenwechsel wird den Scrollbackpuffer löschen.

7.5 - Wie wechsel ich zwischen den Konsolen?(amd64, i386, Zaurus und einige Alphas)

Auf amd64, i386 und einigen Alphas mit vga(4)-Karte bietet OpenBSD sechs virtuelle Terminal an: /dev/ttyC0 bis /dev/ttyC5. Das Terminal ttyC4 ist für die Benutzung des X-Window-Systems reserviert, was noch fünf Textkonsolen übrig lässt. Du kannst zwischen ihnen hin- und herspringen, indem du die Tastaturkombinationen [STRG]+[ALT]+[F1], [STRG]+[ALT]+[F2], [STRG]+[ALT]+[F3], [STRG]+[ALT]+[F4] und [STRG]+[ALT]+[F6] benutzt.

Die X-Umgebung benutzt ttyC4: [STRG]+[ALT]+[F5]. Wenn du X benutzt, bringen dich die [STRG]+[ALT]+[Fn]-Tasten auf die Textkonsolen und [STRG]+[ALT]+[F5] bringt dich wieder auf die grafische Oberfläche.

Wenn du mehr als die standardmäßige Anzahl der Textkonsolen haben willst, kannst du den Befehl wsconscfg(8) benutzen, um Bildschirme für ttyC6, ttyC7 und weitere zu erzeugen. Zum Beispiel:

wsconscfg -t 80x25 6
Dieser Eintrag erzeugt ein virtuelles Terminal für ttyC6, welches man mit [STRG]+[ALT]+[F7] erreicht. Vergiss nicht, diesen Befehl deiner rc.local(8)-Datei hinzuzufügen, wenn der zusätzliche Bildschirm auch nach dem nächsten Neustart noch vorhanden sein soll.

Denk daran, dass du keinen login:-Prompt auf der neu erzeugten virtuellen Konsole erhältst, bis du sie in /etc/ttys(5) auf on setzt und entweder mit init(8) neustartest oder ein HUP-Signal mittels kill(1) sendest.

Auf dem Zaurus stehen standardmäßig zwei virtuelle Terminals (/dev/ttyC0 und /dev/ttyC1) zur Verfügung, die mit den Tastenkombinationen [ALT]+[CALENDAR] und [ALT]+[ADDRESS] erreicht werden können (Die [ALT]-Taste befindet sich rechts neben der linken [CTRL]-Taste).

7.6 - Wie kann ich eine Konsolenauflösung von 80 x 50 bekommen? (amd64, i386, paar Alphas)

Anwender der Architekturen amd64, i386 oder VGA-Alpha haben normalerweise eine Konsole mit 25 Zeilen und je 80 Buchstaben. Viele VGA-Grafikkarten sind aber in der Lage, eine höhere Textauflösung von 50 Zeilen mit 80 Buchstaben darzustellen.

Zunächst einmal kann man einen Font, der die gewünschte Auflösung unterstützt, mittels des Befehls wsfontload laden. Der standardmäßige Textbildschirm mit der Auflösung 80x25 benutzt 8x16-Pixelfonts; um die vertikale Auflösung zu verdoppeln, müssen wir 8x8-Pixelfonts benutzen.

Danach müssen wir die virtuelle Konsole löschen und in der gewünschten Auflösung neu erzeugen. Das machen wir mit dem Befehl wsconscfg.

Das kann während des Bootens automatisch am Ende deiner rc.local-Datei geschehen:

wsfontload -h 8 -e ibm /usr/share/misc/pcvtfonts/vt220l.808 wsconscfg -dF 5 wsconscfg -t 80x50 5
Wie bei jeder Änderung deiner Systemkonfiguration solltest du etwas Zeit mit den passenden Manualseiten verbringen, um zu verstehen, was diese Befehle eigentlich tun.

Die erste Zeile dort oben lädt den 8x8-Schriftsatz. Die zweite Zeile löscht den virtuellen Bildschirm Nummer 5 (den man mit [STRG]-[ALT]-[F6] erreichen würde). Die dritte Zeile erzeugt einen neuen Bildschirm 5 mit der Auflösung 50 Zeilen mit je 80 Buchstaben. Wenn du alles so gemacht hast, werden deine anderen virtuellen Bildschirme ganz normal im 80x25-Modus erscheinen; der neue Bildschirm 5 mit 80x50 ist mit [STRG]-[ALT]-[F6] erreichbar.

Denke daran, dass [STRG]-[ALT]-[F1] hier Bildschirm 0 ist. Wenn du die anderen Schirme auch ändern willst, wiederhole einfach die Schritte delete und add screen für jeden Bildschirm, den du mit 80x50 betreiben willst.

Du solltest aber Bildschirm 4 (ttyC4, [STRG]-[ALT]-[F5]) unverändert lassen, da dieser von X als grafischer Schirm genutzt wird. Außerdem ist es nicht möglich, die Auflösung des ersten Konsolendevices zu ändern (also ttyC0).

Selbstverständlich können all diese Befehle auch als root an der Konsole eingegeben werden - oder besser mittels sudo(8).

Hinweis: Das funktioniert nicht mit allen Grafikkarten. Dummerweise unterstützen nicht alle Grafikkarten die von wscons benötigten Schriftsätze für den 80x50-Textmodus. In diesen Fällen solltest du über den Einsatz von X nachdenken.

7.7 - Wie kann ich eine serielle Konsole benutzen?

Es gibt viele Gründe, warum du auf deinem OpenBSD-System eine serielle Konsole benutzen willst: OpenBSD unterstützt auf den meisten Plattformen eine serielle Konsole - die Details weichen aber stark ab.

Bedenke, dass serielles Arbeiten/Interfacing KEINE einfache Sache ist - du wirst oft ungewöhnliche Kabel benötigen und Schnittstellen sind oft nicht zwischen den Maschinen standardisiert und manchmal noch nicht mal auf einer einzelnen Maschine konsistent. Ein komplettes Tutorial über serielles Arbeiten/Interfacing geht zwar weit über die Möglichkeiten dieses Artikels hinaus, aber wir geben dir trotzdem einen guten Rat: Nur weil der Stecker hineinpasst, heißt das noch lange nicht, dass es auch funktioniert.

/etc/ttys-Änderung

Es gibt zwei Punkte, um eine funktionierende serielle Konsole unter OpenBSD zu erhalten. Erstens musst du OpenBSD haben, um deinen seriellen Port als Konsole für Statusausgaben und Singleuser-Modus benutzen zu können. Zweitens muss deine serielle Schnittstelle eingeschaltet sein, um als interaktives Terminal benutzbar zu sein, so dass ein Benutzer sich einloggen kann, wenn die Maschine im Multiuser-Betrieb läuft. Dieser Teil ist zwischen den verschiedenen Plattformen relativ gleich und wird hier besprochen.

Terminalsitzungen werden von der Datei /etc/ttys kontrolliert. Bevor OpenBSD dir auf der seriellen Konsole einen login:-Prompt serviert, musst du das ganze in /etc/ttys einschalten - normalerweise gibt es ja andere Verwendungen für die serielle Schnittstelle. Bei Plattformen, die normalerweise eine angeschlossene Tastatur und einen angeschlossenen Bildschirm haben, ist die serielle Konsole standardmäßig ausgeschaltet. Wir benutzen hier die i386-Plattform als Beispiel. In diesem Fall musst du die Zeile editieren, die wie folgt aussieht: tty00 "/usr/libexec/getty std.9600" unknown off Ist so zu ändern in, dass sie so ähnlich wie folgt aussieht: tty00 "/usr/libexec/getty std.9600" vt220 on secure Die serielle Schnittstelle ist in diesem Fall die Gerätedatei tty00, die wir als Konsole nutzen wollen. vt220 ist dabei der termcap(5)-Eintrag, der DEIN Terminal beschreibt (weitere häufig genutzte Optionen sind vt100, xterm etc.). Das on aktiviert das getty für die serielle Schnittstelle, sodass ein login:-Prompt präsentiert wird, die Option secure erlaubt ein root- (UID 0) Login auf dieser Konsole (das kann man wollen - oder auch nicht) und 9600 ist die Baudrate des Terminals. Du solltest dabei die Baudrate aber nicht auf den maximalen Wert stellen, der von deiner Hardware unterstützt wird, da eine solche Einstellung weitaus mehr Probleme als Nutzen verursachen wird. Die meisten System haben eine Standardgeschwindigkeit (liegt bei Boot-ROMs und/oder dem Bootloader meist bei 9600). Verwende diesen Wert, wenn du keinen guten Grund hast, einen anderen nutzen zu müssen.

Denke daran, dass du die serielle Konsole auch ohne diese Schritte für Installationen benutzen kannst, da das System im Singleuser-Modus läuft und getty gar nicht erst für den Login benutzt wird.

Auf einigen Plattformen und einigen Konfigurationen ist es notwendig, das System im Singleuser-Modus zu booten, damit die Änderungen durchgeführt werden können.

amd64 und i386

Um den Bootprozess dazu zu bewegen, die serielle Schnittstelle als Konsole zu verwenden, erzeuge oder editiere deine /etc/boot.conf-Datei, damit sie folgende Zeile enthält: set tty com0 Damit kannst du die erste serielle Schnittstelle als Konsole verwendest. Die Standardbaudrate ist 9600 bps, das kann mittels der stty-Option in /etc/boot.conf angepasst werden. Diese Datei wird auf deinem Bootlaufwerk abgelegt (kann auch deine Installationsdiskette sein); das Kommando kann aber ebenso gut am boot>-Prompt vom OpenBSD-Secondstage-Bootloader eingegeben werden, wenn es nur ein einziges Mal (oder zum ersten Mal) genutzt werden soll.

Hinweise für amd64 und i386:

SPARC und UltraSPARC

Diese Maschinen sind so entworfen worden, dass sie vollständig über eine serielle Konsole gewartet werden können. Entferne einfach die Tastatur von der Maschine und das System läuft über die serielle Konsole.

SPARC- und UltraSPARC-Hinweise

MacPPC

Die MacPPC-Maschinen sind durch OpenFirmware für die Benutzung mittels serieller Konsole vorbereitet. Benutze die folgenden Befehle: ok setenv output-device scca ok setenv input-device scca ok reset-all Setze deine serielle Konsole auf 57600 bps, 8N1.

MacPPC-Hinweise

Mac68k

Die serielle Konsole wird im Booter-Programm ausgewählt (im "Options"-Pulldownmenü, dann "Serial Ports". Prüfe den "Serial Console"-Knopf, dann wähle die Modem- oder Druckerschnittstelle). Du wirst ein Macintosh-Modem oder -Druckerkabel an die serielle Schnittstelle des Macs anschließen müssen. Wenn das in Zukunft deine Standardeinstellung sein soll, musst du dem Booterprogramm sagen, dass es deine Optionen speichern soll.

Mac68k-Hinweise

7.8 - Wie schalte ich meinen Konsolenbildschirmschoner ein? (wscons)

Wenn du möchtest, dass sich deine Konsole nach einer gewissen Inaktivität von X ausschaltet, kannst du die folgenden wscons(4)-Variablen ändern: Du kannst diese Variablen auf der Kommandozeile mittels des wsconsctl(8)-Befehls setzen: # wsconsctl -w display.screen_off=60000 display.screen_off -> 60000 oder sie dauerhaft setzen, indem du sie in der Datei /etc/wsconsctl.conf einträgst, sodass sie beim nächsten Bootvorgang aktiviert werden: display.vblank=on # enable vertical sync blank display.screen_off=600000 # set screen blank timeout to 10 minutes display.kbdact=on # Restore screen on keyboard input display.outact=off # Restore screen on display output Der Bildschirmschoner wird entweder aktiv, wenn display.kbdact oder display.outact auf on gesetzt sind.

7.9 - ALLES, WAS ICH AM LOGINPROMPT SCHREIBE, IST IN GROSSBUCHSTABEN!

Tatsächlich ist das eine Funktionalität, kein Fehler.

Nahezu alle Unix-Befehle und -Benutzernamen werden in Kleinbuchstaben eingegeben. Trotzdem waren einige alte Terminals nur in der Lage, Großbuchstaben zu benutzen, was es für sie unmöglich machte, für Unix benutzt zu werden. Als Umgehung des Problems hat getty(8), wenn du deinen Benutzernamen komplett in Großbuchstaben eingegeben hast, angenommen dass dein Terminal »lowercase challenged« sei und hat einfach alles, was du getippt hast, als Kleinbuchstaben interpretiert, es allerdings alles in Großbuchstaben ausgegeben. Wenn du ein gemischtes oder Nur-Großbuchstaben-Passwort hast, kannst du dich nicht einloggen.

Wenn du [STRG]-D am Loginprompt drückst, wird getty(8) beendet und init(8) wird einen neuen starten, der dann Groß- und Kleinbuchstaben sauber akzeptiert.

[FAQ-Index] [Zum Kapitel 6 - Netzwerken] [Zum Kapitel 8 - Allgemeine Fragen]


[back] www@openbsd.org
$OpenBSD: faq7.html,v 1.65 2007/11/12 20:29:59 saad Exp $