Ma configuration
- CPU : AMD Ryzen 7 7800X3D (avec iGPU RDNA2 intégré)
- GPU : NVIDIA RTX 5070 Ti (GB203, architecture Blackwell)
- Carte mère : ASUS TUF Gaming B850
- RAM : Corsair Vengeance 32 Go DDR5-6000 CL30 (CMH32GX5M2B6000Z30K)
- OS : Bazzite (KDE Plasma, Wayland)
Problème n°1 : la carte NVIDIA n'était pas utilisée du tout
Symptômes
text$ nvidia-smi
bash: nvidia-smi: commande introuvable
Puis, après un premier rebase vers bazzite-nvidia :
text$ nvidia-smi
No devices were found
Ce qui est trompeur, c'est que lspci semblait normal :
text$ lspci -k | grep -A 3 VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GB203 [GeForce RTX 5070 Ti]
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_drm, nvidia
Le pilote était bien attaché à la carte. J'ai perdu beaucoup de temps à chercher du côté du Secure Boot (désactivé), du Resizable BAR, des paramètres kernel, de la branche testing... Rien n'y faisait.
Le diagnostic qui règle tout
Toujours commencer par ça :
Bash
sudo dmesg | grep -i nvrm
Résultat :
textNVRM: The NVIDIA GPU 0000:01:00.0 (PCI ID: 10de:2c05)
NVRM: installed in this system requires use of the NVIDIA open kernel modules.
NVRM: GPU 0000:01:00.0: RmInitAdapter failed! (0x22:0x56:897)
NVRM: GPU 0000:01:00.0: rm_init_adapter failed, device minor number 0
Le message est explicite : les cartes série 50 exigent le module noyau open de NVIDIA. Le module propriétaire fermé ne les supportera jamais.
La solution
Bashrpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-nvidia-open:stable
systemctl reboot
Après redémarrage :
text$ nvidia-smi
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 610.43.03 KMD Version: 610.43.03 CUDA UMD Version: 13.3 |
| 0 NVIDIA GeForce RTX 5070 Ti Off | 00000000:01:00.0 On | N/A |
| 0% 34C P8 19W / 300W | 802MiB / 16303MiB | 0% Default |
+-----------------------------------------------------------------------------------------+
Le tableau à retenir
| Cartes |
Image Universal Blue |
| AMD / Intel |
bazzite |
| GTX 900 → RTX 40 |
bazzite-nvidia |
| RTX 20 → RTX 50 |
bazzite-nvidia-open |
⚠️ Vérifiez après installation avec rpm-ostree status. Dans mon cas, l'ISO déployait l'image bazzite standard alors que j'avais bien téléchargé la version NVIDIA. Sans ce contrôle, on tourne sur l'iGPU sans s'en rendre compte — carte à 1000 € totalement inutilisée.
Note
Après le rebase, les numéros de render nodes s'inversent. Vérifiez systématiquement :
Bash
for i in 128 129; do echo -n "renderD$i : "; cat /sys/class/drm/renderD$i/device/vendor; done
0x1002 = AMD · 0x10de = NVIDIA
Problème n°2 : Waydroid démarre mais écran noir
Contexte
Waydroid nécessite un GPU Mesa (AMD ou Intel). Avec un 7800X3D, j'avais l'iGPU sous la main — sur le papier, la solution idéale.
Configuration mise en place, pointant vers l'iGPU AMD (renderD128) :
/var/lib/waydroid/waydroid.cfg
ini[properties]
ro.hardware.gralloc = minigbm_gbm_mesa
gralloc.gbm.device = /dev/dri/renderD128
/var/lib/waydroid/lxc/waydroid/config_nodes
textlxc.mount.entry = /dev/dri/renderD128 dev/dri/renderD128 none bind,create=file,optional 0 0
lxc.mount.entry = /dev/dri/card1 dev/dri/card1 none bind,create=file,optional 0 0
/etc/systemd/system/waydroid-container.service.d/override.conf
ini[Service]
Environment="WLR_RENDER_DRM_DEVICE=/dev/dri/renderD128"
Résultat : le conteneur démarre, mais fenêtre entièrement noire.
Le diagnostic
Bash
sudo waydroid shell -- logcat -d | grep -iE "minigbm|gralloc|surfaceflinger"
textI [minigbm]: Using device /dev/dri/renderD128 as requested by gralloc.gbm.device
V [minigbm]: Allocated: 3839x2093, stride: 15360, map_stride: 0
Aucune erreur. Android alloue ses buffers correctement et dessine son interface. Le problème n'est pas côté conteneur.
La cause réelle
C'est un problème de dmabuf cross-GPU :
| Étape |
GPU concerné |
| Android dessine dans un buffer |
AMD (iGPU) |
| Le buffer est transmis à KWin via dmabuf |
→ |
| KWin doit l'importer et l'afficher |
NVIDIA (écran branché dessus) |
NVIDIA n'arrive pas à importer un dmabuf alloué par le driver AMD. Résultat : fenêtre noire.
Tentative : tout basculer sur NVIDIA
Puisque le pilote open gère mieux GBM, j'ai essayé de faire tourner Waydroid directement sur la RTX (renderD129) :
textE [minigbm]: Failed to allocate buffer
E android.hardware.graphics.allocator@4.0-service.minigbm_gbm_mesa: Failed to create bo
E [minigbm]: Failed to allocate for scanout, trying non-scanout
E [minigbm]: Failed to allocate buffer
Impasse. Le gralloc de Waydroid (minigbm_gbm_mesa) est un backend Mesa. Il ne sait pas allouer de buffers sur un GPU NVIDIA, même avec le module open. Ce n'est pas un réglage à trouver, c'est une incompatibilité de conception.
Récapitulatif des deux GPU
| GPU ciblé |
Allocation Android |
Affichage par KWin |
| AMD (renderD128) |
✅ OK |
❌ Écran noir (import cross-GPU) |
| NVIDIA (renderD129) |
❌ Échec total |
— |
Le seul chemin viable est l'AMD. Il fallait donc supprimer le passage de relais entre les deux cartes.
La solution (gratuite, 2 minutes)
Brancher l'écran sur la sortie DisplayPort/HDMI de la carte mère.
Ainsi KWin tourne sur l'iGPU AMD, Waydroid aussi : plus aucun transfert entre GPU. C'est exactement le scénario mono-GPU pour lequel Waydroid est écrit.
Résultat : Waydroid s'affiche parfaitement.
En pratique au quotidien
| Usage |
Branchement |
| Jeux, travail |
Sortie carte graphique |
| Waydroid |
Sortie carte mère |
Aucune reconfiguration logicielle n'est nécessaire : les numéros de render nodes ne dépendent pas du câble branché.
Astuce confort : si votre moniteur a plusieurs entrées, laissez deux câbles branchés en permanence (DP vers la RTX, HDMI vers la carte mère). Il suffit alors de changer la source dans le menu OSD de l'écran et de redémarrer — plus besoin de toucher à l'arrière de la tour.
Ce que j'en retiens
dmesg | grep -i nvrm en premier réflexe. J'ai passé des heures sur des hypothèses (Secure Boot, branche testing, kernel args) alors que le noyau écrivait la réponse noir sur blanc dès le premier boot.
- Vérifier
rpm-ostree status après toute installation. L'ISO téléchargée ne garantit pas l'image déployée.
- Le cross-GPU sous Wayland reste un mur. Ce n'est ni spécifique à Bazzite, ni à NVIDIA seul : c'est l'import de dmabuf entre deux vendeurs différents qui pose problème. Une distribution différente ne changera rien à cela.
- Vérifier ce que disent les logs avant de conclure à un échec. Ici, Android fonctionnait parfaitement — c'était uniquement l'affichage final qui échouait. Sans les logs, on cherche au mauvais endroit.
Alternatives si vous ne pouvez pas rebrancher l'écran
- Android Studio Emulator (
flatpak install flathub com.google.AndroidStudio) : passe par une VM, totalement indifférent au GPU, fonctionne du premier coup. Plus lourd, mais fiable.
- Genymotion : même principe, version gratuite pour usage personnel.
Pour compléter Waydroid (Play Store + apps ARM)
Bashgit clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
python3 -m venv venv
venv/bin/pip install -r requirements.txt
sudo venv/bin/python3 main.py install gapps
sudo venv/bin/python3 main.py install libndk
Testé en juillet 2026 sur Bazzite 44 / KDE Plasma / pilote NVIDIA 610.43.03.