GPU Passthrough et Looking Glass: transformer un PC Linux en station de jeu hybride
This article was generated by AI based on the homelab-gaming project.
Mon besoin: un pc unique permettant de jouer sur la télé sans bloquer le mode bureau.
- Mode Gaming (Windows) : la VM Windows affiche directement sur la TV via HDMI, manettes Xbox pour du gaming familial
- Mode Bureau (Ubuntu) : accès à la même VM via Looking Glass depuis le PC, clavier/souris pour des jeux solo ou du travail
Le GPU passthrough combiné à Looking Glass permet de répondre à ce besoin: faire tourner une VM Windows avec accès direct au GPU, accessible soit sur une TV pour du gaming familial, soit depuis le bureau via Looking Glass, tout en conservant le PC Linux pleinement fonctionnel.
Les technos clés
GPU Passthrough
Le GPU passthrough, aussi appelé VFIO, est une technique de virtualisation permettant de donner à une machine virtuelle un accès direct et exclusif à une carte graphique physique. Contrairement à l’émulation graphique classique qui passe par l’hyperviseur et dégrade fortement les performances, le passthrough offre des performances quasi-natives.
Principe de fonctionnement : le GPU est isolé du système hôte au démarrage via les groupes IOMMU du processeur. La carte graphique est alors “détachée” du noyau Linux et assignée directement à la VM. Du point de vue de Windows, c’est comme si la carte était physiquement connectée à une machine dédiée.
Prérequis matériels :
- Processeur avec support IOMMU (Intel VT-d ou AMD-Vi)
- Carte mère compatible
- De préférence deux GPU (un pour l’hôte, un pour la VM) ou un iGPU + GPU dédié
Dans ce guide, le GPU AMD RX 7800 XT est entièrement dédié à la VM Windows, tandis que l’hôte Ubuntu utilise le GPU intégré du Ryzen 9 9900X.
Looking Glass
Looking Glass est un logiciel open source qui résout un problème majeur du GPU passthrough : comment accéder à l’affichage de la VM sans avoir un second moniteur dédié ?
Le problème : avec le passthrough classique, le GPU est physiquement connecté à un écran. Pour utiliser la VM, il faut soit switcher d’écran, soit avoir deux moniteurs séparés.
La solution Looking Glass : ce système capture l’affichage du GPU dans la VM et le transmet au système hôte via une zone de mémoire partagée (shared memory). Un client léger sur Linux affiche alors le rendu dans une fenêtre, avec une latence extrêmement faible (typiquement < 1ms).
Architecture :
- Un binaire “host” tourne dans la VM Windows et capture les frames du GPU
- Un binaire “client” tourne sur l’hôte Linux et affiche le flux
- Communication via
/dev/kvmfr0(mémoire partagée) - Support des périphériques USB partagés (clavier/souris)
L’avantage majeur : basculer instantanément entre Linux et la VM Windows sans changer d’écran ni de cable, tout en conservant des performances de jeu optimales.
Le setup
Matériel
- Processeur : AMD Ryzen 9 9900X (support IOMMU + iGPU intégré)
- Carte graphique : AMD Radeon RX 7800 XT (passée à la VM)
- Affichage : double sortie HDMI vers TV et moniteur de bureau
- Périphériques : manettes Xbox sans fil
Stack logicielle
- Système hôte : Ubuntu 25.10
- Hyperviseur : QEMU avec libvirt
- Système invité : Windows 10
- Accès distant : Looking Glass
Mise en œuvre
Le dépôt GitHub contient l’ensemble des scripts d’installation et de configuration pour automatiser le déploiement :
Côté Linux (hôte) :
- Isolation automatique du GPU via VFIO
- Configuration de libvirt et du device Looking Glass
- Import de la VM préconfigurée
- Installation du client Looking Glass
Côté Windows (VM) :
- Installation du binaire Looking Glass Host
- API de monitoring GPU (Python)
- Outils d’amélioration : AutoHotkey pour les raccourcis manettes, SoundSwitch pour la gestion audio, OpenRGB pour les LEDs
- Émulateur Ryujinx pour Nintendo Switch
Toutes les instructions détaillées, scripts et fichiers de configuration sont disponibles sur le dépôt GitHub du projet.
Résultat
Cette architecture offre une très bonne flexibilité : gaming sur TV, ou utilisation depuis le bureau via Looking Glass pour des jeux nécessitant clavier et souris, sans jamais perdre l’accès à l’environnement Linux natif.
Les performances sont au rendez-vous grâce au passthrough GPU qui élimine la couche d’émulation graphique. Looking Glass délivre une latence imperceptible pour un usage bureautique ou gaming.
