GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum funktioniert USB unter Linux nicht, wenn es unter UEFI/BIOS funktioniert?

Ich habe die Antwort in diesem Thread (http://ubuntuforums.org/showthread.php?t=2114055) auf ubuntuforums.org gefunden.

Es scheint (zumindest) bei neueren Gigabyte-Mainboards eine BIOS-Option namens IOMMU Controller zu geben das ist standardmäßig deaktiviert und gibt keinen Hinweis oder Hinweis darauf, wofür es ist.

Wenn Sie diese Einstellung aktivieren und "magisch" neu starten, werden alle meine USB- und Netzwerkprobleme in einem 64-Bit-Linux-Betriebssystem (egal welches) behoben.

Ich bin ziemlich schockiert und hocherfreut, dass es eine so lange Suche nach einer so einfachen Lösung war.

Danke an alle für eure Hilfe und Vorschläge. Hoffentlich finden andere dies hilfreich.

Aktualisierung: Ich möchte nur hinzufügen, dass meine aktuellen BIOS-Einstellungen neben dem IOMMU-Controller auch die Aktivierung von XHCI Handoff und EHCI Handoff beinhalten. Andere haben dies ebenfalls erwähnt, und durch die Aktivierung dieser beiden Übergaben können auch meine USB 3.0-Ports wie erwartet funktionieren.


Ich habe gerade mit meinem GA-990FXA-UD7 gelernt, dass die folgenden Einstellungen im BIOS erforderlich sind, damit sowohl die USB 2.0- als auch die USB 3.0-Controller und der integrierte Ethernet-Controller unter Linux (ich verwende Mint 17.1) ordnungsgemäß funktionieren:

  • xHCI-Übergabe – aktiviert
  • EHCI-Übergabe – aktiviert
  • IOMMU-Controller – aktiviert

Vergessen Sie nicht, UEFI zu deaktivieren und alle Boot-Optionen auf „Legacy Only“ 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 (gespiegelten) RAID-1-Array mit mdadm für mein /home und alles funktioniert gut.

Da ich viel mit Gigabyte-Boards gearbeitet habe, weiß ich, dass die 990FXA-UD5- und 990FXA-UD3-Boards ein sehr ähnliches BIOS haben, daher ist es wahrscheinlich, dass dasselbe auch für diese Boards gilt.


Zu Ihrer Information, die technischen Gründe, warum Linux Geräte nicht „durch“ 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 Festplatten lesen, Tastatureingaben usw. zu veranlassen.

Aber es hat auch Schattenseiten. Zum einen haben Sie nicht einmal ein Megabyte adressierbaren Speicher. Moderne Betriebssysteme wechseln also fast als erstes aus dem Real-Modus. (Tatsächlich glaube ich, dass Grub in den geschützten Modus wechselt, bevor es überhaupt den Kernel lädt).

Weitere Details:http://wiki.osdev.org/Real_Mode http://wiki.osdev.org/Protected_Mode


Linux
  1. Linux – Wann sollte ich keinen -9 A-Prozess beenden?

  2. Linux – Warum verwenden wir Su – und nicht nur Su?

  3. Warum ist die Synchronisierung so wichtig, wenn Sie einen bootfähigen Linux-USB-Stick erstellen?

  4. Linux – Warum funktioniert Setuid nicht?

  5. Linux – Warum funktioniert USB nicht in Linux, wenn es in Uefi/Bios funktioniert?

Fix Touchpad Click funktioniert nicht in Linux Mint

Logitech USB-Headset funktioniert nicht am 12.04?

PYTHONPATH funktioniert nicht für sudo unter GNU/Linux (funktioniert für root)

Der Linux-Befehl „ll“ funktioniert nicht

warum funktioniert sftp rmdir nicht?

Feststelltaste funktioniert nicht auf der Linux-Konsole