Wie funktionieren Fn-Tasten?

26

Ich möchte wissen, wie FnSchlüssel in meinem Laptop funktionieren. Ich denke, es gibt ein Kernel-Modul, das FnSchlüssel abfängt und einige Skripte aufruft, um etwas zu tun. In meinem Laptop Fn+ F2schalten Sie die Stromversorgung von WLAN und Bluetooth.

Dies wird ausgegeben acpi_listen, wenn ich Fn+ drückeF2

hotkey ATKD 0000005d 00000019
hotkey ATKD 0000007e 00000009

und das Folgende wird xevfür Fn+ ausgegebenF2

keycode 238 press
keycode 238 release
keycode 237 press
keycode 237 release

Ich denke , wenn ich gedrückt Fn+ F2zwei Ereignisse springt aus. Ich habe versucht herauszufinden, welche Aktionen für diese Tasten ausgeführt werden. jede idee geschätzt;)

soroosh
quelle

Antworten:

26

Synetech gibt eine sehr lesbare Erklärung über die FnTasten hier

Technische Details

Wenn Sie eine Taste auf einer Tastatur drücken, erkennt der Tastaturcontroller (ein kleiner IC-Chip in der Tastatur) den Stromkreis und verarbeitet ihn, um zu dekodieren, welche Taste gedrückt wurde, und sendet den Scancode dann an das Motherboard . Das Betriebssystem empfängt den Scancode vom BIOS und führt dann die erforderlichen Aktionen aus, um diesen Tastendruck zu verarbeiten.

Bei den meisten Schlüsseln ist dies einfach genug. Wenn Sie die A Taste drücken, sendet der Tastaturcontroller den Scancode an das Motherboard, das ihn dann an das Betriebssystem weiterleitet, das normalerweise "A" ausgibt. (Wenn das Betriebssystem feststellt, dass derzeit eine der Modifikatortasten Agedrückt gehalten wird, kann dies zu einer anderen Aktion führen. Sie können sie sogar so konfigurieren, dass beim Drücken der Taste mit oder ohne Modifikatoren alle gewünschten Aktionen ausgeführt werden.)

Jetzt ist der FnSchlüssel etwas Besonderes. Wenn Sie es von selbst drücken, geschieht nichts, da es sich ausschließlich um eine Modifizierertaste handelt und (im Allgemeinen) nichts für sich tun soll. Wenn Sie die Taste gedrückt halten und eine andere Taste drücken, erkennt der Tastaturcontroller dies und prüft in der integrierten Tabelle, ob es sich um eine bekannte Kombination handelt. Befindet sich die Combo nicht in der Tabelle, ignoriert sie sie einfach. Befindet sich die Combo jedoch in der Tabelle, sucht sie den zugehörigen Scancode und sendet diesen.

Was sieht das Betriebssystem am Ende? Es ist nicht zu sehen , den Scancode für den FnSchlüssel und der Scancode für die andere Taste. Stattdessen wird ein einzelner Scancode angezeigt, der mit der Funktion verknüpft ist, auf die die Fn-Kombination eingestellt wurde. Wenn der Laptop-Hersteller beispielsweise die Fn+ Down Arrow-Kombination eingestellt hat, um die Lautstärke zu verringern, sieht das Betriebssystem den Scancode, der mit dem assoziiert ist Volume Down, über den einige Tastaturen tatsächlich verfügen.

Beachten Sie auch, dass der FnSchlüssel unabhängig vom Betriebssystem funktioniert.

Darüber hinaus kann dieser Artikel dazu beitragen, dass Sie in die richtige Richtung weisen:

Der Kernel hat seine eigene scancodezu keycodeZuordnungstabelle, so dass es ordnet einen bestimmten Scancode zu einem Schlüsselcode. Sie können in /usr/include/linux/input.h nachsehen, was Ihr Kernel für die Zuordnung von Scancode zu Keycode verwendet keymap.


Nachsatz

Ich muss vielleicht etwas auf die frühere Behauptung verzichten, dass die FnSchlüssel völlig unabhängig vom Betriebssystem funktionieren . Ohne hier auf weitere technische Details einzugehen, scheint das Ergebnis zu sein, dass Ihr Betriebssystem möglicherweise nicht alle oder einige der FnTasten Ihrer Tastatur "unterstützt" , siehe zum Beispiel:

verrückt nach natty
quelle
1
Vielen Dank, interessante Informationen zu Fn-Schlüsseln. Eigentlich möchte ich herausfinden, welcher Teil des Betriebssystem-Handles scancodebeispielsweise mit "Schlüsselcode 238" verknüpft ist.
Soroosh
3
Vielleicht kann dieser Artikel Ihnen helfen, in die richtige Richtung zu weisen? „Der Kern hat seine eigene scancodezu keycodeZuordnungstabelle, so dass es eine bestimmte Scancode zu einem keycode Karten Sie in /usr/include/linux/input.h schauen, um zu sehen , was Ihr Kernel Anwendungen für Scancode zu Keycode Mapping -. Es genannt wird , keymap. "
verrückt nach natty
1
Dieser Artikel ist perfekt, das ist, was ich suche
Soroosh