請問如何在 Linux 驅動程式中得知 Caps-lock, Num-lock 與 Scroll-lock 這幾個狀態值(開啟或關畢)呢?
什么驱动需要知道键盘的这些键值的状态?
键盘驱动(Hidclass)应该是可以知道的。非键盘驱动就涉及到驱动间通讯,问题就比较复杂了。
我現在做的板子有 custom 的小鍵盤, 需要 implement custom 的 fn key, 我在 WinCE 上的做法是利用 numlock 來實現 fn key, 利用 check numlock 的 status 把 scan-code mapping 到兩組 array 來回傳 key event, 所以我也想在 linux 上如法泡製, 現在卡住中.
小键盘是什么接口的,是标准的HID设备么?
小键盘的驱动应该可以Query键值的状态的呀,只要有驱动的源码,知道驱动如何访问硬件就好了。
SOC 是 Marvell PXA3xx 系列, 小鍵盤是使用 SOC 提供的 keypad matrix scan-line 的方式來抓取硬體上哪個按鍵被按下, 所以一切都要自己處理, 因此有必要知道 OS 中是由哪個 structure 來保留狀態, 但是目前只有看到那幾個鍵的 led 狀態控制, 跟我想像中的不太一樣, 所以目前還無法實現出複合鍵(FN key)功能, 但 caps-lock 的確是有效的, 因此系統必定有某個結構在保留各鍵狀態, 目前 trace 了 kernel 一些 header define 還是看不太出來.