在 Win7 X64 主机中的 VirtualBox 4.2.6 下运行 Ubuntu 11.04 x86 客户机。
请耐心等待...这很奇怪。启动 Ubuntu 后,Ubuntu 客户机内似乎没有任何东西可以识别键盘输入:登录屏幕、Gnome 终端、gedit 等。我无法使用Alt+Tab在窗口之间切换,无法使用键盘在工作区之间切换。鼠标工作正常。我无法通过Ctrl+ Alt+F1等进入虚拟控制台(终端) F7。没有什么。 然而,键盘在 GRUB 内部可以工作。
一切都运行良好(在各种版本的 VirtualBox 下使用这个客户端已经一年多了,没有任何问题 - 并且至少在一周前升级到了 VB 4.2.6。)
今天某个时候,VirtualBox 崩溃了(是的,这种情况偶尔会发生)。我重新启动了客户机,键盘输入不再起作用。这是第一次发生这种情况。
登录屏幕上的虚拟键盘确实可以工作,一旦登录,我就可以从 VirtualBox 主机剪贴板粘贴文本以在 Gnome Terminal bash shell 中输入命令。
因此,sudo showkey
当我按下各种键时,在 Gnome 终端中运行(通过粘贴命令和我的密码)会显示扫描代码进入客户机:
$ sudo showkey
[sudo] password for inactivist:
kb mode was RAW
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]
press any key (program terminates 10s after last keypress)...
keycode 30 press
keycode 30 press
keycode 30 press
keycode 31 press
...
showkey
这很奇怪。Ubuntu 客户机中没有任何内容响应按键或输入,但运行时按下按键时系统会看到扫描码。
我在 Ubuntu 论坛和其他资源上搜索了几个小时,但到目前为止还没有找到任何有帮助的东西。
以下是我在初始故障排除阶段所做的事情:
- 重新启动 Windows 7,冷启动。没有变化。
- 已验证慢速键(辅助功能选项)已使用记录的方法禁用。无变化。
- 在主机系统上尝试了不同的键盘。没有变化。
- 重新安装了 VirtualBox Guest Additions(以 root 身份)几次,没有变化。
- 在 VirtualBox 中启动了其他客户 Ubuntu OS 实例。键盘在其他客户机中工作正常。因此,我不认为这是 VirtualBox 主机管道问题。
- 编辑:并且(根据 ObsessiveSSOℲ 的建议)通过以 root 身份运行 /opt/VBoxGuestAdditions-4.2.6/uninstall.sh 并重新启动来卸载 Ubuntu Guest Additions。没有变化。
我迷路了。我还应该检查什么来诊断 Ubuntu 中的此类键盘问题?我认为这是一个驱动程序或配置问题。
是否有特定的日志或实用程序可以帮助查明此问题?
编辑1-F-Lock 键不是问题
更新:进一步搜索可发现以下资源:
- 虚拟终端不工作
是不是 F-Lock 键有问题?不,这是我首先检查的,然后插入没有 F-Lock 键的旧 USB 键盘——没有变化。但它提到使用来
evt
监视事件和其他资源... - 邮件存档讨论F-Lock键虚拟终端键断...
使用sudo chvt 1
,我可以访问虚拟终端,并且键盘输入在虚拟终端中有效。也许这是 X 键盘映射问题...
Edit2 - xev 现在显示键盘事件
xev
没有显示键盘输入事件。奇怪。
编辑 3 - 升级到 12.04 修复键盘输入,慢键可能会被静默触发
将 VirtualBox 客户实例“升级”到 12.04 (Precise)“解决”了这个问题。但这并不能告诉我为什么这个问题首先存在,尽管现在我知道这不是 VirtualBox 的问题。
此外,我发现这是 freedesktop.org 最近一期和这个Redhat问题这表明慢键功能可能在某处被触发默默没有日志条目,更改设置以禁用慢速键可能实际上不会禁用它。调查仍在继续……
Edit4-验证低级键盘输入
以 root 身份运行hd /dev/input/by-path/platform-i8042-serio-0-event-kbd
会在 Gnome 桌面内按下按键时显示传入数据。 来源:superuser.com
编辑 5 - /lib/udev/findkeyboards 没有显示键盘
继Ubuntu wiki 的热键故障排除建议到第 5 步为止修理损坏的钥匙在 中/usr/share/doc/udev/README.keymap.txt
,运行/lib/udev/findkeyboards
(以普通用户或 root 身份)不显示任何输出(退出时没有消息。)
编辑 6-放弃(现在)
我没有时间弄清楚,所以我要创建一个新的 VirtualBox 客户机,安装 12.04 并迁移到该版本。我将保留旧实例以简化过渡。
如果有人发布故障排除建议,我会在我存档的 11.04 Ubuntu 安装上尝试这些建议,并在此报告结果。
感谢您的建议!