Comment configurer Proxmox VE 8 pour PCI/PCIE et NVIDIA GPU Passthrough

Comment Configurer Proxmox Ve 8 Pour Pci Pcie Et Nvidia Gpu Passthrough



Proxmox VE 8 est l'un des meilleurs hyperviseurs de type I open source et gratuits pour exécuter des machines virtuelles (VM) QEMU/KVM et des conteneurs LXC. Il possède une belle interface de gestion Web et de nombreuses fonctionnalités.

L'une des fonctionnalités les plus étonnantes de Proxmox VE est qu'il peut transmettre des périphériques PCI/PCIE (c'est-à-dire un GPU NVIDIA) de votre ordinateur aux machines virtuelles (VM) Proxmox VE. Le relais PCI/PCIE s'améliore de plus en plus avec les nouvelles versions de Proxmox VE. Au moment d'écrire ces lignes, la dernière version de Proxmox VE est Proxmox VE v8.1 et offre une excellente prise en charge du relais PCI/PCIE.







Dans cet article, je vais vous montrer comment configurer votre hôte/serveur Proxmox VE 8 pour le passthrough PCI/PCIE et configurer votre GPU NVIDIA pour le passthrough PCIE sur les machines virtuelles (VM) Proxmox VE 8.





Table des matières

  1. Activation de la virtualisation à partir du micrologiciel BIOS/UEFI de votre carte mère
  2. Installation de Proxmox VE 8
  3. Activation des référentiels communautaires Proxmox VE 8
  4. Installation des mises à jour sur Proxmox VE 8
  5. Activation d'IOMMU à partir du micrologiciel BIOS/UEFI de votre carte mère
  6. Activation d'IOMMU sur Proxmox VE 8
  7. Vérifier si IOMMU est activé sur Proxmox VE 8
  8. Chargement des modules de noyau VFIO sur Proxmox VE 8
  9. Liste des groupes IOMMU sur Proxmox VE 8
  10. Vérifier si votre GPU NVIDIA peut être transmis à une machine virtuelle (VM) Proxmox VE 8
  11. Vérification des modules de noyau à mettre sur liste noire pour PCI/PCIE Passthrough sur Proxmox VE 8
  12. Liste noire des modules de noyau requis pour le relais PCI/PCIE sur Proxmox VE 8
  13. Configuration de votre GPU NVIDIA pour utiliser le module de noyau VFIO sur Proxmox VE 8
  14. Passer le GPU NVIDIA vers une machine virtuelle (VM) Proxmox VE 8
  15. Vous rencontrez toujours des problèmes avec le passthrough PCI/PCIE sur les machines virtuelles (VM) Proxmox VE 8 ?
  16. Conclusion
  17. Les références





Activation de la virtualisation à partir du micrologiciel BIOS/UEFI de votre carte mère

Avant de pouvoir installer Proxmox VE 8 sur votre ordinateur/serveur, vous devez activer la fonction de virtualisation matérielle de votre processeur à partir du firmware BIOS/UEFI de votre carte mère. Le processus est différent selon les cartes mères. Donc, si vous avez besoin d'aide pour activer la virtualisation matérielle sur votre carte mère, lire cet article .



Installation de Proxmox VE 8

Proxmox VE 8 est gratuit à télécharger, à installer et à utiliser. Avant de commencer, assurez-vous d'installer Proxmox VE 8 sur votre ordinateur. Si vous avez besoin d'aide à ce sujet, lire cet article .

Activation des référentiels communautaires Proxmox VE 8

Une fois Proxmox VE 8 installé sur votre ordinateur/serveur, assurez-vous de activer les référentiels de packages communautaires Proxmox VE 8 .

Par défaut, les référentiels de packages entreprise Proxmox VE 8 sont activés et vous ne pourrez pas obtenir/installer les mises à jour et les corrections de bogues à partir des référentiels entreprise, sauf si vous avez acheté des licences entreprise Proxmox VE 8. Donc, si vous souhaitez utiliser Proxmox VE 8 gratuitement, assurez-vous de activer les référentiels de packages communautaires Proxmox VE 8 pour obtenir gratuitement les dernières mises à jour et corrections de bugs de Proxmox.

Installation des mises à jour sur Proxmox VE 8

Une fois que vous avez activé les référentiels de packages communautaires Proxmox VE 8 , assurez-vous de installez toutes les mises à jour disponibles sur votre serveur Proxmox VE 8 .

Activation d'IOMMU à partir du micrologiciel BIOS/UEFI de votre carte mère

La configuration IOMMU se trouve à différents emplacements sur différentes cartes mères. Pour activer IOMMU sur votre carte mère, lire cet article .

Activation d'IOMMU sur Proxmox VE 8

Une fois l'IOMMU activé côté matériel, vous devez également activer IOMMU côté logiciel (à partir de Proxmox VE 8).

Pour activer IOMMU à partir de Proxmox VE 8, vous devez ajouter les paramètres de démarrage du noyau suivants :

Fournisseur de processeur Paramètres de démarrage du noyau à ajouter
Intel intel_iommu=on, iommu=pt
DMLA iommu=pt

Pour modifier les paramètres de démarrage du noyau de Proxmox VE 8, ouvrez le /etc/default/grub fichier avec l'éditeur de texte nano comme suit :

$ nano /etc/default/grub

À la fin de GRUB_CMDLINE_LINUX_DEFAULT , ajoutez les paramètres de démarrage du noyau requis pour activer IOMMU en fonction du processeur que vous utilisez.

Comme j'utilise un processeur AMD, j'ai ajouté uniquement le paramètre de démarrage du noyau iommu=pt à la fin de GRUB_CMDLINE_LINUX_DEFAULT ligne dans le /etc/default/grub déposer.

Une fois que vous avez terminé, appuyez sur + X suivi de ET et pour sauver le /etc/default/grub déposer.

Maintenant, mettez à jour les configurations de démarrage GRUB avec la commande suivante :

$ mise à jour-grub2

Une fois les configurations de démarrage GRUB mises à jour, cliquez sur Redémarrer pour redémarrer votre serveur Proxmox VE 8 pour que les modifications prennent effet.

Vérifier si IOMMU est activé sur Proxmox VE 8

Pour vérifier si IOMMU est activé sur Proxmox VE 8, exécutez la commande suivante :

$ dmesg | grep -e DMAR -e IOMMU

Si IOMMU est activé, vous verrez des sorties confirmant qu'IOMMU est activé.

Si IOMMU n’est pas activé, vous ne verrez peut-être aucune sortie.

Vous devez également avoir le Remappage des interruptions IOMMU activé pour que le relais PCI/PCIE fonctionne.

Pour vérifier si le remappage d'interruption IOMMU est activé sur votre serveur Proxmox VE 8, exécutez la commande suivante :

$ dmesg | grep 'remappage'

Comme vous pouvez le voir, le remappage d'interruption IOMMU est activé sur mon serveur Proxmox VE 8.

La plupart des processeurs AMD et Intel modernes auront le remappage d'interruption IOMMU activé. Si, pour une raison quelconque, le remappage d'interruption IOMMU n'est pas activé, il existe une solution de contournement. Vous devez activer les interruptions non sécurisées pour VFIO. Lire cet article pour plus d'informations sur l'activation des interruptions non sécurisées sur votre serveur Proxmox VE 8.

Chargement des modules de noyau VFIO sur Proxmox VE 8

Le relais PCI/PCIE est effectué principalement par les modules du noyau VFIO (Virtual Function I/O) sur Proxmox VE 8. Les modules du noyau VFIO ne sont pas chargés au démarrage par défaut sur Proxmox VE 8. Mais il est facile de charger le VFIO. modules du noyau au moment du démarrage sur Proxmox VE 8.

Tout d'abord, ouvrez le /etc/modules-load.d/vfio.conf déposer auprès du nano éditeur de texte comme suit :

$ nano /etc/modules-load.d/vfio.conf

Tapez les lignes suivantes dans le champ /etc/modules-load.d/vfio.conf déposer.

vfio

vfio_iommu_type1

vfio_pci

Une fois que vous avez terminé, appuyez sur + X suivi de ET et pour enregistrer les modifications.

Maintenant, mettez à jour les initramfs de votre installation Proxmox VE 8 avec la commande suivante :

$ update-initramfs -u -k tout

Une fois l'initramfs mis à jour, cliquez sur Redémarrer pour redémarrer votre serveur Proxmox VE 8 pour que les modifications prennent effet.

Une fois votre serveur Proxmox VE 8 démarré, vous devriez voir que tous les modules du noyau VFIO requis sont chargés.

$lsmod | poignée vfio

Liste des groupes IOMMU sur Proxmox VE 8

Pour passer des périphériques PCI/PCIE sur des machines virtuelles (VM) Proxmox VE 8, vous devrez vérifier assez fréquemment les groupes IOMMU de vos périphériques PCI/PCIE. Pour faciliter la vérification des groupes IOMMU, j'ai décidé d'écrire un script shell (je l'ai obtenu sur GitHub, mais je ne me souviens plus du nom de l'affiche originale) dans le chemin /usr/local/bin/print-iommu-groups pour que je puisse simplement courir imprimer-groupes-iommu commande et il imprimera les groupes IOMMU sur le shell Proxmox VE 8.

Tout d'abord, créez un nouveau fichier imprimer-groupes-iommu Sur le chemin /usr/local/bin et ouvrez-le avec l'éditeur de texte nano comme suit :

$ nano /usr/local/bin/print-iommu-groups

Tapez les lignes suivantes dans le champ imprimer-groupes-iommu déposer:

#!/bin/bash

magasins -s nullglob

pour g dans ` trouver / système / noyau / iommu_groups /* -profondeur max 0 -taper d | trier -DANS ` ; faire

écho 'Groupe IOMMU ${g##*/} :'

pour d dans $g / dispositifs /* ; faire

écho -C'est ' \t $(lspci -nns ${d##*/}) '

