ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux – 笔记本键盘偶尔会停止工作

2019-08-15 01:52:27  阅读:246  来源: 互联网

标签:linux keyboard x11


我有一个脏的解决方案,即插入USB键盘并执行以下命令:

setxkbmap -rules evdev -layout us -model evdev

之后我的键盘会工作.

这个解决方案只有在我有一个方便的USB键盘的情况下才有效,我很少重启笔记本电脑.我试图在系统唤醒时通过添加以下命令自动执行:

set -e

if [ "${1}" = "resume" ] && [ "${2}" != "standby" ]; then
        setxkbmap -rules evdev -layout us -model evdev
fi
exit 0

to:/etc/apm/event.d/enable_xkb
但这不起作用.我猜是因为它不是由适当的用户运行的.

所以这个问题有两个可能的答案:
1)如何在系统唤醒后执行上述脚本.如果我可以让它工作,我可以简单地让我的电脑进入睡眠状态并将其唤醒并让键盘再次工作.
2)(首选)我如何实际修复此探测器.

关于我需要回答的情况的更多细节2)
由于这个问题的随机性,我不知道这个问题何时开始.我知道它存在于Debian Unstable,测试但不稳定.它也存在于当前的Arch Linux上但不是在2012年11月之前.我的系统是联想w520.

另请注意:这是一个heisenbug,因此我不能接受回应,直到它工作了几天.

进一步澄清:
当发生这种情况时,我无法切换到任何tty#s,因此没有控制台不起作用.我也试过“提高瘦大象是完全无聊”组合,这也不起作用…我发布后,我将检查我的键盘功能是否有效.这是非常随机的,有时它会好几天,而我的键盘不起作用.

解决方法:

您的脚本无法从resume钩子工作的原因是它不知道要与哪个X服务器通信.您需要设置DISPLAY环境变量,也可以设置XAUTHORITY.有关更多说明,请参见Can I launch a graphical program on another user’s desktop as root?.

这是一个shell片段,在所有活动显示上运行所需的命令.

if [ "${1}" = "resume" ] && [ "${2}" != "standby" ]; then
  for p in $(ps -C Xorg -o pid=); do
    </proc/$p/cmdline awk -v RS='\0' '/^:[0-9]$/ {print} $0=="-auth" {getline; print}' | {
        read DISPLAY; export DISPLAY
        read XAUTHORITY && export XAUTHORITY || unset XAUTHORITY
        setxkbmap -rules evdev -layout us -model evdev
     }
  done
fi

标签:linux,keyboard,x11
来源: https://codeday.me/bug/20190815/1659625.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有