
Lorsque vous avez un serveur Unraid où vous souhaitez créer une machine virtuelle gaming, vous avez forcément besoin de 2 écrans, 2 souris et 2 claviers USB.
Pour éviter d'acheter autant de matériel et si vous êtes un peu geek, vous avez probablement acheté un KVM physique qui vous permet de contrôler plusieurs ordinateurs (ou machines virtuelles en passant la carte graphique et les périphériques USB nécessaires à celle-ci).
Dans notre cas, nous avons un KVM physique sur lequel sont branchés une souris Logitech, ainsi qu'un clavier d'une autre marque.
Etant donné que l'USB n'est pas plug-and-play pour les machines virtuelles sous Unraid, vous êtes obligé d'utiliser un plugin tiers pour mapper les périphériques USB (clavier / souris) branchés sur votre KVM à votre machine virtuelle gaming lorsque vous sélectionnez sa position sur ce KVM physique.
Pour cela, référez-vous à notre tutoriel : Unraid 6.9.2 - VMs - Connecter des périphériques USB à chaud (plugin USB Manager).

Une fois ce plugin installé et configuré pour mapper également votre souris et votre clavier USB à votre machine virtuelle, ce plugin connectera automatiquement ceux-ci à votre VM gaming quand celle-ci sera allumée et que vous aurez sélectionné la position correspondant à votre VM gaming sur votre KVM physique.

Le bug le plus courant avec les VMs gaming lorsque vous utilisez un eGPU pour celles-ci est qu'après un certain temps (trop court pour réellement avoir le temps de jouer à votre jeu), l'écran de votre VM gaming freeze définitivement.
Si vous allez dans l'onglet "VMs" d'Unraid, vous remarquerez que la machine virtuelle a été mise en pause automatiquement par Unraid.
Plain Text
gaming VM : paused.
Important : ce problème n'arrivera pas si vous avez suivi notre tutoriel (car vous avez déjà désactivé l'ASPM à l'étape "15. Désactiver la gestion de l'alimentation (ASPM) sous Unraid" de ce tutoriel).

Vous cliquez sur l'icône de votre machine virtuelle gaming, puis sur "Logs" pour savoir ce qu'il s'est passé.

A la fin des logs de votre machine virtuelle (toujours en pause), vous verrez ces avertissements apparaitre.
Plain Text
2024-10-01T10:28:03.353598Z qemu-system-x86_64: vfio_err_notifier_handler(0000:42:00.0) Unrecoverable error detected. Please collect any data possible and then kill the guest. 2024-10-01T10:28:03.354585Z qemu-system-x86_64: vfio_err_notifier_handler(0000:42:00.1) Unrecoverable error detected. Please collect any data possible and then kill the guest.
Si vous regardez sur l'image précédente (ou dans la liste des périphériques que vous aviez assignés au VFIO dans votre cas), vous comprendrez aisément que l'erreur irrécupérable concerne votre carte graphique NVIDIA (dans notre cas "42:00.0" pour sa partie graphique et "42:00.1" pour sa partie audio) ajoutée dans votre machine virtuelle gaming.
L'erreur est la même que lorsque vous tentez de créer une VM gaming sous Proxmox sans désactiver l'ASPM.
Vous trouverez surement le paramètre "pci=noaer" comme sur les pages "[SOLVED] AER PCIe Bus Errors - General Support - Unraid" et "[Solved] PCIE errors - General Support - Unraid" du forum d'Unraid.
Néanmoins, la vraie solution (et qui est aussi valable pour "Proxmox"), consiste à utiliser le paramètre "pcie_aspm=off" (qui élimine définitivement ce problème) au lieu de "pci=noaer" (qui est moins stable).
Source : pcie - pcieport 0000:00:1d.0: AER: Corrected error received: 0000:04:00.0 - Ask Ubuntu.

Notez que lorsque cette erreur se produit, l'option "Resume" ne fonctionne pas.

Si vous tentez de cliquer sur "Resume", une erreur d'exécution se produira.
Plain Text
Execution error. Internal error: unable to execute QEMU command 'count': Resetting the Virtual Machine is required.

Bref, vous serez obligé d'arrêter votre machine virtuelle en cliquant sur "Force Stop".

Votre machine virtuelle gaming est arrêtée.
Plain Text
gaming VM : stopped.

