作为背景,我刚刚建造了一台带有现代硬件的新机器,包括:
- AMD FX-8350
- 技嘉GA-990FXA-UD3主板
- 16GB内存
- 英伟达 GTX 650 Ti
- 金士顿固态硬盘
鉴于此,我尝试在SSD上安装各种版本的Linux,但几乎每次都失败。我尝试从 USB 拇指驱动器安装 Arch、Debian stable、Debian sid 和 Ubuntu 12.10,但是当 BIOS 看到 USB 驱动器并开始从它启动时,一旦操作系统尝试枚举 USB 设备,我就失去了所有 USB 功能(包括启动设备)。
最终我刻录了 DVD 并将 Ubuntu 12.10 安装到 SSD 上。应该指出的是,我的 USB 键盘(和鼠标)在 American Megatrends UEFI/BIOS 中工作正常。即使我在 Live Ubuntu DVD 上的预安装菜单中,键盘也能正常工作。
一旦 Linux 启动(Live DVD 或 SSD),我就会失去所有 USB 功能,只能使用 PS/2 键盘导航操作系统。
我在 dmesg/syslog 中看到的是几行关于“ failed to load microcode amd_ucode/microcode_amd_fam15h.bin
”的内容,并且我可以看到 USB 设备无法初始化。
如果我这样做,lsusb
我可以看到所有 USB 主机控制器,但看不到任何设备。做一个向lspci
我展示了我期望的所有硬件。并执行lsmod
我没有看到任何 USB 模块加载(usb_ehci
例如)。
我尝试传递noapic
给内核引导字符串,但它对这个问题没有影响。
主板支持 USB 3.0,但我将所有设备插入普通 USB 2.0 端口。
我对什么可能会杀死/阻止 USB(和我的板载网卡)工作感到相当困惑在Linux中。这些设备在 BIOS 中工作似乎没有任何问题,而且我没有可用于测试并查看其是否工作的 Windows 安装。
我已经对主板进行了 RMA 一次,但第二块具有完全相同的行为,所以我认为我可以安全地排除硬件故障(因为行为是相同的,我认为我得到两块相同缺陷的主板并不奇怪大于这是 Linux 问题的可能性)。
我还能尝试什么来让 USB(最好是我的网络,但我们现在坚持使用 USB)正常工作?
编辑#1:
由于我没有网络,我只能从dmesg
这里讲述一些有趣的事情。
感兴趣的是dmesg
我可以看到我有 11 个 USB 主机控制器(OHCI、EHCI 和 xHCI)。它检测到我的 USB 设备,然后立即失败,如下所示:
usb 3-1: new high-speed USB device number 2 using ehci_hcd
usb 3-1: device descriptor read/64, error -32
重复几次增加数量并尝试其他 USB 主机控制器,直到它回退到 OHCI 控制器,该控制器也失败,但有一条附加消息:
usb 8-1: device not accepting address 4, error -32
我认为我的网络问题与我的路由器上没有启用 IPv6 这似乎是一个问题有关
eth1: no IPv6 routers present
编辑#2:
lspci -vvv
显示我的网络适配器(板载和扩展)是 Realtek Semiconductor(毫不奇怪);分别为RTL8111/8168B和RTL8169/8110。我的 USB 控制器是 Etron Technology EJ168 (xHCI) 和 AMD nee ATI SB7x0/SB8x0/SB9x0 (EHCI & OHCI)
现在运行 Debian wheezymodprobe
显示usb_common
、usbcore
、xhci_hcd
、ehci_hcd
、 以及ohci_hcd
所有已加载并正常运行。
答案1
我从这个帖子中找到了答案(http://ubuntuforums.org/showthread.php?t=2114055)在 ubuntuforums.org 上。
似乎在较新的技嘉主板(至少)中,有一个名为“IOMMU Controller
默认情况下禁用”的 BIOS 选项,并且没有给出任何线索或指示来说明它的用途。
启用此设置并“神奇地”重新启动可以恢复 64 位 Linux 操作系统(无论是哪一个)中的所有 USB 和网络问题。
我感到相当震惊和高兴,因为寻找如此简单的修复程序花费了如此长的时间。
感谢大家的帮助和建议。希望其他人会发现这有帮助。
更新:我只想补充一点,我当前的 BIOS 设置除了 IOMMU 控制器外,还包括启用 XHCI Handoff 和 EHCI Handoff。其他人也提到了这一点,启用这两个切换也可以让我的 USB 3.0 端口正常运行。
答案2
我刚刚通过 GA-990FXA-UD7 了解到,为了使 USB 2.0 和 USB 3.0 控制器以及板载以太网控制器在 Linux 中正常运行(我使用的是 Mint 17.1),需要在 BIOS 中进行以下设置:
- xHCI 切换 - 已启用
- EHCI 切换 - 已启用
- IOMMU 控制器 - 已启用
不要忘记禁用 UEFI 并将所有启动选项更改为“Legacy Only”。
如果您确实需要从 >2.2TB 容量的 HDD 启动,您可能会遇到不同的问题。
我使用 256GB SSD 作为启动驱动器,并使用 mdadm 将一对 3TB HDD 组成 RAID 1(镜像)阵列来管理我的 /home,一切运行良好。
由于经常使用技嘉主板,我知道 990FXA-UD5 和 990FXA-UD3 主板具有非常相似的 BIOS,因此很可能同样适用于这些主板。
答案3
这些步骤适用于运行 Ubuntu 15.04 的 GIGABYTE 970A-DS3P 和 AMD-FX-8320
- xHCI 切换 - 已启用
- EHCI 切换 - 已启用
- IOMMU 控制器 - 已启用
- UEFI - 禁用
- 所有启动选项 - 仅旧版
答案4
奇怪的是,即使我有几乎相同的设置(相同的主板、FX8350 处理器),启用 IOMMU 对我来说没有任何区别。仍然没有USB、网络等。
什么做过不过,帮助是将“iommu=soft”添加到内核命令行中。现在一切正常(除了由于某些奇怪的原因,我的 Logitech Zone 触摸鼠标无法工作)。