Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:captnfab:tutos:virtualisation-vga-passthrough [21/01/2018 16:48] captnfab [Utilisation] |
utilisateurs:captnfab:tutos:virtualisation-vga-passthrough [21/01/2018 17:15] (Version actuelle) captnfab [Pré-Installation] |
||
---|---|---|---|
Ligne 8: | Ligne 8: | ||
Tuto pour qemu 2.8 et ovmf 0~20170911.5dfba97c-1. | Tuto pour qemu 2.8 et ovmf 0~20170911.5dfba97c-1. | ||
- | Chez moi, mettre à jour ces paquets casse la virtualisation. Mais peut-être que sur une nouvelle installation, il n'y a pas de problème. | + | Chez moi, mettre à jour ces paquets casse la virtualisation. Mais peut-être que si les paquets sont à jour avant installation de windows 7 (ou ultérieur), il n'y a pas de problème. |
===== Pré-Installation ===== | ===== Pré-Installation ===== | ||
Ligne 20: | Ligne 20: | ||
</code> | </code> | ||
+ | On retient **01:00.0** et **01:00.1**. | ||
==== Récupération des pilotes VFIO ==== | ==== Récupération des pilotes VFIO ==== | ||
Ligne 29: | Ligne 30: | ||
==== Création des disques ==== | ==== Création des disques ==== | ||
- | ==== (Facultatif) Configuration de pulseaudio ==== | + | === Avant l'installation === |
- | Cette config permet au pulseaudio de l'utilisateur d'accepter les connections sur l'interface loopback. On demandera à KVM (lancé en root) de s'y connecter, ce qui évitera les ennuis de sorties audio simultanées. | + | <code user> |
+ | qemu-img create -f qcow2 /srv/vms/win7-systeme.img 60G | ||
+ | qemu-img create -f qcow2 /srv/vms/win7-jeux.img 100G | ||
+ | </code> | ||
- | Ajout de ''load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1'' dans le fichier default.pa | + | === Après l'installation et la configuration === |
- | <code ini ~/.config/pulse/default.pa> | + | Pour pas tout se retaper en cas de pépin. |
+ | <code user> | ||
+ | mv /srv/vms/win7-systeme.img /srv/vms/win7-systeme_orig.img | ||
+ | qemu-img create -f qcow2 -b /srv/vms/win7-systeme_orig.img /srv/vms/win7-systeme.img | ||
+ | </code> | ||
- | .nofail | ||
+ | ==== (Facultatif) Configuration de pulseaudio ==== | ||
+ | Cette config permet au pulseaudio de l'utilisateur d'accepter les connections sur l'interface loopback. On demandera à KVM (lancé en root) de s'y connecter, ce qui évitera les ennuis de sorties audio simultanées. | ||
- | .fail | + | Ajout de ''load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1'' dans le fichier ''~/.config/pulse/default.pa''. |
- | load-module module-device-restore | + | (Si ce fichier n'existe pas: ''cp /etc/pulse/default.pa ~/.config/pulse/''.) |
- | load-module module-stream-restore | + | |
- | load-module module-card-restore | + | |
- | + | ||
- | load-module module-augment-properties | + | |
- | + | ||
- | load-module module-switch-on-port-available | + | |
- | load-module module-switch-on-connect | + | |
- | + | ||
- | + | ||
- | .ifexists module-udev-detect.so | + | |
- | load-module module-udev-detect | + | |
- | .else | + | |
- | load-module module-detect | + | |
- | .endif | + | |
- | + | ||
- | .ifexists module-jackdbus-detect.so | + | |
- | .nofail | + | |
- | load-module module-jackdbus-detect channels=2 | + | |
- | .fail | + | |
- | .endif | + | |
- | + | ||
- | .ifexists module-bluetooth-policy.so | + | |
- | load-module module-bluetooth-policy | + | |
- | .endif | + | |
- | + | ||
- | .ifexists module-bluetooth-discover.so | + | |
- | load-module module-bluetooth-discover | + | |
- | .endif | + | |
- | + | ||
- | .ifexists module-esound-protocol-unix.so | + | |
- | load-module module-esound-protocol-unix | + | |
- | .endif | + | |
- | load-module module-native-protocol-unix | + | |
- | + | ||
- | load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 | + | |
- | + | ||
- | + | ||
- | + | ||
- | .ifexists module-gconf.so | + | |
- | .nofail | + | |
- | load-module module-gconf | + | |
- | .fail | + | |
- | .endif | + | |
- | + | ||
- | load-module module-default-device-restore | + | |
- | + | ||
- | load-module module-rescue-streams | + | |
- | + | ||
- | load-module module-always-sink | + | |
- | + | ||
- | load-module module-intended-roles | + | |
- | + | ||
- | load-module module-suspend-on-idle | + | |
- | + | ||
- | .ifexists module-console-kit.so | + | |
- | load-module module-console-kit | + | |
- | .endif | + | |
- | .ifexists module-systemd-login.so | + | |
- | load-module module-systemd-login | + | |
- | .endif | + | |
- | + | ||
- | load-module module-position-event-sounds | + | |
- | + | ||
- | load-module module-role-cork | + | |
- | + | ||
- | load-module module-filter-heuristics | + | |
- | load-module module-filter-apply | + | |
- | </code> | + | |
===== Installation ===== | ===== Installation ===== | ||
==== Kernel Line ==== | ==== Kernel Line ==== | ||
- | <code>GRUB_CMDLINE_LINUX_DEFAULT="quiet spalsh intel_iommu=on modprobe.blacklist=nouveau hugepagesz=1G hugepages=8"</code> | + | <code bash /etc/default/grub>GRUB_CMDLINE_LINUX_DEFAULT="quiet spalsh intel_iommu=on modprobe.blacklist=nouveau hugepagesz=1G hugepages=8"</code> |
* ''intel_iommu=on'' | * ''intel_iommu=on'' | ||
J'sais plus. | J'sais plus. | ||
Ligne 121: | Ligne 62: | ||
Pour que la mémoire de la VM soit gérée via le mécanisme de hugepages, ici, 8×1Go. | Pour que la mémoire de la VM soit gérée via le mécanisme de hugepages, ici, 8×1Go. | ||
+ | ==== InitRd ==== | ||
+ | |||
+ | <code user>lspci -nns 01:00.0</code> | ||
+ | <code>01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] [10de:1c03] (rev a1)</code> | ||
+ | <code user>lspci -nns 01:00.1</code> | ||
+ | <code>01:00.1 Audio device [0403]: NVIDIA Corporation GP106 High Definition Audio Controller [10de:10f1] (rev a1)</code> | ||
+ | |||
+ | <code bash /etc/initramfs-tools/modules> | ||
+ | vfio | ||
+ | vfio_iommu_type1 | ||
+ | vfio_pci | ||
+ | vfio_virqfd | ||
+ | vhost-net | ||
+ | pci_stub ids=10de:1c03,10de:10f1 | ||
+ | </code> | ||
==== Script de lancement ==== | ==== Script de lancement ==== | ||
Ligne 177: | Ligne 133: | ||
-parallel none \ | -parallel none \ | ||
$OPT_OUTPUT \ | $OPT_OUTPUT \ | ||
- | $OPT_INPUT \ | ||
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd \ | -drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd \ | ||
-drive if=pflash,format=raw,file=/tmp/my_vars.fd \ | -drive if=pflash,format=raw,file=/tmp/my_vars.fd \ |