L'autre problème qui subsistera lorsque vous utilisez votre machine virtuelle gaming avec un eGPU sera l'erreur "0x887A0006: DXGI_ERROR_DEVICE_HUNG" que votre jeu pourra vous retourner de façon aléatoire après au moins une heure de jeu (la durée étant variable et sans raison apparente, bien que vous puissiez très souvent jouer plus d'une heure sans que le jeu ne plante si vous avez suivi tout notre tutoriel).

Comme vous pouvez le voir, au moment du plantage (indiqué par la flèche rouge sur l'image ci-dessous), il n'y a aucune raison qui explique pourquoi le jeu plante de façon aléatoire à ce moment-là.
La mémoire graphique est utilisée à moitié, la mémoire vive libre est largement suffisante, le processeur n'est pas surchargé et la température de la carte graphique n'est clairement pas élevée.
Notez que la machine virtuelle gaming que nous avions créée dans un tutoriel précédent (avec la même carte graphique, mais branchée en PCIe au lieu de passer par un eGPU et où nous avions appliqué le patch "ACS override") ne posait aucun problème de stabilité.
D'après nos tests, le problème est donc simplement dû à un problème de stabilité de QEMU / KVM (l'hyperviseur natif de Linux utilisé notamment par Unraid et Proxmox) et non à notre carte graphique NVIDIA.

Lorsque l'erreur s'est produite avec le jeu que nous avons utilisé, nous pouvons récupérer un fichier de logs généré par le jeu et où il est indiqué que le périphérique a été soi-disant enlevé.
Autrement dit, une déconnexion très brève entre votre carte graphique physique et votre VM gaming (très certainement dû aux eGPU qui ne sont pas supportés de façon stable par QEMU/KVM).
Ou alors est-ce l'eGPU qui crée un goulot d'étranglement qui empêche aléatoirement la carte graphique de répondre assez vite (d'où le mot-clé "...DEVICE_HUNG") ?
Plain Text
07:34:52:979 (00002752) > [D3D] cdc::PCDX12StagingBufferPool::StagingBuffer::Map: pResource->Map(0, &range, &ptr) failed with HRESULT 0x887a0005 07:34:52:979 (00002752) > [D3D] ERROR! Device removed detected (0x887A0006: DXGI_ERROR_DEVICE_HUNG) 07:34:52:984 (00007680) > [DXGI] Present failed with HRESULT 0x887a0005

Lorsque vous utilisez un eGPU avec Unraid (ou avec d'autres solutions de virtualisation, telle que "Proxmox", par exemple), il arrive que votre machine virtuelle ne démarre pas ou plus lorsque vous tentez de la lancer un autre jour.

En effet, un message d'erreur similaire à celui-ci dessous apparaitra et vous indiquera en résumé que le périphérique (dont l'ID IOMMU est "0000:42:00.0" est introuvable).
Plain Text
Execution error Device 0000:42:00.0 not found: could not access /sys/bus/pci/devices/0000:42:00.0/config: No such file or directory

Pour comprendre ce qu'il se passe, il suffit d'aller dans "Tools -> System Devices" (pour voir les périphériques système reconnus par Linux et donc aussi par Unraid).

Si nous regardons à la fin de la liste, nous voyons plusieurs lignes concernant Thunderbolt.
Mais, nous ne trouvons pas notre carte graphique NVIDIA (que nous avions assignée précédemment en VFIO).
Cliquez sur le bouton "View VFIO-PCI Log".

Comme vous pouvez le voir, nous pouvons voir 2 erreurs dans cet historique (Log).
Plain Text
Processing 0000:42:00.0 10de:2507 Error: Device 0000:42:00.0 does not exist, unable to bind device Processing 0000:42:00.1 10de:228e Error: Device 0000:42:00.1 does not exist, unable to bind device
Ces 2 périphériques correspondent respectivement à la partie graphique et à la partie audio de notre carte graphique NVIDIA RTX 3050 (ce que vous pouvez vérifier très facilement en tapant l'ID matériel "10de:2507" dans Google).
En résumé, le pilote VFIO-PCI vous indique que ces périphériques n'existent pas et qu'il n'a donc pas pu les assigner au pilote VFIO-PCI (ce qui est requis pour pouvoir ensuite utiliser votre carte graphique avec votre VM gaming).

La solution est plutôt simple.
Il suffit d'éteindre votre serveur Unraid via l'onglet "Dashboard", puis en cliquant sur la 2ème icône.
Attention : vous devez éteindre votre serveur Unraid, pas le redémarrer.

Confirmez l'arrêt de votre serveur Unraid.

Une fois votre serveur Unraid éteint, éteignez votre eGPU.
Ensuite, faites ceci dans l'ordre :
Note : si cela ne fonctionne pas, éteignez à nouveau votre serveur Unraid et votre eGPU et recommencez ces 3 étapes de la liste ci-dessus.
Cette fois-ci, cela fonctionnera. Avec notre Razer Core X, le 1er démarrage de l'eGPU et d'Unraid ne fonctionne jamais. La carte graphique n'est pas détectée.
Mais lors de la 2ème ou 3ème tentative (ça dépend des fois), alors là ça fonctionne. La carte graphique présente dans l'eGPU est enfin reconnue.
Notez qu'une fois la carte graphique reconnue, elle restera visible et accessible tant que vous n'éteignez pas votre serveur Unraid ni votre eGPU.
Après ces redémarrages d'Unraid et de votre eGPU, retournez dans la section "Tools -> System Devices" et vous verrez que la carte graphique présente dans votre eGPU apparaitra dans la liste avec les points verts.
Comme vous pouvez le voir, dans notre cas, le périphérique "42:00.0" correspond bien à la partie graphique (VGA compatible controller) de notre carte graphique NVIDIA et le périphérique "42:00.1" correspond bien à sa partie audio (Audio device).

Si vous cliquez à nouveau sur le bouton "View VFIO-PCI Log", vous verrez que les 2 périphériques ("0000:42:00.0" et "0000:42:00.1") ont bien été assignés au VFIO.
Donc, votre machine virtuelle gaming démarrera sans problème.

NAS 1/1/2026
NAS 1/4/2026
NAS 8/7/2026
NAS 15/4/2026
Contenu épinglé
Contact
® InformatiWeb-Pro.net - InformatiWeb.net 2008-2022 - © Lionel Eppe - Tous droits réservés.
Toute reproduction totale ou partielle de ce site est interdite et constituerait une contrefaçon sanctionnée par les articles L.335-2 et suivants du Code de la propriété intellectuelle.
Pas de commentaire