[闲聊] Linux下解决键盘F1~F12失效的问题

楼主: rail02000 (台中2B月台)   2022-02-26 23:09:22
※ [本文转录自 Key_Mou_Pad 看板 #1Y6a9Kdx ]
作者: rail02000 (台中2B月台) 看板: Key_Mou_Pad
标题: [闲聊] Linux下解决键盘F1~F12失效的问题
时间: Sat Feb 26 23:07:58 2022
简单来说
有些键盘在Linux下,F1~F12(F区)会发生错误,无法正常对应。
透过修改hid_apple可解决这个问题
详细状况
前几天询问板友后,顺利入手irocks K71R,
一切都很美好,直到按下F1~F12发现没有反应。
我的系统是openSUSE Tumbleweed,
以前的键盘,包括笔电键盘都没问题,这是第一次遇到。
透过xev确认keycode,举例来说:
有线模式下,F1~F10正确对应到keycode 67-76
无线模式下,F1却跳到keycode 232、F9跳到171与音量调整相冲。
查了几篇资料,得知与配置有关
https://wiki.archlinux.org/title/Apple_Keyboard#Function_keys_do_not_work
https://forums.opensuse.org/showthread.php/506437
https://asaba.sakuragawa.moe/2021/07/
%E4%BF%AE%E5%BE%A9-fedora-gnu-linux-%E7%B3%BB%E7%B5%B1%E4%B8%8B%E7%9A%84%E9
%8D%B5%E7%9B%A4%E5%8A%9F%E8%83%BD%E5%8D%80%EF%BC%88f-
%E5%8D%80%EF%BC%89%E6%8C%89%E9%8D%B5/
(缩址:https://reurl.cc/7elaO5)
系统核心判断为“按下后直接触发媒体键”,而不是F1~F12该有的动作。
若键盘有Win/Mac双模式,
切换成Mac模式也许可解决F1~F12的问题,但Alt与Meta键又会相反。
此时可用以下指令暂时修改
$echo 2 >> /sys/module/hid_apple/parameters/fnmode
要永久修改有两个方法
①需要调整modprobe.d下的档案。
 档案位置依发行版本不同,fedora和openSUSE应该都是
 /etc/modprobe.d/50-hid_apple.conf
 并在档案加入 options hid_apple fnmode=1
 第三篇文章提到,fedora等发行版本需更新dracut
 $echo " install_items+=/etc/modprobe.d/50-hid_apple.conf" >\
 /etc/dracut.conf.d/50-hid_apple.conf
 $dracut -vf
作者: s8321414 (冥王欧西里斯)   2022-02-27 08:44:00
\o/
作者: OrzOGC (洞八达人.拖哨天王)   2022-02-27 11:50:00
我还是用普通键盘就好
作者: a58524andy (a58524andy)   2022-02-27 17:29:00
用hwdb去match键盘的vendor/product以及用evemu-describe抓scancode(keycode?)最后把想要的mapping丢在/etc/udev/hwdb.d就行了参考https://yulistic.gitlab.io/2017/12/linux-keymapping-with-udev-hwdb/缩 https://bit.ly/3plTm9R以及arch wikimap scancodes to keycodes页面https://bit.ly/3HDEcDn优点是键盘制造商有弄好vid/pid的话可以match任意键盘或者说其他键盘可以正常使用以及(我的理解上是)在usb驱动就做好keycode映射所以跟视窗系统无关 也不用xev (which require xorg)毕竟现在发行版不少应该都是wayland而非xorg也因此在tty也能正常工作范例 https://pastebin.com/zKvanZPkhwdb提供的这个功能我觉得是linux人性化程度高于win的一个地方买了dvorak键盘都可以当成qwerty用XD
作者: KAOKAOKAO (鬼斗)   2022-03-03 10:47:00

Links booklink

Contact Us: admin [ a t ] ucptt.com