Comment enregistrer le système de jeu à partir d'un PC personnel au moyen de la virtualisation

Grâce à la concurrence et au développement du progrès scientifique et technique, les PC modernes vous permettent d'effectuer de nombreuses tâches simples et complexes en même temps, par exemple, lire et lire des vidéos à la télévision, rendre des graphiques et lire des actualités sur Internet, distribuer des torrents en parallèle, etc. etc. Beaucoup vont plus loin et utilisent plusieurs PC pour le travail et le divertissement. Cependant, avec l'aide des technologies de virtualisation, d'une part, vous pouvez étendre les capacités de votre PC et, d'autre part, économiser de l'argent, car en fait, vous pouvez exécuter plusieurs systèmes d'exploitation sur le même matériel en même temps.


Cet article sera hébergé les paramètres de l'hôte spécifiquement pour une utilisation dans la "maison", à savoir parler de GPU PASSTHROUGH .

Présentation


Tout d'abord, quelques mots sur la virtualisation en général. Selon Wikipedia :
La virtualisation consiste à fournir un ensemble de ressources informatiques ou leur combinaison logique, abstraites de l'implémentation matérielle, et tout en offrant une isolation logique les unes des autres des processus informatiques s'exécutant sur la même ressource physique.
Il est réalisé à la fois à l'aide d'applications (par exemple VirtualBox, VMware) et au niveau des systèmes qui prennent en charge la virtualisation matérielle (par exemple KVM, ESXi, Hyper-V). Dans ce dernier cas, la perte de performances par rapport aux systèmes natifs est minime .

Ci-après, l'article décrira les paramètres du système de virtualisation open source Proxmox car il est modérément convivial, il y a un accès facile à la console via un formulaire Web, et il est également basé sur un tas de Debian + kvm, qui ont beaucoup de guides et de descriptions sur le réseau , c'est-à-dire documentation comprenant et en russe.

Configuration matérielle requise


Nous aurons besoin de:

- processeur et carte mère avec prise en charge de VT-x, VT-d d' Intel ou AMD-Vi, IOMMU d'AMD. Ne soyez pas paresseux et spécifiez si votre copie prend en charge ces exigences.

Quant aux cartes mères. Je ne recommande absolument pas de conduire du fer avec un câblage médiocre sur la carte d'alimentation. Par Z270 et Z390 ignorer la zone orange ou laisser travailler en stock.

  • 2 cartes vidéo, un jeu (sur le réseau pour moins de problèmes lors du transfert vers une machine virtuelle, ils font l'éloge des rouges, mais personnellement, tout a fonctionné avec la carte vidéo des vertes), le second pour l'hôte. Dans mon cas, il est intégré au processeur.
  • 1-2 moniteurs et câbles, afin de
  • une paire d'ensembles clavier + souris pour faciliter le travail et la configuration des systèmes
  • un deuxième PC ou tablette connecté au réseau local pour effectuer les réglages via un formulaire Web.

Installation et réglages


J'ai utilisé la configuration de jeu suivante:

- Le PC de la configuration hôte a été construit loin de la meilleure carte mère, mais dans les forums anglophones, il est très souvent loué par cette société car son matériel est le plus souvent adapté à de telles choses:
Processeur - i7 8700k
Mère - ASRock Z390M Pro4
Carte vidéo - INNO3D GeForce GTX 1070 iChill X4
- deuxième PC (Mini-PC Morefine-M1s),
- 2 souris,
- 1 clavier sur l'hôte, sur d'autres appareils, j'ai utilisé un logiciel,
- 3 connexions au moniteur Dell U2713HM (VGA - pour la carte vidéo intégrée, HDMI - pour le GTX1070, sur le DVI il y a un mini-PC. La commutation entre les signaux vidéo a été effectuée via le menu du moniteur)

Étape 0 - Sur la carte mère, activez VT-d: activé, Intel Vitrualization Technology: activé, adaptateur Graphx principal: VGA, au-dessus du décodage 4G: activé. Si possible, assurez-vous de sélectionner celui sur lequel l'hôte fonctionnera, c'est-à-dire carte graphique plus faible et passez-y.

1ère étape - Installez Proxmox sur l'hôte. Pour ce faire:

1.1. Téléchargez l' image disque du site officiel

1.2. Nous écrivons l'image sur le lecteur flash à l'aide de programmes spéciaux

1.3. Nous démarrons à partir du lecteur flash USB et procédons à l'installation en indiquant le disque dur à installer, en entrant le mot de passe du futur utilisateur root et en définissant également explicitement les paramètres réseau.

2ème étape - Connectez-vous via un réseau via une interface Web à l'aide d'un deuxième PC ou
tablette (dans mon cas, c'était un mini-PC) à l'hôte et configurer Proxmox pour ce guide via une console texte.

image

Il y a une petite nuance qui peut coûter un logiciel, mais j'ai décidé que changer la carte mère précédente serait plus facile, car La carte de Gigabyte ne remplissait pas cette condition:
1) Exécutez le "dmesg | grep ecap », commande.

2) Sur les lignes IOMMU, la valeur hexadécimale après "ecap" indique si le remappage d'interruption est pris en charge. Si le dernier caractère de cette valeur est 8, 9, a, b, c, d, e ou f, le remappage d'interruption est pris en charge. Par exemple, "ecap 1000" indique qu'il n'y a pas de prise en charge du remappage d'interruption. "Ecap 10207f" indique la prise en charge du remappage d'interruption, car le dernier caractère est un "f".

