GNU/Linux >> Znalost Linux >  >> Linux

Linux – Proč USB nefunguje v Linuxu, když funguje v Uefi/bios?

Na pozadí jsem právě postavil nový stroj s moderním hardwarem včetně:

  • AMD FX-8350
  • Základní deska Gigabyte GA-990FXA-UD3
  • 16 GB RAM
  • NVidia GTX 650 Ti
  • Kingston SSD

Vzhledem k tomu jsem zkoušel nainstalovat různé verze Linuxu na SSD a téměř pokaždé jsem se setkal s neúspěchem. Zkoušel jsem nainstalovat Arch, Debian stable, Debian sid a Ubuntu 12.10 z USB flash disku, ale zatímco BIOS viděl USB disk a začal z něj bootovat, jakmile se OS pokusil vyjmenovat USB zařízení, ztratil jsem všechny funkce USB (včetně spouštěcího zařízení).

Nakonec jsem vypálil DVD a na SSD nainstaloval Ubuntu 12.10. Je třeba poznamenat, že moje USB klávesnice (a myš) funguje dobře, když jsem v americkém Megatrends UEFI/BIOS. I když jsem v předinstalačních nabídkách na Live Ubuntu DVD, klávesnice funguje dobře.

Jakmile je Linux nabootován (buď Live DVD nebo z SSD), ztratím všechny funkce USB a mohu procházet OS pouze pomocí klávesnice PS/2.

To, co vidím v dmesg/syslog, je několik řádků o „failed to load microcode amd_ucode/microcode_amd_fam15h.bin “ a vidím, že se zařízení USB nedaří inicializovat.

Pokud udělám lsusb Vidím všechny hostitelské řadiče USB, ale žádné zařízení. Provedení lspci ukazuje mi veškerý hardware, který bych očekával. A udělat lsmod Nevidím načtené žádné usb moduly (usb_ehci například).

Zkusil jsem předat noapic na zaváděcí řetězec jádra a na tento problém to nemělo žádný vliv.

Základní deska podporuje USB 3.0, ale všechna zařízení jsem zapojil do normálních portů USB 2.0.

Jsem docela zmatený tím, co by mohlo zabíjet nebo bránit USB (a mé integrované síťové kartě) v práci v Linuxu . Nezdá se, že by žádný z těchto zařízení fungoval v systému BIOS žádný problém a nemám k dispozici instalaci systému Windows, abych otestoval, zda funguje.

Základní desku jsem již jednou RMA provedl, ale druhá má úplně stejné chování, takže si myslím, že mohu bezpečně vyloučit selhání hardwaru (protože chování je totožné, nemyslím si, že by bylo divné, že dostanu dvě identicky vadné desky jsou větší než pravděpodobnost, že se jedná o problém Linuxu).

Co dalšího mohu zkusit, aby USB (a ideálně moje síť, ale zatím zůstaneme u USB) fungovalo?

Úprava č. 1:

Vzhledem k tomu, že nemám žádnou síť, mohu uvést pouze zajímavé kousky z dmesg zde.

Zajímavé v dmesg Vidím, že mám 11 hostitelských řadičů USB (OHCI, EHCI a xHCI). Detekuje moje zařízení USB a poté okamžitě selže následovně:

usb 3-1: new high-speed USB device number 2 using ehci_hcd
usb 3-1: device descriptor read/64, error -32

To se několikrát opakuje, zvyšuje se číslo a zkouší se další řadiče USB Host, dokud se nezmění na řadiče OHCI, které také selžou, ale mají další zprávu:

Související:Linux – Kdy byste použili pivot_root přes switch_root?

usb 8-1: device not accepting address 4, error -32

Myslím, že mé problémy se sítí souvisí se skutečností, že na routeru nemám povolený protokol IPv6 a to se zdá být problém

eth1: no IPv6 routers present

Úprava č. 2:

lspci -vvv ukazuje, že mé síťové adaptéry (integrované i rozšiřující) jsou Realtek Semiconductor (žádné překvapení); RTL8111/8168B respektive RTL8169/8110. Moje USB řadiče jsou Etron Technology EJ168 (xHCI) a AMD nee ATI SB7x0/SB8x0/SB9x0 (EHCI &OHCI)

Nyní běží Debian wheezy modprobe zobrazuje usb_common , usbcore , xhci_hcd , ehci_hcd a ohci_hcd vše naloženo a funkční.

Přijatá odpověď:

Našel jsem odpověď z tohoto vlákna (http://ubuntuforums.org/showthread.php?t=2114055) na ubuntuforums.org.

Zdá se, že u novějších základních desek Gigabyte (alespoň) existuje možnost BIOSu nazvaná IOMMU Controller který je ve výchozím nastavení zakázán a neposkytuje žádné vodítko ani náznak toho, k čemu slouží.

Povolení tohoto nastavení a restartování „magicky“ obnoví všechny mé problémy s USB a sítí v 64bitovém operačním systému Linux (nezáleží na tom, který).

Jsem spíše šokován a potěšen, že to bylo tak dlouhé hledání tak jednoduché opravy.

Děkuji všem za pomoc a návrhy. Doufám, že to ostatním bude užitečné.

Aktualizace: Jen bych rád dodal, že moje aktuální nastavení BIOSu také zahrnuje povolení XHCI Handoff a EHCI Handoff kromě IOMMU Controller. Jiní to také zmínili a povolení těchto dvou předání také umožňuje mým portům USB 3.0 fungovat podle očekávání.


Linux
  1. fflush() v Linuxu nefunguje

  2. linux limited.conf nefunguje?

  3. Linuxový příkaz 'll' nefunguje

  1. Linux – proč používáme Su – a nejen Su?

  2. Proč je synchronizace tak důležitá při vytváření zaváděcího USB klíče pro Linux?

  3. Proč USB nefunguje v Linuxu, když funguje v UEFI/BIOS?

  1. Linux – Proč Setuid nefunguje?

  2. Linux – Proč detekce USB Stick trvá tak dlouho?

  3. Linux – sluchátka nefungují Linux Mint 18?