GNU/Linux >> Linux Esercitazione >  >> Linux

Linux – Perché Usb non funziona in Linux quando funziona in Uefi/bios?

Per lo sfondo ho appena costruito una nuova macchina con hardware moderno tra cui:

  • AMD FX-8350
  • Scheda madre Gigabyte GA-990FXA-UD3
  • 16 GB di RAM
  • NVidia GTX 650 Ti
  • SSD Kingston

Detto questo, ho provato a installare varie versioni di Linux sull'SSD e ho riscontrato errori quasi ogni volta. Ho provato a installare Arch, Debian stable, Debian sid e Ubuntu 12.10 da una chiavetta USB ma mentre il BIOS ha visto l'unità USB e ha iniziato ad avviarsi da essa, non appena il sistema operativo ha tentato di enumerare i dispositivi USB ho perso tutte le funzionalità USB (incluso il dispositivo di avvio).

Alla fine ho masterizzato un DVD e installato Ubuntu 12.10 sull'SSD. Va notato che la mia tastiera (e mouse) USB funzionano bene mentre sono in American Megatrends UEFI/BIOS. Anche quando sono nei menu di preinstallazione sul DVD di Live Ubuntu, la tastiera funziona bene.

Non appena Linux viene avviato (dal Live DVD o dall'SSD) perdo tutte le funzionalità USB e posso navigare nel sistema operativo solo utilizzando una tastiera PS/2.

Quello che vedo in dmesg/syslog sono alcune righe su "failed to load microcode amd_ucode/microcode_amd_fam15h.bin ” e vedo che i dispositivi USB non vengono inizializzati.

Se eseguo un lsusb Riesco a vedere tutti i controller host USB ma nessuno dei dispositivi. Fare un lspci mi mostra tutto l'hardware che mi aspetterei. E facendo un lsmod Non vedo nessun modulo USB caricato (usb_ehci per esempio).

Ho provato a passare noapic alla stringa di avvio del kernel e non ha avuto alcun effetto su questo problema.

La scheda madre supporta USB 3.0 ma tutti i dispositivi che ho collegato alle normali porte USB 2.0.

Sono piuttosto sconcertato da ciò che potrebbe uccidere/impedire a USB (e alla mia scheda di rete integrata) di funzionare in Linux . Non sembra esserci alcun problema con nessuno di questi dispositivi che funzionano nel BIOS e non ho un'installazione di Windows disponibile per testare e vedere se funziona.

Ho già eseguito l'RMA della scheda madre una volta, ma la seconda ha esattamente lo stesso comportamento, quindi penso di poter escludere in sicurezza un guasto hardware (poiché il comportamento è identico, non credo sia strano che io ottenga due schede identiche difettose sono maggiori delle probabilità che si tratti di un problema di Linux).

Cos'altro posso provare per far funzionare l'USB (e idealmente la mia rete, ma per ora rimarremo su USB)?

Modifica n. 1:

Dato che non ho una rete, posso solo mettere in relazione bit interessanti da dmesg qui.

Interessante per dmesg Vedo che ho 11 controller host USB (OHCI, EHCI e xHCI). Rileva i miei dispositivi USB e quindi fallisce immediatamente come segue:

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

Ciò si ripete più volte incrementando il numero e provando altri controller host USB fino a quando non ritorna ai controller OHCI che falliscono anche loro ma hanno un messaggio aggiuntivo:

Correlati:Linux – Quando useresti pivot_root su switch_root?

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

Penso che i miei problemi di rete abbiano a che fare con il fatto che non ho IPv6 abilitato sul mio router e questo sembra essere un problema

eth1: no IPv6 routers present

Modifica n. 2:

lspci -vvv mostra che le mie schede di rete (sia integrate che di espansione) sono Realtek Semiconductor (nessuna sorpresa); RTL8111/8168B e RTL8169/8110 rispettivamente. I miei controller USB sono Etron Technology EJ168 (xHCI) e AMD nee ATI SB7x0/SB8x0/SB9x0 (EHCI &OHCI)

Ora è in esecuzione Debian wheezy modprobe mostra usb_common , usbcore , xhci_hcd , ehci_hcd e ohci_hcd tutto carico e funzionante.

Risposta accettata:

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

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

L'abilitazione di questa impostazione e il riavvio "magicamente" 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 a IOMMU Controller. Anche altri lo hanno menzionato e l'abilitazione di questi due handoff consente anche alle mie porte USB 3.0 di funzionare come previsto.


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

  2. Linux – Perché usiamo Su – e non solo Su?

  3. Perché la sincronizzazione è così importante quando si crea una chiavetta USB avviabile Linux?

  4. Linux:perché ci vuole così tanto tempo per rilevare una chiavetta USB?

  5. Linux:il led Caps Lock non funziona su console Linux?

Correggi il touchpad Fare clic su Non funziona in Linux Mint

Linux – Quando non dovrei uccidere -9 Un processo?

Linux – Perché Setuid non funziona??

Le cuffie USB Logitech non funzionano su 12.04?

perché sftp rmdir non funziona?

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