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 Prochaine révision Les deux révisions suivantes | ||
utilisateurs:captnfab:tutos:virtualisation-vga-passthrough [21/01/2018 16:31] captnfab |
utilisateurs:captnfab:tutos:virtualisation-vga-passthrough [21/01/2018 17:12] captnfab [Installation] |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
* Commentaires : //Pour jouer… // | * Commentaires : //Pour jouer… // | ||
+ | ===== Avertissement ===== | ||
+ | |||
+ | Tuto pour qemu 2.8 et ovmf 0~20170911.5dfba97c-1. | ||
+ | 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 ===== | ||
+ | |||
+ | ==== Identification de la CG ==== | ||
<code user>lspci</code> | <code user>lspci</code> | ||
Ligne 12: | Ligne 18: | ||
01:00.1 Audio device: NVIDIA Corporation GP106 High Definition Audio Controller (rev a1) | 01:00.1 Audio device: NVIDIA Corporation GP106 High Definition Audio Controller (rev a1) | ||
… | … | ||
+ | </code> | ||
+ | |||
+ | On retient **01:00.0** et **01:00.1**. | ||
+ | |||
+ | ==== Récupération des pilotes VFIO ==== | ||
+ | |||
+ | <code user>wget 'https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso'</code> | ||
+ | |||
+ | Ces pilotes seront nécessaires à l'installateur Windows pour trouver le disque dur et la carte réseau, je crois. | ||
+ | |||
+ | ==== Création des disques ==== | ||
+ | |||
+ | === Avant l'installation === | ||
+ | <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> | ||
+ | |||
+ | === Après l'installation et la configuration === | ||
+ | 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> | ||
+ | |||
+ | |||
+ | ==== (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. | ||
+ | |||
+ | Ajout de ''load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1'' dans le fichier default.pa | ||
+ | <code ini ~/.config/pulse/default.pa> | ||
+ | |||
+ | .nofail | ||
+ | |||
+ | |||
+ | .fail | ||
+ | |||
+ | load-module module-device-restore | ||
+ | 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> | </code> | ||
===== Installation ===== | ===== Installation ===== | ||
Ligne 17: | Ligne 128: | ||
==== 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 25: | Ligne 136: | ||
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 81: | Ligne 207: | ||
-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 \ | ||
Ligne 98: | Ligne 223: | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
+ | <code root>./start_kvm.sh</code> | ||
+ | |||
+ | |||
+ | ===== Sources ===== | ||
+ | * http://vfio.blogspot.fr/2015/05/vfio-gpu-how-to-series-part-1-hardware.html | ||
+ | * http://vfio.blogspot.fr/2015/05/vfio-gpu-how-to-series-part-2.html | ||
+ | * http://vfio.blogspot.fr/2015/05/vfio-gpu-how-to-series-part-3-host.html | ||
+ | * http://vfio.blogspot.fr/2015/05/vfio-gpu-how-to-series-part-4-our-first.html | ||
+ | * http://vfio.blogspot.fr/2015/05/vfio-gpu-how-to-series-part-5-vga-mode.html | ||
+ | * autres… |