Linux 控制台键盘锁定按 CapsLock

Linux 控制台键盘锁定按 CapsLock

在 Win7 中运行 VirtualBox 的 Ubuntu 14.04 LTS 控制台在按下时锁定Caps Lock:不接受进一步的键盘输入,甚至不接受Alt+CursorRightCtrl++ (从 VirtualBox 发出)。 编辑:仅在通过发出以下命令交换 Y 和 Z 后Alt发生Del

echo -e keymaps 0-2,4-5,8,12 \\n keycode 21=z \\n keycode 44=y | loadkeys

reset 2>/dev/tty1在从 ssh 会话发出后,我可以解锁控制台并继续工作,没有任何问题。当命令位于 gpm 缓冲区中时
,我甚至可以reset使用 gpm(按下鼠标中键)从锁定的控制台内部发出。reset

每次均可在任何时间复制/dev/tty<n>

在 VirtualBox 版本 4 和 5 中效果相同。
看来锁定没有发生在 VirtualBox 方面,因为它可以在 Linux 方面得到解决。

stty -a < /dev/tty1之前和之后的输出没有区别reset

其他 vcs 继续工作(从 ssh 发出的 chvt),但Alt+之后F1锁定的控制台仍然被锁定:似乎问题一定位于虚拟控制台代码内部。

/var/log/syslog发生该问题时(按下 CapsLock 键时)不会出现任何消​​息dmesg。有一个不可重现的问题可能是由保存/恢复虚拟机引起的,可能与此无关:

atkbd serio0:isa0060/serio0 上的虚假 NAK。某些程序可能试图直接访问硬件

dmesg

我该如何调试这个问题?
具体来说:如何找到重置前后控制台状态的差异?

答案1

尝试将命令改为:

echo -e keymaps 0-127 \\n keycode 21=z \\n keycode 44=y | loadkeys

我可以在运行 Ubuntu 14.04 LTS 的物理 PC 上重现该问题(尽管该命令没有任何其他效果,因为我使用的瑞士法语键盘映射在该位置已经有 Y 和 Z),并且将命令中的更改为0-2,4-5,8,12似乎0-127可以解决该问题。我不完全理解为什么它会与其他命令一起挂起,但我的直觉是指定的键盘映射范围取消了键盘映射中现有键盘的定义,因此在 Caps Lock 开启时取消了所有键的状态定义(发出此命令也会产生问题:)echo -e keymaps 0-2,4-5,8,12 | loadkeys。不确定它是错误还是预期的功能。

相关内容