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 01/10/2018, 10:20]
81.250.185.117 [Étape 4: Redémarrage et vérification]
vfio [Le 12/09/2022, 09:09] (Version actuelle)
82.65.161.11 typo
Ligne 1: Ligne 1:
-{{tag> Virtualisation qemu}}+{{tag> Virtualisation qemu dexter74 vfio}}
 ---- ----
-====== VFIO PASSTHROUGHT ​======+====== ​-=[ VFIO PASSTHROUGH ]=- ======
  
-Le VFIO ((Virtual Function ​I/O)) PASSTHROUGH ​ consiste à décharger le pilote d'un matériel ​(Carte ​graphique , usb , souris ​...) pour ensuite ​l'assigner à une machine virtuelle ​par exemple\\ +Le VFIO ((Virtual Function ​Input/Output)) PASSTHROUGH consiste à décharger le pilote dun matériel ​– carte graphique, ​USB, souris… – pour lassigner, par exemple, ​à une machine virtuelle.
-Cette technique demande des pré-requis,​ et nécessite du matériel plus ou moins facile à réaliser. FIXME mettre en place ou il faut le fabriquer?+
  
-FIXME: Intérêt concret?+Cette technique suppose des pré-requis. Elle nécessite du matériel plus ou moins facile à réaliser. FIXMEIndiquer où il faut le fabriquer ?
  
-===== Pré-Requis =====+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.
  
-  ​* Avoir activé la Fonction ​**IOMMU** du Bios(Activer le 64 bits si vous avez dans le bios) +FIXME 
-  * Avoir activé la Prise en compte du IOMMU par linux+<​note>​ 
-  * Le processeur doit prendre ​en charge la virtualisation. +Article en cours de modification. 
-  * Avoir deux Carte-graphiques ou [[Wpfr>​Accelerated_processing_unit|Apu]] et une Carte-graphique  +</​note>​ 
-  * Avoir 2 Entrées ​vidéo sur l'​écran (1 pour le linux (host) et pour la Machine ​virtuelle (Guest) + 
-  * Connaitre ​son matériel . (Référence ​des GPU serait bien par exemple)+ 
 + 
 + 
 + 
 +===== Pré-requis ===== 
 + 
 +  ​* 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 – donc au niveau du logiciel (le système d’exploitation hôte ici)
 +  * Avoir activé la prise en charge ​de la virtualisation par le processeur – cela suppose que le processeur intègre un mode de virtualisation. 
 +  * Disposer de deux cartes ​graphiquesou d’une paire formée d’une ​[[Wpfr>​Accelerated_processing_unit|Apu]] et d’une carte graphique. 
 +  * 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//). 
 +  * 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 33: 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 40: 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 "​Virtualization"​ </​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 53: 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 73: 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 84: 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 95: 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 104: 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 117: 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 150: 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 166: Ligne 176:
  
 ==== Intel ==== ==== Intel ====
-FIXME +FIXME
   ​   ​
 ===== Vérification Finale ===== ===== Vérification Finale =====
Ligne 176: 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) =====
  
-[[http://​pastebin.com/​1uxiBfx6|Script qemu (Samba / Synergy)]]+[[https://​pastebin.com/​1uxiBfx6|Script qemu (Samba / Synergy)]]
  
 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.1538382004.txt.gz
  • Dernière modification: Le 01/10/2018, 10:20
  • par 81.250.185.117
  • Actuellement bloqué par: 3.21.231.245,10.42.2.254