Linux: Беспроводной ключ A1314 Fn Apple, не зарегистрированный, похож на программную ошибку

Ответ @SiegeX подарки будет работать, но если у Вас есть много файлов в Вашем файле шаблона, это могло бы стать медленным и неуклюжим. Вы могли бы получить намного лучшую производительность при помощи другого инструмента, как это:

find . | grep -f pattern.txt

Да, это было всем этим.

4
04.07.2012, 14:20
2 ответа

Я наконец получил fn ключевую работу! Я должен был скомпилировать свой собственный модуль ядра, чтобы сделать так. Я думаю, что, возможно, решил его более легким способом, но здесь - то, что я сделал:

Я нашел эту ошибку: https://bugs.launchpad.net/ubuntu / + источник/Linux / + ошибка/942184

Самый первый патч, отправленный на той странице, имел мое решение: https://bugs.launchpad.net/ubuntu / + источник/Linux / + ошибка/942184 / + вложение/2788714 / + files/alu2011.patch

Затем я продолжил исправлять и изменять мои модули после статьи и сначала комментировать http://www.codewhirl.com/2012/04/how-to-compile-a-single-module-in-ubuntu-linux/

Я не применял весь патч, только строки, относящиеся к USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI с идентификатором 0x0255, так как этот идентификатор отсутствовал в источнике ядра, который я получил. Я попробовал это, потому что я заметил номер 0255 в системном журнале ранее: generic-bluetooth 0005:05AC:0255.0006: input,hi...

Я не действительно полностью понимаю, как я сделал это, но это работает!

Вот некоторый вывод Xev, нажимая клавишу со стрелкой влево, сначала с, и затем без fn ключа:

KeyPress event, serial 34, synthetic NO, window 0x3000001,
    root 0x15d, subw 0x3000002, time 1502136, (40,28), root:(1235,427),
    state 0x0, keycode 110 (keysym 0xff50, Home), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x3000001,
    root 0x15d, subw 0x3000002, time 1502635, (40,28), root:(1235,427),
    state 0x0, keycode 110 (keysym 0xff50, Home), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 34, synthetic NO, window 0x3000001,
    root 0x15d, subw 0x3000002, time 1504023, (40,28), root:(1235,427),
    state 0x0, keycode 113 (keysym 0xff51, Left), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x3000001,
    root 0x15d, subw 0x3000002, time 1504235, (40,28), root:(1235,427),
    state 0x0, keycode 113 (keysym 0xff51, Left), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Ключ Fn не регистрируется как отдельный ключ, с которым я могу весело провести время xmodmapping, но это достаточно для моих целей, превращая клавиатуру яблока в happy-hacking-like путем переотображения нескольких ключей.

Кажется, что это - весь известная ошибка: https://bugs.launchpad.net/ubuntu / + источник/Linux / + ошибка/911064

1
27.01.2020, 21:00

Моя клавиатура является тем же. Вот патч, который я сделал против ядра Linux 3.4 для создания "fn" ключевой работы.

diff -aur linux-3.4.pristine/drivers/hid/hid-apple.c linux-3.4.new/drivers/hid/hid-apple.c
--- linux-3.4.pristine/drivers/hid/hid-apple.c  2012-07-15 04:45:54.489209371 -0300
+++ linux-3.4.new/drivers/hid/hid-apple.c   2012-07-15 04:41:46.986193078 -0300
@@ -455,6 +455,8 @@
    { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO),
        .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
            APPLE_ISO_KEYBOARD },
+   { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI),
+       .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
    { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO),
        .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
            APPLE_ISO_KEYBOARD },
diff -aur linux-3.4.pristine/drivers/hid/hid-core.c linux-3.4.new/drivers/hid/hid-core.c
--- linux-3.4.pristine/drivers/hid/hid-core.c   2012-07-15 04:45:54.489209371 -0300
+++ linux-3.4.new/drivers/hid/hid-core.c    2012-07-15 04:41:46.986193078 -0300
@@ -1382,6 +1382,7 @@
    { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI) },
    { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO) },
    { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS) },
+   { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI) },
    { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO) },
    { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
    { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
1
27.01.2020, 21:00

Теги

Похожие вопросы