fait ;

fait ;

Une fois que vous avez terminé, appuyez sur + X suivi de ET et pour enregistrer les modifications apportées au imprimer-groupes-iommu déposer.

Faire le imprimer-groupes-iommu fichier script exécutable avec la commande suivante :

$ chmod +x /usr/local/bin/print-iommu-groups

Maintenant, vous pouvez exécuter le imprimer-groupes-iommu commande comme suit pour imprimer les groupes IOMMU des périphériques PCI/PCIE installés sur votre serveur Proxmox VE 8 :

$ print-iommu-groupes

Comme vous pouvez le constater, les groupes IOMMU des périphériques PCI/PCIE installés sur mon serveur Proxmox VE 8 sont imprimés.

Vérifier si votre GPU NVIDIA peut être transmis à une machine virtuelle (VM) Proxmox VE 8

Pour transmettre un périphérique PCI/PCIE vers une machine virtuelle (VM) Proxmox VE 8, il doit se trouver dans son propre groupe IOMMU. Si 2 périphériques PCI/PCIE ou plus partagent un groupe IOMMU, vous ne pouvez transmettre aucun des périphériques PCI/PCIE de ce groupe IOMMU vers des machines virtuelles (VM) Proxmox VE 8.

Ainsi, si votre GPU NVIDIA et son périphérique audio se trouvent sur son propre groupe IOMMU, vous pouvez transmettre le GPU NVIDIA à n'importe quelle machine virtuelle (VM) Proxmox VE 8.

