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系统, 或是若是真是硬件问题,须要所有召回更换...

持续关注中

相关文章
相关标签/搜索