Ich möchte wissen, wie eine Tastatur mit zusätzlichen Tasten funktioniert. Nehmen wir zum Beispiel an, ich habe die folgende Tastatur:
Sie können sehen, dass es zusätzliche Tasten hat. Nehmen wir nun an, ich habe diestummSchlüssel, was passiert in diesem Fall?
Ich denke, das passiert:
- Ein Signal wird an den Computer gesendet.
- Der Tastaturgerätetreiber empfängt dieses Signal.
- Der Tastaturgerätetreiber erkennt, dass es sich bei diesem Signal um ein Stummschaltsignal handelt, und gibt es daher nicht an das Betriebssystem weiter. Stattdessen ruft er eine Betriebssystemfunktion/einen Systemaufruf auf, der den Ton auf dem Computer stummschaltet.
Hab ich recht?
Antwort1
Sehr kurzer Überblick über die Eingabeebenen:
Ihr Tastaturgerät ist auf irgendeine Weise mit dem PC verbunden, beispielsweise über USB oder einen PS/2-Anschluss. Die Kerneltreiber für diesen Mechanismus wissen, wie die Kommunikation zu handhaben ist, wenn eine Taste auf der Tastatur gedrückt wird.
Für eine USB-Tastatur gibt es einen Standard namensVERSTECKTE(Human Interface Device) existieren. Dies gilt nicht nur für Tastaturen, sondern auch für Mäuse, Joysticks und andere Eingabegeräte. Das Gerät wird also eineBeschreibungdem Kernel mitteilen, welche Art von Signalen er ausgeben kann, und viele Codes für Schlüssel, einschließlichstummsind standardisiert.
Dennoch verfügen einige Tastaturen über Tasten, die nicht standardisiert sind (wie beispielsweise die Fnauf manchen Tastaturen), und es ist dem Hersteller überlassen, wie er diese Tasten signalisiert.
Es gibt eine spezielle Schicht im Kernel für die Handhabung von HID-Geräten. Diese Schicht macht die Roh-HID-Kommunikation verfügbar /dev/hidrawX
und übersetzt dann die HID-Ereignisse in Kernel-Eingabeereignisse.
Die Kernel-Eingabeschicht übernimmtScan-Codes(Zahlen, die einem physischen Schlüssel entsprechen, der für das Gerät eindeutig ist) und wandelt sie inSchlüsselcodes(Nummern, die den auf allen Geräten standardisierten logischen Schlüsseln entsprechen). Beide werden als Ereignisse auf bereitgestellt /dev/input/eventX
. Sie können evdev
diese Ereignisse mit und showkey
die dumpkeys
Übersetzungstabelle mit usw. anzeigen.
Der X-Server (oder Wayland) liest alle diese Ereignisse und übersetzt sie inTastensymbole(wie a
, á
usw. oder spezielle wie AudioMute
). X-Anwendungen können diese Symbole empfangen und entsprechend reagieren. Sie können see xev
application verwenden, um diese Ebene anzuzeigen und sie mit xmodmap
und der xkbd
Spezifikation in Ihrem zu konfigurieren xorg.conf
.
Um darauf reagieren zu können AudioMute
, ist eine entsprechende Anwendung erforderlich. Oft ist dies der Fenstermanager, aber wenn Ihr Fenstermanager dies nicht kann, funktioniert auch eine separate Anwendung.
Es gibt also keinen einzelnen „Tastaturtreiber“, es ist viel komplizierter und es gibt keinen speziellen Aufruf für die Stummschaltung.
Antwort2
Im Allgemeinen haben Sie recht. Wenn Sie eine Taste drücken, sendet die Tastatur einen Scancode, im Grunde eine Zahlenfolge, die jede Taste identifiziert. Scancodes werden Tastencodes zugeordnet. Jeder Tastencode entspricht einer Funktion, die definiert, wie das Programm auf einen bestimmten Tastendruck reagieren soll. Beachten Sie, dass Xorg und die Konsole unterschiedliche Tastencodesätze verwenden. Ich weiß nicht viel über Wayland, aber vielleicht verwendet es auch seinen eigenen Tastencodesatz. Tastencodes werden Tastensymbolen zugeordnet. Tastensymbole ermöglichen es Entwicklern, auf einer höheren Abstraktionsebene mit der Tastatur zu arbeiten.
Sie können die Scancodes und Keycodes auf der Konsole sehen, indem Sie bzw. ausführen showkey --scancode
. showkey --keycode
In Xorg sollten Sie xev
für Letzteres verwenden.
Diese Abstraktionsebenen ermöglichen Ihnen die Erstellung flexibler und komplexer Zuordnungsschemata, die verschiedene Teile Ihrer Linux-Umgebung beeinflussen. DiesArchWiki-Artikelenthält zahlreiche Informationen zu Mapping-Techniken und Sie sollten es lesen, wenn Sie mehr wissen möchten.
Es gibt auch vieleArtikelim Internet finden Sie viele Artikel, die erklären, wie Tastaturen auf niedriger Ebene funktionieren. Es spielt keine Rolle, ob der Artikel 1999 oder 2010 geschrieben wurde – seitdem hat sich bei Tastaturen nicht viel geändert. Bedenken Sie jedoch, dass USB-HID-Geräte anders funktionieren als „klassische“ PS/2-Tastaturen.