Sur mon serveur Proxmox VE 8, j'utilise une carte mère MSI X570 ACE associée à un processeur Ryzen 3900X et un GPU Gigabyte RTX 4070 NVIDIA. Selon les groupes IOMMU de mon système, je peux passer par le GPU NVIDIA RTX 4070 (groupe IOMMU 21), le contrôleur Ethernet RTL8125 2.5Gbe (groupe IOMMU 20), le contrôleur Ethernet Gigabit Intel I211 (groupe IOMMU 19), un contrôleur USB 3.0 ( IOMMU Group 24) et le contrôleur audio HD intégré (IOMMU Group 25).

$ print-iommu-groupes

Comme l'objectif principal de cet article est la configuration de Proxmox VE 8 pour passer du GPU NVIDIA aux machines virtuelles Proxmox VE 8, le GPU NVIDIA et son périphérique audio doivent se trouver dans son propre groupe IOMMU.

Vérification des modules de noyau à mettre sur liste noire pour PCI/PCIE Passthrough sur Proxmox VE 8

Pour passer via un périphérique PCI/PCIE sur une machine virtuelle (VM) Proxmox VE 8, vous devez vous assurer que Proxmox VE l'oblige à utiliser le module de noyau VFIO au lieu de son module de noyau d'origine.

Pour connaître le module de noyau utilisé par vos périphériques PCI/PCIE, vous aurez besoin de connaître l'ID du fournisseur et l'ID de périphérique de ces périphériques PCI/PCIE. Vous pouvez trouver l'ID du fournisseur et l'ID de périphérique des périphériques PCI/PCIE à l'aide du imprimer-groupes-iommu commande.

