GNU/Linux >> Linux Esercitazione >  >> Linux

Perché USB non funziona in Linux quando funziona in UEFI/BIOS?

Ho trovato la risposta in questo thread (http://ubuntuforums.org/showthread.php?t=2114055) su ubuntuforums.org.

Sembra che con le nuove schede madri Gigabyte (almeno) ci sia un'opzione BIOS chiamata IOMMU Controller che è disabilitato per impostazione predefinita e non fornisce alcun indizio o indicazione su a cosa serva.

L'abilitazione di questa impostazione e il riavvio "magico" ripristinano tutti i miei problemi USB e di rete in un sistema operativo Linux a 64 bit (non importa quale).

Sono piuttosto scioccato ed euforico che sia stata una ricerca così lunga per una soluzione così semplice.

Grazie a tutti per il vostro aiuto e suggerimenti. Speriamo che altri lo trovino utile.

Aggiornamento: Vorrei solo aggiungere che le mie attuali impostazioni del BIOS includono anche l'abilitazione di XHCI Handoff e EHCI Handoff oltre al controller IOMMU. Anche altri lo hanno menzionato e l'abilitazione di questi due trasferimenti consente anche alle mie porte USB 3.0 di funzionare come previsto.


Ho appena appreso, con il mio GA-990FXA-UD7, che sia per i controller USB 2.0 e USB 3.0 che per il controller Ethernet integrato per funzionare correttamente in Linux (sto usando Mint 17.1) sono necessarie le seguenti impostazioni nel BIOS:

  • xHCI handoff - Abilitato
  • Trasferimento EHCI - Abilitato
  • Controller IOMMU - Abilitato

Non dimenticare di disabilitare UEFI e modificare tutte le opzioni di avvio in "Solo legacy".

Se hai davvero bisogno di eseguire l'avvio da un HDD con capacità>2,2 TB, potresti avere un problema diverso tra le mani.

Sto usando un SSD da 256 GB per la mia unità di avvio e un paio di HDD da 3 TB in un array RAID 1 (con mirroring) usando mdadm per la mia /home e tutto funziona bene.

Avendo lavorato parecchio con le schede Gigabyte, so che le schede 990FXA-UD5 e 990FXA-UD3 hanno un BIOS molto simile, quindi è probabile che lo stesso si applichi anche a quelle schede.


Cordiali saluti, i motivi tecnici per cui Linux non può utilizzare i dispositivi "attraverso" il BIOS:una volta che il sistema operativo è passato alla "modalità protetta" (32 bit) o ​​alla "modalità lunga" (64 bit), non può più inviare interruzioni al BIOS. In "modalità reale" (16 bit, all'avvio) può chiamare gli interrupt del BIOS per leggere i dischi, l'input da tastiera, ecc.

Ma ha anche dei lati negativi. Per prima cosa, non hai nemmeno un megabyte di memoria indirizzabile. Quindi il sistema operativo moderno esce dalla modalità reale quasi per prima cosa. (In realtà, credo che grub passi alla modalità protetta prima ancora di caricare il kernel).

Maggiori dettagli:http://wiki.osdev.org/Real_Mode http://wiki.osdev.org/Protected_Mode


Linux
  1. Il microfono Skype non funziona in Linux Mint 17 [Suggerimento rapido]

  2. Linux – Quando non dovrei uccidere -9 Un processo?

  3. Linux – Perché Setuid non funziona??

  4. PYTHONPATH non funziona per sudo su GNU/Linux (funziona per root)

  5. Il comando Linux 'll' non funziona

Correggi il touchpad Fare clic su Non funziona in Linux Mint

Le cuffie USB Logitech non funzionano su 12.04?

Perché non vedo MSG_EOR per SOCK_SEQPACKET su Linux?

fflush() non funziona in Linux

Linux limits.conf non funziona?

il blocco maiuscole non funziona sulla console Linux