Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
vfio [Le 08/02/2022, 16:33]
lyondif02 [-=[ VFIO PASSTHROUGHT ]=-] corr. titre +typo.
vfio [Le 12/09/2022, 09:09] (Version actuelle)
82.65.161.11 typo
Ligne 1: Ligne 1:
- 
 {{tag> Virtualisation qemu dexter74 vfio}} {{tag> Virtualisation qemu dexter74 vfio}}
 ---- ----
-====== VFIO PASSTHROUGH ======+====== ​-=[ VFIO PASSTHROUGH ​]=- ======
  
 Le VFIO ((Virtual Function Input/​Output)) PASSTHROUGH consiste à décharger le pilote d’un matériel – carte graphique, USB, souris… – pour l’assigner,​ par exemple, à une machine virtuelle. Le VFIO ((Virtual Function Input/​Output)) PASSTHROUGH consiste à décharger le pilote d’un matériel – carte graphique, USB, souris… – pour l’assigner,​ par exemple, à une machine virtuelle.
  
-Cette technique suppose des pré-requis. Elle nécessite du matériel plus ou moins facile à réaliser. ​FIXME Indiquer ​où il faut le fabriquer ?​+Cette technique suppose des pré-requis. Elle nécessite du matériel plus ou moins facile à réaliser. ​FIXMEIndiquer ​où il faut le fabriquer ?​
  
 L’intérêt du //​passthrough//​ est notamment de pouvoir bénéficier de l’accélération 3D d’une carte graphique sur la machine virtuelle, ou encore d’une meilleure gestion d’une souris ou d’un clavier spécifique sur cette machine virtuelle. L’intérêt du //​passthrough//​ est notamment de pouvoir bénéficier de l’accélération 3D d’une carte graphique sur la machine virtuelle, ou encore d’une meilleure gestion d’une souris ou d’un clavier spécifique sur cette machine virtuelle.
Ligne 19: Ligne 18:
  
  
-===== Pré-Requis ​=====+===== Pré-requis ​=====
  
-  * Avoir activé la Fonction ​**IOMMU** du Bios(Activer le 64 bits si vous avez dans le bios) +  * Avoir activé la fonction ​**IOMMU**((Input/​Output Memory Management Unit)) ​du BIOS – donc au niveau du matériel. Activer le mode « 64 bits » s’il est disponible ​dans le BIOS. 
-  * Avoir activé la Prise en compte du IOMMU par linux+  * Avoir activé la prise en compte du IOMMU par Linux – donc au niveau du logiciel (le système d’exploitation hôte ici)
-  * Le processeur doit prendre ​en charge la virtualisation. +  * Avoir activé la prise en charge ​de la virtualisation par le processeur – cela suppose que le processeur intègre un mode de virtualisation. 
-  * Avoir deux Carte-graphiques ou [[Wpfr>​Accelerated_processing_unit|Apu]] et une Carte-graphique  +  * Disposer de deux cartes ​graphiquesou d’une paire formée d’une ​[[Wpfr>​Accelerated_processing_unit|Apu]] et d’une carte graphique. 
-  * Avoir 2 Entrées ​vidéo sur l'​écran (1 pour le linux (host) et pour la Machine ​virtuelle (Guest) +  * Disposer de deux entrées ​vidéo sur l’écran :​ une pour le système Linux hôte (//Host//) et une pour la machine ​virtuelle ​invitée ​(//Guest//). 
-  * Connaitre ​son matériel . (Référence ​des GPU serait bien par exemple)+  * Disposer des caractéristiques techniques de son matériel. ​En l’occurrence,​ connaitre la référence ​des deux GPU disponibles.
  
-===== Obtentions ​des Informations Matériels  ​=====+===== Obtention ​des informations sur le matériel ​=====
    
-Il existe ​2 Types d'​adresse ​+Il existe ​deux types d’adresse 
-  * L'adresse de l'emplacement du matériel sur la carte-mère. +  * l’adresse de lemplacement du matériel sur la carte mère ; 
-  * L'adresse ** VendorID**:**DeviceID ** ou plus souvent appelée ** vendeur**:**périphérique ** . Celle-ci est composée de deux parties séparées par deux points ​**:**+  * l’adresse **VendorID:​DeviceID**ou plus souvent appelée **vendeur:​périphérique**. Celle-ci est composée de deux parties séparées par deux points ​« ».
  
 ==== Étape 1: Vérification de la prise en charge de IOMMU / Virtualisation processeur ​ ==== ==== Étape 1: Vérification de la prise en charge de IOMMU / Virtualisation processeur ​ ====