$ print-iommu-groupes

Par exemple, l'ID du fournisseur et l'ID de l'appareil de mon GPU NVIDIA RTX 4070 sont 10de:2786 et son périphérique audio est 10de:22 avant JC .

Pour trouver le module noyau, un périphérique PCI/PCIE 10de:2786 (mon GPU NVIDIA RTX 4070) utilise, exécutez le lspci commande comme suit :

$ lspci -v -d 10de:2786

Comme vous pouvez le voir, mon GPU NVIDIA RTX 4070 utilise le nvidiafb et nouveau modules du noyau par défaut. Ils ne peuvent donc pas être transmis à une machine virtuelle (VM) Proxmox VE 8 à ce stade.

Le périphérique audio de mon GPU NVIDIA RTX 4070 utilise le snd_hda_intel module du noyau. Il ne peut donc pas non plus être transmis sur une machine virtuelle Proxmox VE 8 à ce stade.

$ lspci -v -d 10de:22bc

Ainsi, pour passer mon GPU NVIDIA RTX 4070 et son périphérique audio sur une machine virtuelle (VM) Proxmox VE 8, je dois mettre sur liste noire le nvidiafb , nouveau , et snd_hda_intel modules du noyau et configurez mon GPU NVIDIA RTX 4070 et son périphérique audio pour utiliser le vfio-pci module du noyau.

Liste noire des modules de noyau requis pour le relais PCI/PCIE sur Proxmox VE 8

Pour mettre sur liste noire les modules du noyau sur Proxmox VE 8, ouvrez le /etc/modprobe.d/blacklist.conf fichier avec l'éditeur de texte nano comme suit :

$ nano /etc/modprobe.d/blacklist.conf

Pour mettre sur liste noire les modules du noyau nouveau , nvidiafb , et snd_hda_intel modules du noyau (pour passer via le GPU NVIDIA), ajoutez les lignes suivantes dans le /etc/modprobe.d/blacklist.conf déposer:

liste noire nouveau

liste noire nvidiafb

liste noire snd_hda_intel

Une fois que vous avez terminé, appuyez sur + X suivi de ET et pour sauver le /etc/modprobe.d/blacklist.conf déposer.

Configuration de votre GPU NVIDIA pour utiliser le module de noyau VFIO sur Proxmox VE 8

