Schönen guten Tag euch allen =)
Also erstmal wollte ich nachsehen ob es schon derartige Gelöste Themen gibt. Jedoch wird mir in der Suche Jeder Schreibfehler und alles andere mögliche angezeigt was meine suche beinhaltet naja nun denn:
Ich schau des öfteren bei RehabMan seiner Public Activity vorbei und hab wieder was entdeckt und zwar den ACPIKeyboard.kext
Link zu RehabMan Github: https://github.com/RehabMan/OS-X-ACPI-Keyboard
Im Spoiler die ganz einfach Übersetzte Version der Anleitung mit G.-Translate
Von RehabMan ACPIKeyboard.kext
Der Zweck dieser kext ist es, Tastenanschläge, um von ACPI-Code als Reaktion auf ACPI Ereignisse, vor allem EG-Abfragen generiert werden. Viele moderne Laptops verwenden ACPI EG-Abfragen, wenn spezielle "media" Funktionstasten gedrückt werden, wie beispielsweise die "Helligkeit erhöhen" und Schlüssel "Helligkeit verringern".Diese kext kann verwendet werden, um die Ereignisse in ADB Tastenanschlag Ereignisse, die von OS X als normalen Tastenbetätigungen interpretiert drehen werden.
Um die kext verwenden, müssen Sie:
patchen DSDT, eine sehr einfache RMKB0000 Gerät hinzuzufügen, auf die die kext anhängen
festzustellen, welche ACPI Ereignisse werden erzeugt, wenn die Tasten gedrückt werden, und ersetzen Sie diese Methoden mit einer kleinen Menge an Code, "Benachrichtigungen" auf den RMKB Gerät erzeugt, um die ACPIKeyboard.kext angebracht ist.
Installieren Sie das ACPIKeyboard.kext
Wenn Sie meine Version von VoodooPS2Controller.kext sind (z. Haben Sie ein Synaptics Trackpad), können Sie diese kext brauchen nicht wie die Funktionalität, um ACPI-Benachrichtigungen ist bereits zu diesem kext integrierten Griff. Im Gegensatz zu diesem kext mit VoodooPS2Controller.kext, Mitteilungen enthalten PS2 Scancode Daten anstelle von ADB-Codes. Dies ist vorteilhaft, da die PS2-Codes gesendet werden, können mit dem Scancode Mapper, die Teil VoodooPS2Controller.kext ist übersetzt werden.
Die primären Nutzer dieses kext werden diejenigen, die mit einem anderen PS2 kext sind, weil sie eine andere Trackpad von meiner Version von VooodooPS2Controller.kext nicht gut unterstützt (zB. Die mit ELAN Trackpads) haben.
Downloads:Downloads sind auf bitbucket verfügbar:
https://bitbucket.org/RehabMan/os-x-acpi-keyboard/downloads
Wie installiert man:Installieren Sie die kext mit Ihrem Lieblings-kext Installationsprogramm wie Kext Wizard. Die Debug-Verzeichnis ist für die Fehlersuche nur im normalen "Arbeiten" installiert, sollten Sie in der Release-Version zu installieren.
UsageDamit die kext zu laden, müssen Sie eine "RMKB0000" Gerät im ACPI-Namespace, der Fahrer anzubringen haben. Sie können die "patch.txt" mit MaciASL benutzen, um Ihre DSDT, um diese ACPI-Gerät hinzufügen patchen.
Der Patch wird ein Gerät wie hinzufügen:
Gerät (RMKB)
{
Name (_HID "RMKB0000")
}
Das ist genug, um den Treiber zu laden und eine Senke für Ereignisse bewirken (über Benachrichtigen).
Um die ACPI Ereignisse abzufangen, müssen Sie bestimmen, welche Methoden aufgerufen werden, wenn die Tasten gedrückt werden. Normalerweise Medientasten erzeugen EG Abfragen. Eine einfache Strategie ist es, ACPIDebug.kext Instrumenten alle EG-Abfragemethoden zu verwenden, dann drücken Sie die Tasten während der Überwachung system.log. Wenn Sie die Tasten drücken, wird der Name der Methode ausgegeben, die Ihnen erlauben, diese Methode zu patchen werden.
Bestimmen EG Abfragemethoden:
Installieren ACPIDebug.kext: https://github.com/RehabMan/OS-X-ACPI-Debug
Direkter Link: https://bitbucket.org/RehabMan/os-x-acpi-debug/downloads
fügen Sie die ACPIDebug Repo um MaciASL pro README
gelten "" hinzufügen DSDT Debug Methods "
gelten "Instrument EG Abfragen"
rebooten
überwachen system.log, wie Sie Ihre Helligkeit Tasten drücken
Nachdem Sie festgestellt haben, welche Methoden, um die Helligkeit Tasten entsprechen, können Sie die Methoden patchen ...
Unter der Annahme, _Q10 ist Helligkeit nach unten, und _Q11 liegt:
in Verfahren Label _Q10 replace_content
Start
// Helligkeit verringern \ n
Benachrichtigen Sie (\ RMKB, 0x2191) \ n
Benachrichtigen Sie (\ RMKB, 0x2291) \ n
Ende;
in Verfahren Label _Q11 replace_content
Start
// Helligkeit erhöhen \ n
Benachrichtigen Sie (\ RMKB, 0x2190) \ n
Benachrichtigen Sie (\ RMKB, 0x2290) \ n
Ende;
Das Format der über Benachrichtigen gesendeten Daten ist wie folgt:
höherwertigen 16 Bits müssen 0x11, 0x12, 0x21, 0x22 oder sein
0x11 zeigt delegierten keydown, 0x12 zeigt delegiert keyup
0x21 zeigt nicht delegiert keydown, 0x22 zeigt nicht delegiert keyup
die niederwertigen 16 Bits enthalten die ADB-Code gesendet werden soll
ADB Codes werden durch den von ACPIKeyboard :: defaultKeymapOfLength in ACPIKeyboard.cpp zurückgegebenen Daten definiert.
In unserem Beispiel werden wir nach oben und unten das Senden nicht delegiert Helligkeit, die 0x91 und 0x90 sind, auf.Beachten Sie, dass jeder Tastendruck erfordert sowohl eine nach unten und nach oben (zu machen und brechen) Code gesendet werden soll.
Delegierte ADB-Codes werden durch die reale PS2-Treiber gesendet (falls installiert). Es wird versucht, die PS2 IOHIKeyboard Gerät, das mit einem PS2-Tastatur zugeordnet ist, zu finden. Wenn einer gefunden wird, werden delegiert Schlüssel durch diesen Tastaturobjekt statt der Tastatur Objekt ACPIKeyboard bereitgestellt gesendet. Dies hat den Vorteil der Zusatztasten (Shift, Ctrl, Option, Command) arbeitet als man erwarten würde. Es ist möglich, die PS2-Tastatur-Treiber installiert verwendet eine andere Tastaturbelegung (daher verschiedene ADB-Codes) als diesen Treiber. Sie können die Tastaturbelegung in ioreg (HIDKeyMapping) zu sehen.
Nicht delegiert ADB-Codes direkt von der von diesem Treiber implementiert Tastatur Objekt gesendet. In diesem Fall haben Sondertasten keine Wirkung, da die Modifikatoren werden nach unten auf eine statt "andere Tastatur." Sie sollten delegiert ADB-Codes verwenden, wenn möglich.
Bitte beachten Sie: Sie müssen eine Arbeitshelligkeitsregler, bevor Sie Ihren Helligkeitstasten beheben.
** Wichtiger Hinweis über die ELAN PS2-Tastatur-Treiber **
Es können unterschiedliche Codes für bright nach oben / unten zu verwenden. Helligkeit bis = 0x4D, Helligkeit nach unten = 0x4F?
Unter der Annahme, das der Fall ist, die gleiche Patch über würde geschrieben werden:
in Verfahren Label _Q10 replace_content
Start
// Helligkeit verringern \ n
Benachrichtigen Sie (\ RMKB, 0x114f) \ n
Benachrichtigen Sie (\ RMKB, 0x124f) \ n
Ende;
in Verfahren Label _Q11 replace_content
Start
// Helligkeit erhöhen \ n
Benachrichtigen Sie (\ RMKB, 0x114d) \ n
Benachrichtigen Sie (\ RMKB, 0x124d) \ n
Ende;
Hinweis: Der Patch über verwendet delegiert ADB-Codes (0x11xx / 0x12xx) und verwendet die für die ELAN-Treiber anstelle der von den meisten PS2-Treiber verwendeten Codes entsprechenden Codes und diesen Treiber (0x4D / 0x4F vs. 0x90 / 0x91).
Mehr ADB-Codes für ELANMit der ELAN PS2 keyboar Treiber geladen, wenn man sich HIDKeyMapping unter PS2K aussehen ... ApplePS2Keyboard, diese Daten am Ende finden Sie: [code] 10 00 48 01 49 02 03 4d 4f 04 39 05 72 06 07 7f 4a 0a 47 0E 70 0F 50 10 42 11 44 12 46 13 40 14 34 [/ code]
Dies ist die "Sondertaste" Bereich der Tastaturbelegung (die Bits von IOHIKeyboard :: defaultKeymapOfLength zurück) Das erste Byte 0x10 ist die Anzahl von Codes, die folgen (ich arbeitete rückwärts vom Ende, um dies zu überprüfen).
Die folgenden Bytes sind somit 16 Paar spezielle Codes. Das erste Byte in dem Paar ist ein NX_KEYTYPE (Codes in der SDK ev_keymap.h definiert). Das zweite Byte ist die ADB-Code.
Also, Sie haben diese Paare:
00 48 // NX_KEYTYPE_SOUND_UP
01 49 // NX_KEYTYPE_SOUND_DOWN
02 4d // NX_KEYTYPE_BRIGHTNESS_UP
03 4f // NX_KEYTYPE_BRIGHTNESS_DOWN
04 39 // NX_KEYTYPE_CAPS_LOCK
05 72 // NX_KEYTYPE_HELP
06 7f // NX_POWER_KEY
07 4a // NX_KEYTYPE_MUTE
0a 47 // NX_KEYTYPE_NUM_LOCK
0E 70 // NX_KEYTYPE_EJECT
0f 50 // NX_KEYTYPE_VIDMIRROR
10 42 // NX_KEYTYPE_PLAY
11 44 // NX_KEYTYPE_NEXT
12 46 // NX_KEYTYPE_PREVIOUS
13 40 // NX_KEYTYPE_FAST
14 34 // NX_KEYTYPE_REWIND
So, jetzt wissen Sie, was (delegiert) ADB-Codes (zweite Spalte) zu schicken, um jede dieser Funktionen zu implementieren.
Ich hab das jetzt schonmal so Veröffentlicht aber arbeite an ein wenig leichter verständlichen version in dem ich es bei mir selbst Testen werde.
Schreibt Ihr doch mal ob für euch schon andere lösungen benutzt werden um mit den FN Tasten richtig zu Arbeiten.
Mfg Fab
EDIT: Also beim ersten Download Link zu Bitbucket erhaltet Ihr den benötigten und den DSDT Patche für den RMBK.
Ich hab mir jetzt eine RMKB.aml (Also eine DSDT.aml mit anderen Namen angelegt und den Kext in S/L/E Installiert sowie der zum auslesen benötigteACPI-Debug kext und ich lass die PS2 kexte erstmal drinnen und Teste