[閒聊] Linux下解決鍵盤F1~F12失效的問題

看板Linux作者 (台中2B月台)時間2年前 (2022/02/26 23:09), 2年前編輯推噓0(0022)
留言22則, 3人參與, 2年前最新討論串1/1
※ [本文轉錄自 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 --regenerate-all ②在GRUB2的開機選項加入parameter  我直接在Yast圖形界面,設定開機時的kernel選項 在quite選項前加入「hid_apple.fnmode=1」即可解決 其他雜談 1.自行用Xmodmap等重新mapping可行嗎? A:應該可用,但不建議。因為調完後我的KDE怪怪的, 而且一樣無法切換terminal (如Ctrl+Alt+F1) 2.已知問題 A:調整後Fn+F1~F12無法使用預設快捷鍵   即便按Fn+F1,一樣是F1的動作。   我常用的只有播放/暫停按鈕,影響不大。 可在Windows下的官方程式,重新指派不常用的按鍵套用媒體功能。   設定後在Linux下可直接沿用。 3.irocks K71R滾輪在Linux下支援度  我的桌面環境是KDE  音量:完全正常(轉動調大調小/按下靜音)  切換視窗:完全正常(轉動切換視窗/按下選擇)  Win10轉盤:無效  音量與切換視窗完全不用設定或安裝驅動,可直接使用。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.186.48 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Key_Mou_Pad/M.1645888084.A.9FB.html ※ 編輯: rail02000 (1.165.186.48 臺灣), 02/26/2022 23:08:48 ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: rail02000 (1.165.186.48 臺灣), 02/26/2022 23:09:22

02/27 08:44, 2年前 , 1F
\o/
02/27 08:44, 1F

02/27 11:50, 2年前 , 2F
我還是用普通鍵盤就好
02/27 11:50, 2F

02/27 17:29, 2年前 , 3F
用hwdb去match鍵盤的vendor/product
02/27 17:29, 3F

02/27 17:32, 2年前 , 4F
以及用evemu-describe抓scancode(keycode?)
02/27 17:32, 4F

02/27 17:32, 2年前 , 5F
最後把想要的mapping丟在/etc/udev/hwdb.d就行了
02/27 17:32, 5F

02/27 17:32, 2年前 , 6F
參考
02/27 17:32, 6F

02/27 17:32, 2年前 , 7F

02/27 17:33, 2年前 , 8F
g-with-udev-hwdb/
02/27 17:33, 8F

02/27 17:33, 2年前 , 9F
02/27 17:33, 9F

02/27 17:34, 2年前 , 10F
以及arch wiki
02/27 17:34, 10F

02/27 17:34, 2年前 , 11F
map scancodes to keycodes頁面
02/27 17:34, 11F

02/27 17:35, 2年前 , 12F
02/27 17:35, 12F

02/27 17:35, 2年前 , 13F
優點是鍵盤製造商有弄好vid/pid的話可以match任意鍵盤
02/27 17:35, 13F

02/27 17:37, 2年前 , 14F
或者說其他鍵盤可以正常使用
02/27 17:37, 14F

02/27 17:38, 2年前 , 15F
以及(我的理解上是)在usb驅動就做好keycode映射
02/27 17:38, 15F

02/27 17:39, 2年前 , 16F
所以跟視窗系統無關 也不用xev (which require xorg)
02/27 17:39, 16F

02/27 17:39, 2年前 , 17F
畢竟現在發行版不少應該都是wayland而非xorg
02/27 17:39, 17F

02/27 17:40, 2年前 , 18F
也因此在tty也能正常工作
02/27 17:40, 18F

02/27 17:43, 2年前 , 19F
02/27 17:43, 19F

02/27 17:44, 2年前 , 20F
hwdb提供的這個功能我覺得是linux人性化程度高於win的
02/27 17:44, 20F

02/27 17:44, 2年前 , 21F
一個地方
02/27 17:44, 21F

02/27 17:45, 2年前 , 22F
買了dvorak鍵盤都可以當成qwerty用XD
02/27 17:45, 22F
文章代碼(AID): #1Y6aAZUN (Linux)
文章代碼(AID): #1Y6aAZUN (Linux)