USB 键盘仅在重新启动时在 GRUB 2 中间歇性地工作 - 如何使其一致工作?

USB 键盘仅在重新启动时在 GRUB 2 中间歇性地工作 - 如何使其一致工作?

我的键盘出现了奇怪的情况。该键盘是 USB 连接的 Unicomp,一旦计算机启动并运行,它就可以完美地工作。然而,GRUB 2(具体来说,Debian Wheezy 中附带的 1.99-27+deb7u1)却不太令人满意。故障模式使得测试有点困难,但到目前为止我已经能够推断出以下内容:

  • 键盘状态 LED 在 POST 期间闪烁,因此检测到键盘(我还收到报告“检测到:... 1 键盘”);我可能在 POST 中收到一个“未检测到键盘”错误,但远不足以推断出任何模式,而且最近我已经以不同的方式重新启动了系统好几次
  • 使用前面板电源按钮从完全关闭电源打开电源时,一切似乎都运行良好
  • 重新启动时(在启动的系统中使用rebootControl++AltDelete或者在 GRUB 中),键盘在 GRUB 中工作,也许我每次尝试时都会工作
  • 如果我按计算机上的“重置”按钮重新启动,当引导加载程序返回时,键盘在 GRUB 中始终无法工作,并且很多时候在 POST 期间对按键也没有反应

更奇怪的是,我不记得电脑以前有过这样的行为。我是希望这是不相关的,但当我将 UPS 连接到我办公桌周围的其他一些东西时,它似乎就开始出现问题,而不仅仅是将其连接到计算机和显示器。 (不,UPS 远未过载;根据使用情况,负载据报告在 7-20% 范围内;当计算机正常启动并运行时,负载约为最大负载的 15-16%。)

我在 Google 上搜索并找到了加载 GRUB 2 模块uhciusb_keyboard.我添加了一个GRUB_PRELOAD_MODULES声明,指定它们两个到 /etc/default/grub 并重新运行(现在和我的 /boot/grub/grub.cfg 中update-grub都有),但这似乎没有改变任何东西。insmod uhciinsmod usb_keyboard

我已将键盘移至另一个 USB 端口,但这似乎没有帮助。如果我手头有一个外接 USB 控制器,我会尝试一下。

BIOS/UEFI 设置报告旧版 USB 支持和旧版 USB 3.0 支持已启用,即使没有,我也不明白为什么它有时会工作,有时却不能,特别是很多时候,两者之间的唯一区别是哪个热重启的一侧已开启。

主板是华硕M5A97 Pro UEFI版本1007 02/10/2012

我想不出我所做的任何其他配置更改与计算机开始出现故障的时间一致。日志提到 8 月 1 日的升级linux-image,并且我在 8 月 2 日重新安装(标记为upgrade,但起始版本和目标版本相同)grub-pc,但这都是在我购买 UPS 之前一周,还有两周在我将它连接到不仅仅是计算机和显示器之前(我注意不要一次更改太多东西)。uname -r报道3.2.0-4-amd64

我已经没有办法尝试了。如何让我的 USB 键盘在 GRUB 2 中一致工作?我还可以检查什么?

答案1

好吧,我大概知道问题出在哪里了。不过,我仍然不知道根本问题是什么。

将 UEFI/BIOS 升级到最新版本(当前为 1604)并没有帮助,尽管一些临时版本专门宣传为“增强与某些 USB 设备的兼容性”(这似乎正是我的问题)。事实上,如果有的话,这似乎让事情变得更糟,但以一种好的方式:系统启动了始终如一地热重启时无法使用键盘。一致的错误总是更容易调试和修复。

通过应用科学方法(形成假设,找出测试方法,测试和完善),我能够确定最有可能的罪魁祸首是我的 USB 鼠标或者更一般地说连接了我的 USB 指点设备。

我首先断开所有与测试故障情况并非绝对必要的 USB 连接,因此 USB 总线上唯一的外围设备是键盘。那行得通。因此,我将一些内容重新添加回来,一次一个,在每次更改之间尽可能彻底地进行测试。当我添加桌面集线器时,事情开始发生变化,我在其中连接了两个设备:鼠标和绘图板。经过一番反复之后,我拔掉了这两个插头,但保留了集线器的连接状态;仍然有同样的问题。仅将集线器、鼠标或平板电脑直接插入主板上的 USB 端口,我就回到了开始的地方,这意味着其中一个或多个导致了我的问题。

我可以不用平板电脑,但是使用没有指点设备的计算机很快就会变得相当令人厌烦,所以我在备用的计算机电缆盒中找到了一个 USB 到 PS/2 适配器,我想我应该尝试一下。将鼠标插入适配器并将适配器插入主板上的 PS/2 鼠标/键盘端口后,一切似乎正常。我做了尽可能完整的测试,每次系统都完全正常恢复。

我当前的工作假设是,某些东西对 USB 集线器造成了损坏,该损坏可能已传播到平板电脑和鼠标,并且这种损坏在某种程度上导致了我的问题。 (我连接到集线器的唯一两个非主机设备是鼠标和平板电脑。)这并不能完全解释为什么通过 USB-PS/2 适配器连接鼠标似乎工作得很好,但猜测是它可能与 BIOS 如何处理不同的设备有关(它似乎无法将“PS/2”鼠标识别为鼠标,但我当然可以在 UEFI 设置中没有鼠标)。

假设我可以从工作中借用 USB 鼠标,下周我将能够进一步测试这个假设。

现在,断开集线器和平板电脑的连接,然后将鼠标移至 PS/2 端口似乎就足够了。

相关内容