GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi l'USB ne fonctionne-t-il pas sous Linux alors qu'il fonctionne dans UEFI/BIOS ?

J'ai trouvé la réponse de ce fil (http://ubuntuforums.org/showthread.php?t=2114055) sur ubuntuforums.org.

Il semble qu'avec les nouvelles cartes mères Gigabyte (au moins), il existe une option BIOS appelée IOMMU Controller qui est désactivé par défaut et ne donne aucun indice ou indication sur ce à quoi il sert.

L'activation de ce paramètre et le redémarrage "magique" restaure tous mes problèmes USB et réseau dans un système d'exploitation Linux 64 bits (peu importe lequel).

Je suis plutôt choqué et ravi que la recherche d'une solution aussi simple ait été si longue.

Merci à tous pour votre aide et vos suggestions. J'espère que d'autres trouveront cela utile.

Mise à jour : Je voudrais juste ajouter que mes paramètres BIOS actuels incluent également l'activation du transfert XHCI et du transfert EHCI en plus du contrôleur IOMMU. D'autres l'ont également mentionné et l'activation de ces deux transferts permet également à mes ports USB 3.0 de fonctionner comme prévu.


Je viens d'apprendre, avec mon GA-990FXA-UD7, que pour que les contrôleurs USB 2.0 et USB 3.0 et le contrôleur Ethernet intégré fonctionnent correctement sous Linux (j'utilise Mint 17.1), il fallait les paramètres suivants dans le BIOS :

  • Transfert xHCI - Activé
  • Transfert EHCI - Activé
  • Contrôleur IOMMU - Activé

N'oubliez pas de désactiver UEFI et de changer toutes les options de démarrage en "Legacy Only".

Si vous avez vraiment besoin de démarrer à partir d'un disque dur d'une capacité> 2,2 To, vous pourriez avoir un autre problème entre vos mains.

J'utilise un SSD de 256 Go pour mon disque de démarrage et une paire de disques durs de 3 To dans une matrice RAID 1 (en miroir) en utilisant mdadm pour mon /home et tout fonctionne bien.

Ayant beaucoup travaillé avec des cartes Gigabyte, je sais que les cartes 990FXA-UD5 et 990FXA-UD3 ont un BIOS très similaire, il est donc probable que la même chose s'applique également à ces cartes.


Pour votre information, les raisons techniques pour lesquelles Linux ne peut pas utiliser les périphériques "via" le BIOS :une fois que le système d'exploitation est passé en "mode protégé" (32 bits) ou en "mode long" (64 bits), il ne peut plus envoyer d'interruptions au BIOS. En "mode réel" (16 bits, au démarrage), il peut appeler des interruptions du BIOS pour lire des disques, saisir au clavier, etc.

Mais il a aussi des inconvénients. D'une part, vous n'avez même pas un mégaoctet de mémoire adressable. Ainsi, les systèmes d'exploitation modernes sortent du mode réel presque à la première chose. (En fait, je crois que grub passe en mode protégé avant même de charger le noyau).

Plus de détails :http://wiki.osdev.org/Real_Mode http://wiki.osdev.org/Protected_Mode


Linux
  1. Linux - Pourquoi utilisons-nous Su - Et pas seulement Su ?

  2. Pourquoi la synchronisation est-elle si importante lors de la création d'une clé USB Linux amorçable ?

  3. Linux - Pourquoi USB ne fonctionne-t-il pas sous Linux alors qu'il fonctionne sous Uefi/bios ?

  4. Linux – Pourquoi faut-il autant de temps pour détecter une clé USB ?

  5. Linux - La LED de verrouillage des majuscules ne fonctionne pas sur la console Linux ?

Correction du clic sur le pavé tactile ne fonctionnant pas sous Linux Mint

Le casque USB Logitech ne fonctionne pas sur 12.04 ?

Pourquoi ne vois-je pas MSG_EOR pour SOCK_SEQPACKET sous Linux ?

PYTHONPATH ne fonctionne pas pour sudo sur GNU/Linux (fonctionne pour root)

fflush() ne fonctionne pas sous Linux

La commande de date Linux ne fonctionne pas