Als Hintergrund habe ich gerade eine neue Maschine mit moderner Hardware gebaut, einschließlich:
- AMD FX-8350
- Gigabyte GA-990FXA-UD3 Hauptplatine
- 16 GB RAM
- NVidia GTX 650 Ti
- Kingston SSD
Angesichts dessen habe ich versucht, verschiedene Linux-Versionen auf der SSD zu installieren, und bin fast jedes Mal auf einen Fehler gestoßen. Ich habe versucht, Arch, Debian stable, Debian sid und Ubuntu 12.10 von einem USB-Stick zu installieren, aber als das BIOS das USB-Laufwerk erkannte und mit dem Booten begann, verlor ich alle USB-Funktionen, sobald das Betriebssystem versuchte, die USB-Geräte aufzulisten (einschließlich des Startgeräts).
Schließlich habe ich eine DVD gebrannt und Ubuntu 12.10 auf der SSD installiert. Es ist zu beachten, dass meine USB-Tastatur (und -Maus) im amerikanischen Megatrends UEFI / BIOS einwandfrei funktionieren. Auch wenn ich mich in den Vorinstallationsmenüs auf der Live Ubuntu-DVD befinde, funktioniert die Tastatur einwandfrei.
Sobald Linux gebootet wird (entweder Live-DVD oder von der SSD), verliere ich alle USB-Funktionen und kann nur mit einer PS / 2-Tastatur im Betriebssystem navigieren.
Was ich im dmesg / syslog sehe, sind ein paar Zeilen über " failed to load microcode amd_ucode/microcode_amd_fam15h.bin
" und ich kann sehen, dass USB-Geräte nicht initialisiert werden können.
Wenn ich einen mache, lsusb
kann ich alle USB-Host-Controller sehen, aber keines der Geräte. Wenn lspci
ich einen mache, sehe ich die Hardware, die ich erwarten würde. Und dabei lsmod
sehe ich keine USB-Module geladen ( usb_ehci
zum Beispiel).
Ich habe versucht, noapic
auf die Kernel-Boot-Zeichenfolge zuzugreifen, und dies hatte keine Auswirkung auf dieses Problem.
Das Motherboard unterstützt USB 3.0, aber alle Geräte, die ich an normale USB 2.0-Ports angeschlossen habe.
Ich bin ziemlich verblüfft darüber, was USB (und meine Bordnetzkarte) daran hindern könnte, unter Linux zu funktionieren . Es scheint kein Problem damit zu geben, dass eines dieser Geräte im BIOS funktioniert, und ich habe keine Windows-Installation, um zu testen, ob es funktioniert.
Ich habe das Motherboard bereits einmal per RMA überprüft, aber das zweite hat genau dasselbe Verhalten, sodass ich denke, dass ich Hardwarefehler sicher ausschließen kann (da das Verhalten identisch ist, glaube ich nicht, dass ich zwei identisch defekte Boards bekomme) sind größer als die Wahrscheinlichkeit, dass dies ein Linux-Problem ist).
Was kann ich sonst noch versuchen, um USB (und im Idealfall mein Netzwerk, aber wir bleiben vorerst bei USB) zum Laufen zu bringen?
Bearbeiten Sie # 1:
Da ich kein Netzwerk habe, kann ich von dmesg
hier aus nur interessante Dinge erzählen .
Von Interesse dmesg
kann ich sehen Ich habe 11 USB - Host - Controller (OHCI, EHCI und xHCI). Es erkennt meine USB-Geräte und schlägt dann sofort wie folgt fehl:
usb 3-1: new high-speed USB device number 2 using ehci_hcd
usb 3-1: device descriptor read/64, error -32
Dies wird mehrmals wiederholt, um die Anzahl zu erhöhen und andere USB-Host-Controller zu testen, bis sie auf OHCI-Controller zurückgreifen, die ebenfalls fehlschlagen, aber eine zusätzliche Meldung haben:
usb 8-1: device not accepting address 4, error -32
Ich denke, meine Netzwerkprobleme haben mit der Tatsache zu tun, dass ich IPv6 auf meinem Router nicht aktiviert habe und das scheint ein Problem zu sein
eth1: no IPv6 routers present
Bearbeiten Sie # 2:
lspci -vvv
zeigt, dass meine Netzwerkadapter (Onboard und Erweiterung) Realtek Semiconductor sind (keine Überraschung); RTL8111 / 8168B bzw. RTL8169 / 8110. Meine USB-Controller sind Etron Technology EJ168 (xHCI) und AMD nee ATI SB7x0 / SB8x0 / SB9x0 (EHCI & OHCI).
Jetzt läuft Debian sid modprobe
zeigt usb_common
, usbcore
, xhci_hcd
, ehci_hcd
, und ohci_hcd
alle geladen und funktionieren.
dmesg
anmodprobe
USB-bezogenen Modulen ausprobiert ?Antworten:
Ich habe die Antwort von diesem Thread ( http://ubuntuforums.org/showthread.php?t=2114055 ) bei ubuntuforums.org gefunden.
Bei neueren Gigabyte-Mainboards scheint es (zumindest) eine BIOS-Option zu geben
IOMMU Controller
, die standardmäßig deaktiviert ist und keinen Hinweis darauf gibt, wofür sie gedacht ist.Wenn Sie diese Einstellung aktivieren und "magisch" neu starten, werden alle USB- und Netzwerkprobleme in einem 64-Bit-Linux-Betriebssystem wiederhergestellt (egal welches).
Ich bin ziemlich schockiert und erfreut darüber, dass es eine so lange Suche nach einer so einfachen Lösung war.
Vielen Dank für Ihre Hilfe und Anregungen. Hoffentlich finden das andere hilfreich.
Update: Ich möchte nur hinzufügen, dass meine aktuellen BIOS-Einstellungen neben IOMMU Controller auch die Aktivierung von XHCI Handoff und EHCI Handoff beinhalten. Andere haben dies ebenfalls erwähnt und die Aktivierung dieser beiden Übergaben ermöglicht auch, dass meine USB 3.0-Anschlüsse wie erwartet funktionieren.
quelle
Ich habe gerade mit meinem GA-990FXA-UD7 erfahren, dass für die ordnungsgemäße Funktion der USB 2.0- und USB 3.0-Controller sowie des integrierten Ethernet-Controllers unter Linux (ich verwende Mint 17.1) die folgenden Einstellungen im BIOS erforderlich sind:
Vergessen Sie nicht, UEFI zu deaktivieren und alle Startoptionen auf "Nur Legacy" zu ändern.
Wenn Sie wirklich von einer Festplatte mit einer Kapazität von> 2,2 TB booten müssen, haben Sie möglicherweise ein anderes Problem.
Ich verwende eine 256-GB-SSD für mein Startlaufwerk und ein Paar 3-TB-Festplatten in einem RAID 1-Array (gespiegelt) mit mdadm für my / home und alles funktioniert gut.
Nachdem ich ziemlich oft mit Gigabyte-Boards gearbeitet habe, weiß ich, dass die 990FXA-UD5- und 990FXA-UD3-Boards ein sehr ähnliches BIOS haben, so dass es wahrscheinlich auch für diese Boards gilt.
quelle
iommu=soft
in Verbindung mit xHCI + eHIC Handoff und IOMMU Controller (alle aktiviert), ohne dass "Legacy Only" aktiviert werden muss. Arch Linux mit voller Geschwindigkeit booten, EFI und ohne Probleme mit iommu oder usb3 Root-Geräten.Seltsamerweise hat es für mich keinen Unterschied gemacht, dass ich das IOMMU aktiviert habe, obwohl ich ein fast identisches Setup habe (dasselbe Motherboard, denselben FX8350-Prozessor). Immer noch kein USB, Netzwerk usw.
Was jedoch geholfen hat, war das Hinzufügen von "iommu = soft" zur Kernel-Befehlszeile. Jetzt funktioniert alles einwandfrei (außer dass meine Logitech Zone Touch Mouse aus irgendeinem Grund nicht funktioniert).
quelle
Zu Ihrer Information, die technischen Gründe, warum Linux Geräte nicht "über" das BIOS verwenden kann: Sobald das Betriebssystem in den "geschützten Modus" (32-Bit) oder "langen Modus" (64-Bit) übergegangen ist, kann es keine Interrupts mehr senden zum BIOS. Im "Real-Modus" (16-Bit, beim Booten) kann es BIOS-Interrupts aufrufen, um Datenträger lesen zu lassen, Tastatureingaben usw.
Aber es hat auch Nachteile. Zum einen haben Sie nicht einmal ein Megabyte adressierbaren Speicher. Daher wechseln moderne Betriebssysteme fast als erstes aus dem Real-Modus. (Eigentlich glaube ich, dass Grub in den geschützten Modus wechselt, bevor der Kernel überhaupt geladen wird).
Weitere Details: http://wiki.osdev.org/Real_Mode http://wiki.osdev.org/Protected_Mode
quelle
Ich habe den gleichen Proc (aber 8 Kerne) den gleichen MB (Rev. 3) die gleiche Menge an RAM (Kingston)
Der Tipp mit IOMMU hat ein wenig geholfen - alle Ports können eine USB-Tastatur, einen Monitor-USB-Hub und einen USB-WLAN-Adapter (Realtek) sehen, aber kein Flash-Laufwerk.
Diese Lösung hat mir anscheinend geholfen:
Sie sehen eine Datei im Format 0000: 00: xx.x. Führen Sie den folgenden Befehl aus:
Ersetzen Sie die Datei xx.x durch die in Ihrer Datei angezeigten Zahlen. Es sollte das ehci_hcd deaktivieren.
Sie können jetzt das folgende Skript verwenden, um ehci_hcd zu deaktivieren.
http://www.geekdevs.com/2010/04/solved-unable-to-enumerate-usb-device-disabling-ehci_hcd/
quelle
Diese Schritte funktionierten für mich mit einem GIGABYTE 970A-DS3P und AMD-FX-8320 unter Ubuntu 15.04
quelle
Ich habe die gleiche FX8350 auf einem Gigabyte 990FXA-UD3 mit OpenSuse 13.1. Die Lösung, die für mich funktioniert hat, war, den Bootloader mit YAST, der Standardauswahl (oder der Auswahl, die Sie in meinem Fall zum Laden von OpenSuse 13.1 verwenden), "iommu = pt" nach "quiet showopts" zu bearbeiten.
Beispielsweise:
Jetzt funktionieren alle meine USB-Anschlüsse 2.0 und 3.0 und auch meine Internet-Netzwerke. Stellen Sie außerdem sicher, dass IOMMU im BIOS aktiviert ist.
quelle
Gestern habe ich dieses Problem bei der Installation von Ubuntu auf meinem ASUSTek M5A99X-Motherboard bekommen. Mein Ziel war es, Ubuntu vom USB-Stick im UEFI-Modus neu zu installieren, um die IOMMU-Erkennung durch das Betriebssystem zu beheben (mein System wurde über den "Legacy BIOS" -Modus installiert, ich dachte, dies könnte ein Grund sein).
Zuvor habe ich versucht, Ubuntu von einem USB-Stick zu installieren. In Ordnung mit Legacy, UEFI war immer ein Problem - entweder funktionierte meine Tastatur / Maus / Wifi beim Aufrufen des Installationsprogramms nicht richtig (nur Stromversorgung) oder das Installationsprogramm konnte die Benutzeroberfläche nicht mit Meldungen in der Konsole laden:
(…) device descriptor read/64, error -32
(für jedes USB-Gerät)(…) unable to find a live medium containing a live file system
(nach 5-6 Minuten Ablesen vom Stick). Dieser Fehler hat eine Problemumgehung mit dem Ändern des USB-Stick-Typs in "Force Hard Disk" (Festplatte erzwingen), aber das Booten des Systems verursachte später nach der Installation andere Probleme.Ich dachte, die Probleme sind von "Unetbootin" oder "Startup Disk Creator" - sie sind nicht. Verbrachte mehr als 2 Stunden mit dem Ausprobieren aller BIOS-Einstellungen (ich habe keine
IOMMU Controller
oder nurxHCI Handoff
meine Einstellungen), aber das einzige, was geholfen hat - das BIOS auf die neueste Version zu aktualisieren , wobei die ROM-Datei von der Asus-Website für mein Motherboard-Modell heruntergeladen wurde. Es ist ganz einfach, die ROM-Datei auf dem USB-Stick zu entpacken und zu kopieren und mit dem „EZ Flash Utility“ (im BIOS) die Firmware zu flashen.Dadurch wurden alle Fehler behoben, die ich hatte. Ich konnte Ubuntu im UEFI-Modus installieren und verwenden. Außerdem wird IOMMU jetzt von Ubuntu auf magische Weise ohne Probleme erkannt. Dies bedeutet, dass meine Probleme durch BIOS-Firmware-Fehler im Zusammenhang mit der USB 2.0 / 3.0-Unterstützung und der IOMMU-Unterstützung verursacht wurden. (Wenn Sie IOMMU nicht benötigen, sollten Sie dies im Abschnitt "Erweitert" deaktivieren, da dies nicht häufig vorkommt.)
quelle