dell筆記本linux系統下鍵盤「雙擊」和「卡住」問題的暫行解決辦法

dell筆記本E系列,好比E7440/E7450/E6XXX等,在各類linux系統下,均可能出現2種問題:
1) 鍵盤卡住,也就是一個鍵按下去,只有key press沒有key release事件發生,這會形成一個字幕被連續多打,直到按下另外一個鍵爲止,好比keyyyyyyyyyyyyyyyyyyyyyyyyy....
2) 鍵盤雙擊,這個比鍵盤卡住好多了,也就是偶爾按下一個鍵,會出來兩個字符,好比keyylinux

關於這個問題,dell的support論壇上早已經炸了:http://en.community.dell.com/support-forums/laptop/f/3518/t/19593360
整整一年多了,還沒能徹底解決ios

dell也在對各類機型不斷地推出新版bios程序以指望解決該問題,不過到目前爲止尚未在全部linux發行版上獲得肯定的解決; 有人報告說在A14 bios的E7440下,裝最新的UBUNTU問題獲得解決,不過我用的debian 8 jessie目前仍是老樣子,還有其它如fedora/open suse等等發行版也仍是不行code

恰好廠裏新換了一臺工做機,是dell E7440, bios是A14版,也出現double-letter(鍵盤雙擊)的問題,因爲升級A15 bios失敗(dell太齪了,放個bios程序出來都不能讓人好好使用),因此只能按照以下辦法解決這個鍵盤問題:事件

其實就是在/sys/bus/serio/devices/serio0/force_release 這個文件中加入全部非控制字符按鍵的keycode,也就是說,除去alt,ctrl,shift,fn這四個確實須要「一直被按住」的功能的按鈕以外,其他的鍵盤按鈕的keycode均可以被加入這個文件;get

若是你是dell E7440, 只要以root權限將這些按鈕的keycode寫入這個文件就能夠了:
echo '2-13,41,15-27,43,30-40,44-53,57,158,369-370' > /sys/bus/serio/devices/serio0/force_releaseit

這些就是將e7440的鍵盤keycode列表(除去alt等等控制鍵)寫入force_release文件
爲了讓它開機自動運行,你能夠把這個命令加到/etc/rc.local中io

對於其它機型,我不肯定keycode是否和e7440同樣,那麼能夠以root權限運行「showkey -k」命令,而後一個個肯定你本身的鍵盤的keycode,再編寫好keycode列表寫入文件; 上面的keycode就是我在個人e7440上一個個經過showkey -k確認的硬件

寫入文件的keycode列表的格式很簡單:以逗號分割的多個keycode,每一個keycode能夠是單獨的code(如41)也能夠是code範圍(如2-13)權限

寫入該文件以後,再cat出來可能會看到code的順序跟你寫入的有出入,這個是由於程序會自動幫你sort/merge相鄰的code,總的內容是不變的因此不要緊debian

經實測,雙擊問題大大減輕,幾乎沒有,偶爾有一次也估計是我真的手抖雙擊了,能夠忍受(也多是鍵盤硬件有點問題,不過真的還算能夠接受)

固然,要想根本解決,還需dell本身發佈真正能完全解決問題的bios系統, 或是若是真是硬件問題,須要所有召回更換...

持續關注中

相關文章
相關標籤/搜索