Le remappage d'interruption ne sera activé que si chaque IOMMU le prend en charge.
Si la condition est remplie, continuez.

Les paramètres sont donc:

Nous ouvrons le fichier avec une commande à partir de la console (vous n'avez pas besoin d'entrer le symbole double réseau, donc je séparerai dans le texte de la commande de ce qui doit être entré dans le fichier)

## nano /etc/default/grub 

faire le remplacement

 GRUB_CMDLINE_LINUX_DEFAULT="quiet" 

pour les processeurs Intel

 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" 

pour les processeurs AMD

 GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on" 

nous donnons ensuite la commande

 ## update-grub 

puis on redémarre l'hôte via l'interface web

Fichier grub PC dans l'article
 # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Proxmox Virtual Environment" GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" GRUB_CMDLINE_LINUX="" # Disable os-prober, it might add menu entries for each guest GRUB_DISABLE_OS_PROBER=true # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Disable generation of recovery mode menu entries GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" 


Ajoutez les pilotes nécessaires au fichier de configuration

 ## nano /etc/modules 

 # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. vfio vfio_iommu_type1 vfio_pci vfio_virqfd 

On écrit dans la console

 ## lspci 

Une liste des appareils disponibles pour le transfert sera affichée à l'écran, nous trouverons l'unité avec la carte vidéo qui nous intéresse, dans mon cas ce sont 2 appareils dans le groupe de cartes vidéo et du son aux adresses 01: 00.0 et 01: 00.1, donc j'enregistre immédiatement le groupe.

 ## nano /etc/pve/qemu-server/vmid.conf 

 hostpci0: 01:00 

Nous écrivons une commande dans la console afin de déterminer le modèle et son id

## lspci -n -s 01:00
01: 00.0 0300: 10de: 1b81 (rev a2)
01: 00.1 0403: 10de: 10f0 (rev a1)

