Клавиатура Apple Magic (беспроводная) не работает правильно, клавиша Fn не работает, по умолчанию клавиши F1-F12 не являются медиа-клавишами.
Следующее не решает проблему: echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode
Я подумал, что он не использует один и тот же драйвер для USB и Bluetooth, и это действительно так:
usbhid
hid-generic
Я наткнулся на этот репозиторий водителя hid-apple
, который, кажется, решает проблему, описанную в точности как тот, который у меня есть. Но это с 2011 года, и я не уверен, что это исправит это, потому что у меня уже есть это:
$ lsmod | grep hid_apple
hid_apple 16384 0
hid 122880 7
hidp,usbhid,hid_apple,hid_generic,hid_logitech_dj,hid_logitech_hidpp
Таким образом, кажется, что Bluetooth должен использовать драйвер hid_apple
или usbhid
?
Если так: Как я могу настроить, какой драйвер использует моя клавиатура Bluetooth?
Я также обнаружил следующую ошибку, которая, кажется, была исправлена в прошлом. https://bugzilla.kernel.org/show_bug.cgi?id=99881#c41
Я использую Ubuntu 18.04 с ядром 4.17.0-rc4 [+1121]. Я использую это ядро, потому что оно единственное, что делает мою функцию Bluetooth / Wi-Fi чипом Realtek 8822be.
Клавиша fn
на Моя модель клавиатуры Apple bluetooth A1644 уменьшала яркость экрана (символ клавиш был XF86MonBrightnessDown). Меня интересовало изменение вкладок в Firefox с помощью Ctrl
+ PageDown
и Ctrl
+ PageUp
, что требует fn
и стрелки вверх / вниз для ( PageUp
/ PageDown
). Решение (, вдохновленное этим обменом ) заключалось в замене fn
на клавишу-модификатор ( Shift
, AltGr
или Shift
+ AltGr
), а затем установите соответствующий символ клавиш для стрелок вверх / вниз. Я использовал xev, чтобы выяснить, что код клавиши для fn
- 232 (и 111 и 116 для стрелок вверх и вниз соответственно). Как упоминалось в ссылке, первый символ клавиши (имя символа или функциональной клавиши) после знака равенства - это тот, который соответствует пустой клавише, затем идет тот, который соответствует клавише с Shift
, затем AltGr
и, наконец, с помощью Shift
+ AltGr
. Затем я использовал следующее для отображения и настройки модификатора:
xmodmap -e 'keycode 232 = Mode_switch'
xmodmap -e 'keycode 111 = Up Up Prior'
xmodmap -e 'keycode 116 = Down Down Next'
Вместо стрелок вверх (111) и вниз (116) вы можете использовать это для F1
- F12
.
Ядро Linux 5.6 исправил это. Существует также сторонний модуль hid-apple-patched, который включает в себя исправление и предоставляет больше возможностей для замены ключей и может быть установлен на любое ядро.
Следуя аналогичным шагам, упомянутым здесь, я обновил ядро Ubuntu до версии 5.6.3 (5.6 имеет проблемы с подключением к Wi-Fi), и теперь моя клавиатура работает без сбоев.
Шаги, упомянутые в приведенной выше ссылке, следующие (для обновления до 5.6.3):
В зависимости от типа вашей ОС загрузите и установите пакеты по очереди:
Выберите generic для обычной системы и lowlatency для системы с низкой задержкой (например, для записи аудио), amd64 для 64-битной системы или armhf, arm64 и т. д. для других типов ОС.
Кроме того, вы можете загрузить и установить бинарные файлы ядра с помощью команд терминала (открыть терминал с помощью Ctrl+Alt+T):
Для 64-битной ОС:
cd /tmp/
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6.3/linux-headers-5.6.3-050603_5.6.3-050603.202004080837_all.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6.3/linux-headers-5.6.3-050603-generic_5.6.3-050603.202004080837_amd64.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6.3/linux-image-unsigned-5.6.3-050603-generic_5.6.3-050603.202004080837_amd64.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6.3/linux-modules-5.6.3-050603-generic_5.6.3-050603.202004080837_amd64.deb
sudo dpkg -i *.deb
Я использовал это для подписи мое ядро, потому что оно жаловалось на неверную подпись при загрузке (из-за активации безопасной загрузки). Аналогичная и более подробная инструкция по подписанию модулей была упомянута в блоге Ubuntu здесь.