Ligne 44: Ligne 43:
 <code bash>​dmesg | grep "​AMD-Vi\|Intel VT-d" </​code>​ <code bash>​dmesg | grep "​AMD-Vi\|Intel VT-d" </​code>​
  
-Vous devriez obtenir ​+Vous devriez obtenir
 <​code>​AMD-Vi:​ Found IOMMU at 0000:​00:​00.2 cap 0x40 </​code>​ <​code>​AMD-Vi:​ Found IOMMU at 0000:​00:​00.2 cap 0x40 </​code>​
 Qui indique que le module IOMMU a bien été trouvé Qui indique que le module IOMMU a bien été trouvé
Ligne 51: Ligne 50:
 L'​interruption de l'​assignement du matériel est activée (Enable), sans ce paramètre on ne pourra pas faire le VFIO. L'​interruption de l'​assignement du matériel est activée (Enable), sans ce paramètre on ne pourra pas faire le VFIO.
  
-=== Prise en Charge de la Virtualisation === +=== Prise en Charge de la Virtualisation ===
 Saisissez dans un [[:​terminal]] la [[:​commande_shell|commande]] suivante: Saisissez dans un [[:​terminal]] la [[:​commande_shell|commande]] suivante:
-<code bash>​lscpu | grep "Virtualisation" </​code>​+<code bash>​lscpu | grep "Virtualization" </​code>​
  
 Devrait répondre Devrait répondre
-<​code>​Virtualisation :      AMD-V</​code>​+<​code>​Virtualization :      AMD-V</​code>​
  
 Tous les Pré-Requis sont donc bons. Tous les Pré-Requis sont donc bons.
Ligne 64: Ligne 63:
 <note important>​Vérifier que les cartes graphiques soient installées dans le bon ordre sur la carte-mère. <note important>​Vérifier que les cartes graphiques soient installées dans le bon ordre sur la carte-mère.
   * **Port PCI Express 1:** Carte graphique réservée au système d'​exploitation Linux. (**__HOST__**)   * **Port PCI Express 1:** Carte graphique réservée au système d'​exploitation Linux. (**__HOST__**)
-  * **Port PCI Express 2:** Carte graphique pour le système d'​exploitation invité . (**__GUEST__** / Windows) ​+  * **Port PCI Express 2:** Carte graphique pour le système d'​exploitation invité . (**__GUEST__** / Windows)
 </​note>​ </​note>​
  
Ligne 84: Ligne 83:
  
 Ici la carte graphique est branchée en HDMI et donc les signaux Vidéo / Son ont été séparés.\\ 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"​ ** car il est présent sur la carte son lié à la fois à la carte-mère et à la sortie son inclus dans le HDMI. (Sortie HDMI) +On ne pourra pas interdire le pilote ** " snd_hda_intel"​ ** car il est présent sur la carte son lié à la fois à la carte-mère et à la sortie son inclus dans le HDMI. (Sortie HDMI)
  
 ==== Étape 3: Activation des Modules ​ ==== ==== Étape 3: Activation des Modules ​ ====
Ligne 95: Ligne 94:
 vfio_pci vfio_pci
 kvm kvm
-kvm_amd ​+kvm_amd
 kvm_intel ​ <-- effacer cette ligne par exemple si vous avez un processeur AMD kvm_intel ​ <-- effacer cette ligne par exemple si vous avez un processeur AMD
-</​file> ​ +</​file>​
   - Mettre à jour le chargement des modules: <​code>​sudo update-initramfs -u </​code>  ​   - Mettre à jour le chargement des modules: <​code>​sudo update-initramfs -u </​code>  ​
  
Ligne 106: Ligne 105:
 lspci -v | grep "​VGA\|Audio\|Kernel driver in use: snd_hda_intel\|Kernel driver in use: nouveau\|Kernel driver in use: nouveaufb\|Kernel driver in use: radeon\|Kernel driver in use: vfio-pci"​ lspci -v | grep "​VGA\|Audio\|Kernel driver in use: snd_hda_intel\|Kernel driver in use: nouveau\|Kernel driver in use: nouveaufb\|Kernel driver in use: radeon\|Kernel driver in use: vfio-pci"​
 </​code>​ </​code>​
-Vous devriez ​obtenir un tableau proche de:+Vous devriez ​obtenirun ​tableau proche de:
  
 ^   ​Slots ^ ​ Type ^ Désignation  ​ ^ VendorID:​DeviceID ​    ^ Kernel Driver  ​       ^ Notes  ​ | ^   ​Slots ^ ​ Type ^ Désignation  ​ ^ VendorID:​DeviceID ​    ^ Kernel Driver  ​       ^ Notes  ​ |