Modifiez maintenant le fichier de notre carte vidéo (dans votre cas, l'identifiant sera différent)

 ## nano /etc/modprobe.d/vfio.conf 

 options vfio-pci ids=10de:1b81,10de:10f0 

On met le drap noir du chauffeur

 ## nano /etc/modprobe.d/blacklist.conf 

 blacklist radeon blacklist nouveau blacklist nvidia 

Maintenant, nous créons via l'interface Web et modifions le fichier de paramètres de la machine virtuelle via la console. Ici, la ligne "args:" résout, car sans lui, le pilote de la carte vidéo détectera la virtualisation, mais en remplaçant le nom de l'équipement, plus précisément hv_vendor_id = willitwork, nous supprimons le problème avec l' erreur 43 que le pilote vidéo du périphérique peut générer. Il y a un numéro de machine virtuelle dans proxmox utilisé comme nom.

 ## nano /etc/pve/qemu-server/<vmid>.conf 

 args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=willitwork,kvm=off' ..... bios: ovmf ..... hostpci0: 01:00.0,pcie=1 ..... machine: q35 

Fichier de paramètres de machine virtuelle PC dans l'article
 args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=willitwork,kvm=off' bios: ovmf boot: dcn bootdisk: sata0 cores: 8 cpu: host hostpci0: 01:00.0,pcie=1 ide2: local:iso/ru-en_windows_10_1803_x86-x64.iso,media$ machine: q35 memory: 16384 net0: e1000=EA:20:FA:6A:D6:A0,bridge=vmbr0 numa: 0 ostype: win10 sata0: local-lvm:vm-100-disk-0,size=120G scsihw: virtio-scsi-pci smbios1: uuid=751edeca-d249-4c0d-9ded-b59d929df0f1 sockets: 1 usb0: host=1-8.4 usb1: host=1-8.3 vmgenid: b75aeb27-3102-458d-8e23-18cd27796dc1 


Redémarrez maintenant l'hôte et démarrez la machine virtuelle.

3e étape - Via la console vidéo à distance, installez Windows et les pilotes. Dans mon cas, Windows a d'abord reconnu le pilote vidéo proxmox pour travailler via la console vidéo, puis a trouvé le pilote pour le GTX1070, et après la mise à jour via Internet (recherche forcée de pilotes sur le réseau), a téléchargé et installé le pilote dont j'avais besoin pour la carte vidéo du jeu.

4ème étape - Redémarrez la machine virtuelle, basculez l'affichage du flux vidéo sur le moniteur vers le connecteur de la carte vidéo et ... dans mon cas, tout a fonctionné tout de suite, aucune erreur 43 ... De plus, le bureau est défini comme n ° 2.

J'ai essayé de lancer la vidéo Blue-ray - pas de problème, il n'y a pas eu de retards et de frises avec la séquence vidéo, j'ai lancé Warhammer en ligne - elle a démarré et c'était confortable de jouer en PvP, j'ai lancé GTA5, l'histoire est apparue, j'ai tourné assez confortablement. Visuellement, il n'y a aucune perte de performances.

Si nous devons transférer l'intégralité du disque dur, dans le fichier de paramètres de la machine virtuelle, nous devons ajouter la ligne:
ide0: volume = / dev / sda

ou
sata0: volume = / dev / sda

Plus précisément, quels sda / sdb / sdc /, etc. peut être spécifié dans l'interface Web.

image

PS

Pour un baril de miel, il y a une mouche dans la pommade. Le son intégré ne peut pas être lancé séparément, car dans son groupe se trouvent d'autres périphériques qui, après avoir transmis la carte son à la machine virtuelle, disparaissent pour l'hôte jusqu'à la prochaine surcharge de l'hôte. Dans mon cas, c'est

00: 1f.0 ISA bridge: Intel Corporation Device a305 (rev 10)
00: 1f.3 Périphérique audio: Intel Corporation Device a348 (rev 10)
00: 1f.4 SMBus: Intel Corporation Device a323 (rev 10)
00: Contrôleur de bus série 1f.5 [0c80]: Intel Corporation Device a324 (rev 10)
00: Contrôleur Ethernet 1f.6: Intel Corporation Device 15bc (rev 10)

C'est-à-dire son ou via un câble vidéo à un moniteur ou une carte son externe. Les ports USB sont acheminés sans problème. Malheureusement, il n'est actuellement pas résolu. Il y a une option pour se connecter à distance d'un autre PC au jeu, via RDP ou SPICE . Dans ce cas, tout ira bien

Le transfert de la carte vidéo ne fonctionne pas toujours parfaitement comme dans mon cas, soit l'erreur 43, soit quelque chose d'autre gêne. D'autres paramètres pouvant vous aider sont décrits ici . Idéalement, vous devez rechercher sur le réseau les configurations réussies et vous concentrer sur elles, car pour moi, cela est apparu, en plus il y a aussi une liste de matériel qui me permet de réaliser la même chose que moi, mais elle n'est pas complète.

MISE À JOUR1:
Quelques notes sur la périphérie:
1. Comment transférer le clavier du port PS / 2 vers la VM:
entrez d'abord la commande dans la console
## dmesg | entrée grep
Nous recherchons un texte dans le texte
...
entrée: AT Translated Set 2 keyboard as / devices / platform / i8042 / serio0 / input / input 2
...
Rappelez-vous le numéro 2 à la fin, il peut être différent. Ensuite, dans le fichier de paramètres VM, ajoutez à la ligne:
args: -object 'input-linux, id = kbd, evdev = / dev / input / event 2 , grab_all = on, repeat = on'
insertion de 2 à la fin de evdev = / dev / input / event 2

Pour une souris - de même.

2. Par USB:
En ce qui concerne les périphériques USB, tout y est plus simple, les périphériques défilent directement à partir du formulaire Web par ID ou vous pouvez entièrement porter le port. Cependant, il y a une nuance - si pour une raison quelconque, vous ne pouvez pas, comme moi, jeter un périphérique audio dans la machine virtuelle, car il est contenu dans un groupe avec des contrôleurs clés sans lesquels l'hôte ne peut pas fonctionner pleinement, puis le transfert du port / périphérique via USB résout ce problème, mais le son peut commencer à tomber après un certain temps, sifflement / buzz et autres ... etc., en même temps sur le natif tout sera parfait pour le système. Dans ce cas, il est nécessaire de transmettre non pas le port / périphérique, mais le contrôleur USB lui-même en tant que périphérique PCIe selon la méthode spécifiée dans l'article. Et tout s'améliorera considérablement. Mais en même temps, après avoir démarré la machine virtuelle avec de tels paramètres, il ne sera plus possible de transférer d'autres périphériques de ce contrôleur via l'hôte.

3. Les disques durs peuvent être transférés comme par le biais d'un transfert de contrôleur en tant que périphérique PCIe selon la méthode spécifiée dans l'article (je ne recommande pas de transférer le contrôleur intégré à la carte mère, uniquement connecté à PCIe), ou directement:
aller à
## cd / dev / disk / by-id
par dir nous regardons la liste ...
nous copions les lignes du formulaire ata-WDC_WD40EFRX-68WT0N6_WD-WCC4E1AC9SX9, dans lesquelles l'interface de connexion, la marque et le numéro de série du disque dur sont enregistrés. Ouvrez ensuite le fichier de configuration VM et écrivez:
sata1: volume = / dev / disk / by-id / ata-WDC_WD40EFRX-68WT0N6_WD-WCC4E1AC9SX9
et tout fonctionne, tout en gardant à l'esprit que sata0-sata5, c'est-à-dire pour une VM, le nombre de disques ainsi connectés, y compris virtuels, ne peut excéder 6pcs.

Source: https://habr.com/ru/post/fr437598/


All Articles