经过大量测试后,我已经缩小了一个问题,即Windows 7和Ubuntu Mate 64位都无法在BIOS中启用“Load Optimal Defaults”选项并插入USB HUB(TA790GX3 A2 +主板,Phenom 9950BE CPU,4 Gig RAM)和GeForce GT 620)。
BIOS“USB配置”是:
传统USB支持 - 已启用
USB 2.0控制器模式 - HiSpeed
BIOS EHCI Hand-Off - 已启用
通过这些设置,Windows将启动到“正在加载Windows”(徽标永不显示)的位置,并且Linux在内核初始化期间失败而没有消息。
以下任何一个都将允许计算机启动:
断开外部USB 2.0集线器。
禁用旧版USB支持(无法通过USB键盘进入BIOS)。
没有连接USB设备,将Legacy USB Support设置为AUTO。
将USB 2.0控制器模式设置为FullSpeed(USB 1.1)。
禁用EHCI切换。
由于我有USB键盘和鼠标,因此无法禁用传统USB支持。禁用EHCI切换会阻止休眠正常工作。在Windows启动之后断开USB HUB是不方便的。将USB 2.0控制器设置为FullSpeed使得从USB设备启动非常慢。
Windows 7和Linux都加载驱动程序以支持USB OHCI,EHCI,xHCI等,因此如果启用了BIOS Legacy支持则无关紧要。甚至USB 2.0控制器的初始设置也被取代,最终操作系统将其设置为HiSpeed。看来SB750南桥和OS之间的某种低级别切换导致硬件总线在初始化期间挂起。
使用基于FE2.1,GL850G和UPD720110A的USB HUB完成测试。启动总是失败,USB鼠标和键盘连接到任何HUB。FE2.1在没有任何插入的情况下导致故障,而UPD720110A无需插入任何设备。虽然某些HUB芯片组可能允许系统启动,但最终,许多I / O设备(如键盘或网络摄像头)会导致故障。
从硬件角度来看,一些用户建议电源或中断请求(IRQ)冲突可能会导致此问题。片状电源可能会引发任何数量的问题,但是在BIOS切换到操作系统时,启动失败只能单独发生,而且始终如一,这是值得怀疑的。
基于x86的IRQ架构因冲突而臭名昭着,因为它只为所有硬件提供了15条线路。用户通常必须硬设置IRQ,并禁用BIOS中的即插即用功能,或覆盖操作系统(Windows 95/98 / ME)中的设置,以使设备正常工作。在Windows XP,64位架构和PCIe的时代,这些问题似乎已经消失。无论如何,没有传统的IRQ BIOS设置生效,并且没有重叠的IRQ,甚至没有使用任何低于15的IRQ。
此时我无法解决问题。最有希望的解决方法是将USB控制器设置为FullSpeed。有趣的是,我的另一台计算机由TA780G M2 +主板,相同的CPU和内存组成,可以通过默认的BIOS设置启动。