Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
vfio [Le 04/05/2016, 02:38] – [VFIO] dexter74 | vfio [Le 28/12/2020, 20:57] (Version actuelle) – dexter74 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> Virtualisation qemu dexter74 vfio}} | ||
+ | ---- | ||
+ | ====== -=[ VFIO PASSTHROUGHT ]=- ====== | ||
+ | Le VFIO ((Virtual Function I/O)) PASSTHROUGH | ||
+ | Cette technique demande des pré-requis, | ||
+ | \\ | ||
+ | L' | ||
+ | |||
+ | FIXME: | ||
+ | < | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Pré-Requis ===== | ||
+ | |||
+ | * Avoir activé la Fonction **IOMMU** du Bios. (Activer le 64 bits si vous avez dans le bios) | ||
+ | * Avoir activé la Prise en compte du IOMMU par linux. | ||
+ | * Le processeur doit prendre en charge la virtualisation. | ||
+ | * Avoir deux Carte-graphiques ou 1 [[Wpfr> | ||
+ | * Avoir 2 Entrées vidéo sur l' | ||
+ | * Connaitre son matériel . (Référence des 2 GPU serait bien par exemple) | ||
+ | |||
+ | ===== Obtentions des Informations Matériels | ||
+ | |||
+ | Il existe 2 Types d' | ||
+ | * L' | ||
+ | * L' | ||
+ | |||
+ | ==== Étape 1: Vérification de la prise en charge de IOMMU / Virtualisation processeur | ||
+ | |||
+ | <note important> | ||
+ | Cette page ne propose pour le moment que celui pour les processeurs **AMD**. \\ | ||
+ | En effet, au moment de l' | ||
+ | |||
+ | === Prise en Charge de IOMMU=== | ||
+ | Saisissez dans un [[: | ||
+ | <code bash> | ||
+ | |||
+ | Vous devriez obtenir | ||
+ | < | ||
+ | Qui indique que le module IOMMU a bien été trouvé | ||
+ | |||
+ | < | ||
+ | L' | ||
+ | |||
+ | === Prise en Charge de la Virtualisation === | ||
+ | Saisissez dans un [[: | ||
+ | <code bash> | ||
+ | |||
+ | Devrait répondre | ||
+ | < | ||
+ | |||
+ | Tous les Pré-Requis sont donc bons. | ||
+ | |||
+ | ==== Étape 2: Obtentions des informations | ||
+ | |||
+ | <note important> | ||
+ | * **Port PCI Express 1:** Carte graphique réservée au système d' | ||
+ | * **Port PCI Express 2:** Carte graphique pour le système d' | ||
+ | </ | ||
+ | |||
+ | Lister tout, en saisissant dans un [[: | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | Nvidia inclus: FIXME: Autant ne proposer que cette ligne, non? | ||
+ | <code bash> | ||
+ | |||
+ | :!: La Sortie HDMI à une seconde adresse VendorID: | ||
+ | |||
+ | ^ | ||
+ | | 00:14.2 | Audio device | AMD/ATI Intel HDA | 1002: | ||
+ | | 01:00.0 | VGA (GPU) | GTX-260 | ||
+ | | 02:00.0 | VGA (GPU | R9-270x (Video) | ||
+ | | 02:00.1 | Audio HDMI1 | R9-270x (HDMI) | ||
+ | | 02:00.1 | Audio HDMI2 | R9-270x (HDMI) | ||
+ | |||
+ | Ici la carte graphique est branchée en HDMI et donc les signaux Vidéo / Son ont été séparés.\\ | ||
+ | On ne pourra pas interdire le pilote ** " snd_hda_intel" | ||
+ | |||
+ | ==== Étape 3: Activation des Modules | ||
+ | |||
+ | - Connaitre la marque de son processeur: < | ||
+ | lscpu | grep name</ | ||
+ | - [[: | ||
+ | vfio | ||
+ | vfio_iommu_type1 | ||
+ | vfio_pci | ||
+ | kvm | ||
+ | kvm_amd | ||
+ | kvm_intel | ||
+ | </ | ||
+ | - Mettre à jour le chargement des modules: < | ||
+ | |||
+ | ==== Étape 4: Redémarrage et vérification ==== | ||
+ | |||
+ | Après avoir redémarré votre machine, vérifiez la bonne mise en place du vfio en saisissant dans un [[: | ||
+ | <code bash> | ||
+ | lspci -v | grep " | ||
+ | </ | ||
+ | Vous devriez obtenir un tableau proche de: | ||
+ | |||
+ | ^ | ||
+ | | 00:14.2 | Audio device | AMD/ATI Intel HDA | 1002: | ||
+ | | 01:00.0 | VGA (GPU) | GTX-260 | ||
+ | | 02:00.0 | VGA (GPU | R9-270x (Video) | ||
+ | | 02:00.1 | Audio HDMI1 | R9-270x (HDMI) | ||
+ | | 02:00.1 | Audio HDMI2 | R9-270x (HDMI) | ||
+ | |||
+ | Ici on peut voir que le " | ||
+ | |||
+ | :!: Ignorer le " | ||
+ | |||
+ | ===== VFIO ===== | ||
+ | |||
+ | ^ | ||
+ | | 00:14.2 | Audio device | AMD/ATI Intel HDA | 1002: | ||
+ | | 01:00.0 | VGA (GPU) | GTX-260 | ||
+ | | 02:00.0 | VGA (GPU | R9-270x (Video) | ||
+ | | 02:00.1 | Audio HDMI1 | R9-270x (HDMI) | ||
+ | | 02:00.1 | Audio HDMI2 | R9-270x (HDMI) | ||
+ | |||
+ | FIXME Mise en forme | ||
+ | <note help>#################### | ||
+ | | ||
+ | < | ||
+ | #vfio-pci ids=< | ||
+ | #Aucune Guillemet | ||
+ | #Exemple: 1002:6810 (R9-270x - GPU ) , 1002:aab0 (R9-270x - HDMI1) , 1043:aab0 (R9-270x - HDMI2) | ||
+ | options vfio-pci ids=1002: | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <note help>#################### | ||
+ | Exemple | ||
+ | < | ||
+ | #Attention au Guillemet (Début et fin de toutes les adresse) | ||
+ | #Chaque début d' | ||
+ | #Un espace entre chaque adresse (sauf la première collé à la guillemet) | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== FIX IOMMU ===== | ||
+ | |||
+ | ==== AMD ==== | ||
+ | <code bash >dmesg | grep AMD-Vi</ | ||
+ | < | ||
+ | [0.251399] [Firmware Bug]: AMD-Vi: IOAPIC[9] not in IVRS table <= SouthBridge Inconnus (Erreur 9) \\ | ||
+ | [0.251403] [Firmware Bug]: AMD-Vi: IOAPIC[10] not in IVRS table <= Northbridge Inconnus (Erreur 10) \\ | ||
+ | </ | ||
+ | L' | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | ^ Slot ^ Type ^ Désignation | ||
+ | |00:00.2 | IOMMU | Advanced Micro Devices, Inc. [AMD/ATI] RD990 I/O Memory Management Unit | 10 | ivrs_ioapic | ||
+ | |00:14.0 | SMBus | Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 42) | 9 | ivrs_ioapic | ||
+ | |||
+ | < | ||
+ | |||
+ | **Éditer / | ||
+ | < | ||
+ | par | ||
+ | < | ||
+ | en adaptant selon le résultat obtenu précédemment | ||
+ | |||
+ | Ensuite faire un : | ||
+ | < | ||
+ | Redémarrer | ||
+ | |||
+ | ==== Intel ==== | ||
+ | FIXME | ||
+ | | ||
+ | ===== Vérification Finale ===== | ||
+ | <code bash> | ||
+ | < | ||
+ | [ 1.597597] AMD-Vi: Found IOMMU at 0000: | ||
+ | [ 1.597598] AMD-Vi: Interrupt remapping enabled | ||
+ | [ 1.597712] AMD-Vi: Lazy IO/TLB flushing enabled | ||
+ | </ | ||
+ | |||
+ | FIXME Manque quelques infos. En cours | ||
+ | |||
+ | ===== Script VFIO avec Qemu (Samba & Synergy) ===== | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Fix Synergy: (Bouton Suivant / Précédent / touch alt+gr) | ||
+ | |||
+ | Éditer le fichier **synergy.conf** FIXME Chemin exact | ||
+ | * Dans la section " | ||
+ | * Dans la section " | ||
+ | mousebutton(6) = keystroke(WWWBack) | ||
+ | mousebutton(7) = keystroke(WWWForward) </ | ||
+ | |||
+ | ---- | ||
+ | // |