Ligne 115: Ligne 114:
 |  02:00.1 | Audio HDMI2 | R9-270x (HDMI)  ​ | 1043:​aab0 ​       | snd_hda_intel | VFIO (GUEST) | |  02:00.1 | Audio HDMI2 | R9-270x (HDMI)  ​ | 1043:​aab0 ​       | snd_hda_intel | VFIO (GUEST) |
  
-Ici on peut voir que le "​**Kernel __Driver__**"​ est "​**vfio-pci**"​. ​+Ici on peut voir que le "​**Kernel __Driver__**"​ est "​**vfio-pci**"​.
  
 :!: Ignorer le "​**Kernel __Modules__** :!: :!: Ignorer le "​**Kernel __Modules__** :!:
Ligne 128: Ligne 127:
 |  02:00.1 | Audio HDMI2 | R9-270x (HDMI)  ​ | 1043:​aab0 ​       | Encoursderedaction | VFIO (GUEST) | |  02:00.1 | Audio HDMI2 | R9-270x (HDMI)  ​ | 1043:​aab0 ​       | Encoursderedaction | VFIO (GUEST) |
  
-FIXME Mise en forme +FIXMEMise ​en forme 
-<note help>####################​ **/​etc/​modprobe.d/​vfio.conf** #################### ​+<note help>####################​ **/​etc/​modprobe.d/​vfio.conf** ####################​
    ​Exemple ​    ​Exemple ​
 <​file>​options vfio-pci ids=1002:​6810,​1002:​aab0 ,1043:aab0 <​file>​options vfio-pci ids=1002:​6810,​1002:​aab0 ,1043:aab0
Ligne 161: Ligne 160:
  
 ^ Slot    ^ Type     ^ Désignation ​    ^ Code Erreur ​  ​^Base ​          ​^Erreur ​    ^ Slot | ^ Slot    ^ Type     ^ Désignation ​    ^ Code Erreur ​  ​^Base ​          ​^Erreur ​    ^ Slot |
-|00:00.2 | IOMMU | Advanced Micro Devices, Inc. [AMD/ATI] RD990 I/O Memory Management Unit | 10 | ivrs_ioapic ​ |  [10]=      |  00:​00.2 ​   |  +|00:00.2 | IOMMU | Advanced Micro Devices, Inc. [AMD/ATI] RD990 I/O Memory Management Unit | 10 | ivrs_ioapic ​ |  [10]=      |  00:​00.2 ​   | 
-|00:14.0 | SMBus  | Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 42)        | 9 | ivrs_ioapic ​ |  [9]=        |  00:​14.0 ​   | +|00:14.0 | SMBus  | Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 42)        | 9 | ivrs_ioapic ​ |  [9]=        |  00:​14.0 ​   |
  
 <​code>​ivrs_ioapic[9]=00:​14.0 ivrs_ioapic[10]=00:​00.2</​code>​ <​code>​ivrs_ioapic[9]=00:​14.0 ivrs_ioapic[10]=00:​00.2</​code>​
Ligne 177: Ligne 176:
  
 ==== Intel ==== ==== Intel ====
-FIXME +FIXME
   ​   ​
 ===== Vérification Finale ===== ===== Vérification Finale =====
Ligne 187: Ligne 186:
 </​code> ​   ​ </​code> ​   ​
  
-FIXME Manque ​quelques infos. En cours+FIXMEManque ​quelques infos. En cours
  
 ===== Script VFIO avec Qemu (Samba & Synergy) ===== ===== Script VFIO avec Qemu (Samba & Synergy) =====
Ligne 195: Ligne 194:
 Fix Synergy: (Bouton Suivant / Précédent / touch alt+gr) Fix Synergy: (Bouton Suivant / Précédent / touch alt+gr)
  
-Éditer le fichier **synergy.conf** ​FIXME Chemin ​exact+Éditer le fichier **synergy.conf** ​FIXMEChemin ​exact
   * Dans la section "​screens"​ de la machine virtuelle ajouter en bas.<​file>​altgr = alt</​file>​   * Dans la section "​screens"​ de la machine virtuelle ajouter en bas.<​file>​altgr = alt</​file>​
   * Dans la section "​options"​ de la machine virtuelle ajouter en bas.<​file>​   * Dans la section "​options"​ de la machine virtuelle ajouter en bas.<​file>​
  • vfio.1644334389.txt.gz
  • Dernière modification: Le 08/02/2022, 16:33
  • par lyondif02