Pour configurer le périphérique PCI/PCIE (c'est-à-dire votre GPU NVIDIA) pour utiliser le module du noyau VFIO, vous devez connaître son ID de fournisseur et son ID de périphérique.

Dans ce cas, l'ID du fournisseur et l'ID de l'appareil de mon GPU NVIDIA RTX 4070 et de son périphérique audio sont 10de:2786 et 10de:22bc .

Pour configurer votre GPU NVIDIA pour utiliser le module du noyau VFIO, ouvrez le /etc/modprobe.d/vfio.conf fichier avec l'éditeur de texte nano comme suit :

$ nano /etc/modprobe.d/vfio.conf

Pour configurer votre GPU NVIDIA et son périphérique audio avec le  : 10de:2786 et 10de:22 avant JC (disons) respectivement pour utiliser le module du noyau VFIO, ajoutez la ligne suivante au /etc/modprobe.d/vfio.conf déposer.

options identifiants vfio-pci = 10de:2786,10de:22bc

Une fois que vous avez terminé, appuyez sur + X suivi de ET et pour sauver le /etc/modprobe.d/vfio.conf déposer.

Maintenant, mettez à jour les initramfs de Proxmove VE 8 avec la commande suivante :

$ update-initramfs -u -k tout

Une fois initramfs mis à jour, cliquez sur Redémarrer pour redémarrer votre serveur Proxmox VE 8 pour que les modifications prennent effet.

Une fois votre serveur Proxmox VE 8 démarré, vous devriez voir que votre GPU NVIDIA et son périphérique audio ( 10de:2786 et 10de:22bc dans mon cas) utilisent le vfio-pci module du noyau. Maintenant, votre GPU NVIDIA est prêt à être transmis à une machine virtuelle Proxmox VE 8.

$ lspci -v -d 10de:2786

$ lspci -v -d 10de:22bc

Passer le GPU NVIDIA vers une machine virtuelle (VM) Proxmox VE 8

Maintenant que votre GPU NVIDIA est prêt pour le relais sur les machines virtuelles (VM) Proxmox VE 8, vous pouvez transmettre votre GPU NVIDIA sur la machine virtuelle Proxmox VE 8 de votre choix et installer les pilotes GPU NVIDIA en fonction du système d'exploitation que vous utilisez. cette machine virtuelle comme d'habitude.

Pour des informations détaillées sur la façon de transmettre votre GPU NVIDIA sur une machine virtuelle (VM) Proxmox VE 8 avec différents systèmes d'exploitation installés, lisez l'un des articles suivants :

  • Comment transmettre un GPU NVIDIA à une machine virtuelle (VM) Windows 11 Proxmox VE 8
  • Comment passer d'un GPU NVIDIA à une machine virtuelle (VM) Ubuntu 24.04 LTS Proxmox VE 8
  • Comment passer d'un GPU NVIDIA à une machine virtuelle (VM) LinuxMint 21 Proxmox VE 8
  • Comment transmettre un GPU NVIDIA à une machine virtuelle (VM) Debian 12 Proxmox VE 8
  • Comment passer d'un GPU NVIDIA à une machine virtuelle (VM) Elementary OS 8 Proxmox VE 8
  • Comment passer d'un GPU NVIDIA à une machine virtuelle (VM) Fedora 39+ Proxmox VE 8
  • Comment passer par un GPU NVIDIA sur une machine virtuelle (VM) Arch Linux Proxmox VE 8
  • Comment passer par un GPU NVIDIA sur une machine virtuelle (VM) Red Hat Enterprise Linux 9 (RHEL 9) Proxmox VE 8

Vous rencontrez toujours des problèmes avec le passthrough PCI/PCIE sur les machines virtuelles (VM) Proxmox VE 8 ?

Même après avoir essayé correctement tout ce qui est répertorié dans cet article, si le relais PCI/PCIE ne fonctionne toujours pas pour vous, assurez-vous de essayez quelques-unes des astuces et/ou solutions de contournement de Proxmox VE PCI/PCIE passthrough que vous pouvez utiliser pour obtenir un travail de relais PCI/PCIE sur votre matériel.

Conclusion

Dans cet article, je vous ai montré comment configurer votre serveur Proxmox VE 8 pour le relais PCI/PCIE afin que vous puissiez passer des périphériques PCI/PCIE (c'est-à-dire votre GPU NVIDIA) vers vos machines virtuelles (VM) Proxmox VE 8. Je vous ai également montré comment trouver les modules du noyau que vous devez mettre sur liste noire et comment les mettre sur liste noire pour un transfert réussi de vos périphériques PCI/PCIE souhaités (c'est-à-dire votre GPU NVIDIA) vers une machine virtuelle Proxmox VE 8. Enfin, je vous ai montré comment configurer les périphériques PCI/PCIE de votre choix (c'est-à-dire votre GPU NVIDIA) pour utiliser les modules du noyau VFIO, ce qui est également une étape essentielle pour un relais réussi de vos périphériques PCI/PCIE souhaités (c'est-à-dire votre GPU NVIDIA). ) vers une machine virtuelle (VM) Proxmox VE 8.

Les références

  1. Passthrough PCI(e) – Proxmox VE
  2. Passthrough PCI – Proxmox VE
  3. La machine virtuelle de jeu ultime sur proxmox – YouTube