Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
857 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16
Auteur Sujet :

[Topic Unique] VGA/PCI Passthrough et VFIO sous GNU/Linux

n°1358692
Arcord
Posté le 21-05-2014 à 21:07:50  profilanswer
 

Reprise du message précédent :
Aucun problème avec les drivers virtio ni sur ma VM Windows 7 ni sur ma VM Windows 8.1.
Et comme j'utilise ma VM Windows 7 en tant que PC "Home-Cine" la lecture de video ou de musique à partir du réseau c'est ce que cette VM fait le plus.
 
Je suppose que ça n'a pas d'influence avec ton problème mais pour info j'utilise les drivers virtio aussi pour le sata et la mémoire.

mood
Publicité
Posté le 21-05-2014 à 21:07:50  profilanswer
 

n°1358693
toma222
Posté le 21-05-2014 à 21:44:59  profilanswer
 

OK, merci du retour.
Il faut que je check ma conf alors.

n°1358700
bobdanov
battlenet : penrose #2663
Posté le 22-05-2014 à 07:16:44  profilanswer
 

toma222 a écrit :

[...]est-ce que certains qui utilisent une VM Windows avec les drivers virtio (même les derniers) pour la carte réseau on observé des problèmes de déconnexions toutes les x minutes ? [...]


J'ai une VM en Win8.1 sur laquelle je joue en réseau et je n'ai pas de déconnexions en utilisant les drivers réseau virtio.


Message édité par bobdanov le 22-05-2014 à 07:24:07
n°1358776
NHiX
Cop1
Posté le 24-05-2014 à 16:44:00  profilanswer
 

Je suis confronté à un petit soucis pour ma VM Windows 8.1, je vous explique mon soucis
Si je ne "passe" pas à ma VM le chipset sonore, je n'ai pas de son dans celle-ci :/
Si je passe mon chipset son à la VM, je n'ai plus de son sur l'hôte et mes vidéos sur Youtube par exemple se trouve être lues en accéléré !
Je me sers exclusivement de Virt-manager pour le moment, le son sous celui-ci est défini sur ich6

 

Dans ma VM Windows 8.1, je vois pourtant bien dans Contrôleurs audio, vidéo et jeu
Périphérique High Definition Audio, mais pas de son :/

Message cité 1 fois
Message édité par NHiX le 24-05-2014 à 16:47:29
n°1358779
adejour
Posté le 24-05-2014 à 19:47:23  profilanswer
 

Cherche un petit peu, mais je crois que tu peux émuler très facilement une carte son, c'est la meilleure des solution à mon avis car je ne vois pas l'intéret de "passer" ton chipset sonore en tant que tel

n°1358782
Arcord
Posté le 24-05-2014 à 20:37:46  profilanswer
 

NHiX a écrit :


Je me sers exclusivement de Virt-manager pour le moment, le son sous celui-ci est défini sur ich6


Tu as essayé de ne mettre aucun périphérique son dans virt-manager?
Je n'utilise que virt-manager aussi et je n'ai dans celui-ci aucun périphérique son; juste mes cartes graphique que je passe (avec la partie son bien sûr)

n°1358787
NHiX
Cop1
Posté le 25-05-2014 à 10:18:20  profilanswer
 

@adejour Dans virt-manager, j'ai bien trouvé où déclarer une carte son, le soucis, c'est qu'avec ma VM celle-ci n'est pas reconnue :/
Avec le ac97, Windows me détecte bien une carte son, mon seul soucis, c'est qu'il n'arrive pas à trouver de drivers :(

 

@Arcord J'ai essayé avec aucun périphérique son passé à la VM via Virt-manager, le résultat est que ma VM n'a pas de son :/


Message édité par NHiX le 25-05-2014 à 10:27:03
n°1359005
NHiX
Cop1
Posté le 30-05-2014 à 16:00:10  profilanswer
 

C'est un peu du bricolage, mais je pense avoir trouvé une solution...
Mon clavier pour ma VM Windows 8.1 est un Logitech G510, celui-ci intègre une carte son, j'ai donc branché mon casque Qpad dessus (jack)
et je me sers de la carte son de ma carte mère pour ma OS hôte.
 
C'est mieux que rien, même si je préfère avoir les sons des 2 systèmes sur mon casque, mais en attendant de trouver une solution satisfaisante celle-ci fera l'affaire :)

n°1359011
Puissance ​Athlon XP
Posté le 30-05-2014 à 18:06:22  profilanswer
 

:hello:

 

Ce topic m'ayant bien aidé dans ma config, à mon tour de partager :)

 

Le résultat :
- Hôte ubuntu 14.04, avec le kernel 3.15.0-rc7 non patché, qemu-kvm installé depuis apt
- VM Windows 7 avec une Radeon 7850 en primary passthrough
- VM FreeNAS avec le controller SAS en passthrough
- Pas de config bizarre dans Grub, juste l'activation de l'iommu
- Le tout géré depuis virt-manager

 

La config hardware :
- Supermicro X10SL7-F (+chipset graphique Aspeed AST2400 + LSI SAS 2308)
- Xeon 1230v3
- Radeon 7850 Sapphire

 
  • La première étape est d'installer le kernel 3.15.0-rc2 prépackagé pour trusty, afin de pouvoir en récuperer la config comme point de départ.


wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.15-rc2-trusty/linux-headers-3.15.0-031500rc2_3.15.0-031500rc2.201404201435_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.15-rc2-trusty/linux-headers-3.15.0-031500rc2-generic_3.15.0-031500rc2.201404201435_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.15-rc2-trusty/linux-image-3.15.0-031500rc2-generic_3.15.0-031500rc2.201404201435_amd64.deb
sudo dpkg -i linux-image-3.15.0-031500rc2-generic_3.15.0-031500rc2.201404201435_amd64.deb
sudo dpkg -i linux-headers-3.15.0-031500rc2_3.15.0-031500rc2.201404201435_all.deb
sudo dpkg -i linux-headers-3.15.0-031500rc2-generic_3.15.0-031500rc2.201404201435_amd64.deb
sudo reboot

 
  • On télécharge ensuite le dernier kernel

wget https://www.kernel.org/pub/linux/kernel/v3.x/testing/linux-3.15-rc7.tar.gz dest=/home/adrien/linux-3.15-rc7.tar.gz
tar -xzvf linux-3.15-rc7.tar.gz

 
  • On copie la config du kernel rc2 et on la met à jour avec les nouveaux flags du rc7 (en sélectionnant les valeurs par défaut)

cp /boot/config-3.15.0-031500rc2-generic linux-3.15-rc7/.config
cd linux-3.15-rc7
yes '' | make oldconfig
cd ..

 
  • On édite ensuite le fichier .config avec les valeurs suivantes

CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_KVM_INTEL=y
# CONFIG_KVM_AMD is not set
CONFIG_PCI_STUB=y
CONFIG_VFIO_IOMMU_TYPE1=y
CONFIG_VFIO=y
CONFIG_VFIO_PCI=y
CONFIG_VFIO_PCI_VGA=y
CONFIG_VHOST_NET=m
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_PREEMPT=y
CONFIG_HZ_1000=y
# CONFIG_HZ_250 is not set
CONFIG_HZ=1000

 
  • Pour la compilation, il y a un bug dans kernel-package qui oblige à la lancer en root (voir ici). Un deb fixé est disponible, on va donc l'installer :

wget https://launchpad.net/ubuntu/+source/kernel-package/13.003/+build/5980712/+files/kernel-package_13.003_all.deb
sudo dpkg -i kernel-package_13.003_all.deb

 
  • C'est parti pour la compilation du kernel

cd linux-3.15.0-rc7
yes '' | make oldconfig
CONCURRENCY_LEVEL=9 fakeroot make-kpkg --initrd --append-to-version=-passthrough.1 kernel-image kernel-headers
cd ..
dpkg -i linux-image-3.15.0-rc7-passthrough.1_3.15.0-rc7-passthrough.1-10.00.Custom_amd64.deb
dpkg -i linux-headers-3.15.0-rc7-passthrough.1_3.15.0-rc7-passthrough.1-10.00.Custom_amd64.deb

 
  • À ce moment là, au boot, le nouveau kernel est en deuxième position (car le kernel rc2 a une version 031500rc2 qui passe devant dans l'ordre alphabetique). Il faut donc modifier la config de grub. On en profite pour activer l'iommu. Dans /etc/default/grub :


sudo nano /etc/default/grub
# GRUB_CMDLINE_LINUX="iommu=1 intel_iommu=on nomodeset"
# GRUB_DEFAULT="1>2"
sudo update-grub

 
  • Avant de redémarrer, on installe lsgroup, vfio-bind, et le service qui va bien pour le lancer au démarrage


- /usr/bin/lsgroup


#!/bin/sh
BASE="/sys/kernel/iommu_groups"
for i in $(find $BASE -maxdepth 1 -mindepth 1 -type d); do
GROUP=$(basename $i)
echo "### Group $GROUP ###"
for j in $(find $i/devices -type l); do
 DEV=$(basename $j)
 echo -n "    "
 lspci -s $DEV
done
done


-  /usr/bin/vfio-bind


#!/bin/bash

 

modprobe vfio-pci

 

for dev in "$@"; do
  vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
  device=$(cat /sys/bus/pci/devices/$dev/device)
  if [ -e /sys/bus/pci/devices/$dev/driver ]; then
    echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
  fi
  echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
done


- /etc/init/vfio-bind.conf


description "bind your devices to vfio on startup"
version "1.0"

 

start on starting libvirt-bin
stop on stopped libvirt-bin

 

script

 

 # source the config file
  . /etc/vfio-bind.cfg

 

 /usr/bin/vfio-bind $DEVICES

 

end script

 

- /etc/vfio-bind.cfg

 


DEVICES="0000:07:00.0 0000:07:00.1 0000:02:00.0"

 

- Ne pas oublier de setter les permissions


sudo chmod 0755 /usr/bin/lsgroup
sudo chmod 0755 /usr/bin/vfio-bind
sudo chmod 0644 /etc/init/vfio-bind.conf
sudo chmod 0644 /etc/vfio-bind.conf
sudo chown root:root /usr/bin/lsgroup
sudo chown root:root  /usr/bin/vfio-bind
sudo chown root:root  /etc/init/vfio-bind.conf
sudo chown root:root  /etc/vfio-bind.conf

 
  • On blackliste le module radeon (pas testé sans, ça ne mange pas de pain), et on installe virt-manager et kvm

echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
sudo apt-get install virt-manager qemu-kvm

 
  • Afin de pouvoir utiliser libvirt avec des périphériques passés en vfio, la premiere étape est de désactiver apparmor

ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/
ln -s /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper /etc/apparmor.d/disable/
apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd
apparmor_parser -R /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper

 
  • Il faut ensuite donner plus de permissions à libvirt (lancement en root + accès à /dev/vfio/votre_groupe). Dans /etc/libvirt/qemu.conf :


user = root
group = root
clear_emulator_capabilities = 0

 

# Suppression des commentaires de cgroup_acl + ajout des devices correspondant à vos groupes vfio (faire lsgroup pour avoir le chiffre)
"/dev/vfio/13", "/dev/vfio/1"

 
  • À ce moment là, après un reboot, vous devriez pouvoir importer (par virsh define mon_fichier.xml) la VM dotée du XML suivant. (Je n'ai pas parlé de la config réseau et des histoires de drivers vfio)

<domain type='kvm' id='8' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>HTPC</name>
  <uuid>dda812ca-3de2-adac-a6c3-0914760ca54a</uuid>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.0'>hvm</type>
    <loader>/usr/share/qemu/bios.bin</loader>
    <boot dev='cdrom'/>
    <boot dev='hd'/>
    <bootmenu enable='yes'/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Haswell</model>
    <vendor>Intel</vendor>
    <feature policy='require' name='tm2'/>
    <feature policy='require' name='est'/>
    <feature policy='require' name='vmx'/>
    <feature policy='require' name='osxsave'/>
    <feature policy='require' name='smx'/>
    <feature policy='require' name='ss'/>
    <feature policy='require' name='ds'/>
    <feature policy='require' name='vme'/>
    <feature policy='require' name='dtes64'/>
    <feature policy='require' name='abm'/>
    <feature policy='require' name='ht'/>
    <feature policy='require' name='acpi'/>
    <feature policy='require' name='pbe'/>
    <feature policy='require' name='tm'/>
    <feature policy='require' name='pdcm'/>
    <feature policy='require' name='pdpe1gb'/>
    <feature policy='require' name='ds_cpl'/>
    <feature policy='require' name='rdrand'/>
    <feature policy='require' name='f16c'/>
    <feature policy='require' name='xtpr'/>
    <feature policy='require' name='monitor'/>
  </cpu>
  <clock offset='localtime'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='vmdk'/>
      <source file='/var/lib/libvirt/images/HTPC.vmdk'/>
      <target dev='vdb' bus='virtio'/>
      <alias name='virtio-disk1'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/>
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='sata0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:55:1d:18'/>
      <source bridge='br1'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </interface>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='none'/>
  <qemu:commandline>
    <qemu:arg value='-display'/>
    <qemu:arg value='none'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=07:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=07:00.1,bus=root.1,addr=00.1'/>
  </qemu:commandline>
</domain>

 


J'espère que ça pourra aider certains d'entre vous.
Avec cette méthode j'ai ma VM Windows qui tourne avec un passthrough de la CG + mon clavier passé en USB. Je n'arrive pas à passer en USB ma carte son, mais ça ira pour l'instant
À noter qu'il n'est pas possible de passer deux devices appartenant au même groupe à deux VMs différentes, ce qui m'a empêché de passer ma carte USB (elle est dans le même groupe que mon controller SAS, dont j'ai besoin pour ma VM Nas)
Et donc également une VM FreeNAS avec le controller SAS en passthrough, fonctionne également sans problème

 

Voilà, n'hésitez pas si vous avez des questions :)


Message édité par Puissance Athlon XP le 30-05-2014 à 18:08:37
n°1359014
toma222
Posté le 30-05-2014 à 18:28:41  profilanswer
 

Chouette retour !
J'allais te demander si tu n'avais pas de soucis avec ton chipset graphique intégré pour l'hôte vu que tu n'as pas patché ton kernel (notamment avec le patch i915), mais je vois que tu n'utilises pas une carte Intel avec ta carte mère, donc pas de problèmes. A priori le kernel 3.15 doit embarquer des améliorations pour l'ACS, donc effectivement tu n'as besoin d'aucun patch dans ton cas.
Juste une remarque par rapport à ta définition libvirt, je me suis rendu compte que si je ne spécifiais pas de topologie, dans mon cas avec 4 vCPU, Windows voyait deux sockets de deux cores (je ne voyais que deux unités dans le gestionnaire des tâches pas exemple).
J'ai donc changé en :

Code :
  1. <cpu mode='host-model'>
  2.   <model fallback='allow'/>
  3.   <topology sockets='1' cores='4' threads='1'/>
  4. </cpu>


J'ai maintenant 4 unités dans le gestionnaire des tâches et mes performances CPU sont bien meilleures (flagrant avec le streaming Steam).

mood
Publicité
Posté le 30-05-2014 à 18:28:41  profilanswer
 

n°1359016
Puissance ​Athlon XP
Posté le 30-05-2014 à 18:53:49  profilanswer
 

toma222 a écrit :

Chouette retour !
J'allais te demander si tu n'avais pas de soucis avec ton chipset graphique intégré pour l'hôte vu que tu n'as pas patché ton kernel (notamment avec le patch i915), mais je vois que tu n'utilises pas une carte Intel avec ta carte mère, donc pas de problèmes. A priori le kernel 3.15 doit embarquer des améliorations pour l'ACS, donc effectivement tu n'as besoin d'aucun patch dans ton cas.
Juste une remarque par rapport à ta définition libvirt, je me suis rendu compte que si je ne spécifiais pas de topologie, dans mon cas avec 4 vCPU, Windows voyait deux sockets de deux cores (je ne voyais que deux unités dans le gestionnaire des tâches pas exemple).
J'ai donc changé en :

Code :
  1. <cpu mode='host-model'>
  2.   <model fallback='allow'/>
  3.   <topology sockets='1' cores='4' threads='1'/>
  4. </cpu>


J'ai maintenant 4 unités dans le gestionnaire des tâches et mes performances CPU sont bien meilleures (flagrant avec le streaming Steam).


 
Oui c'est bien pour ça que je suis parti sur le 3.15, qui même en rc m'a l'air suffisamment stable. Moins il y a de bricolage mieux c'est  
Avec deux vCPU j'ai bien les deux cores dans le gestionnaire de tâches, mais effectivement, avec 4 c'est comme tu dis :jap: Merci pour le tip, je n'aurai pas remarqué :D

n°1359037
[Albator]
MDK un jour, MDK toujours !
Posté le 31-05-2014 à 14:36:01  profilanswer
 

Salut, j'ai un souci avec libvirt.
Je modifie ma VM existante (virsh edit XXX) pour ajouter le bloc "qemu:commandline".
J'enregistre, mais quand j'édite la VM à nouveau, tout ce bloc a été supprimé.
Une idée du pourquoi ?

n°1359044
toma222
Posté le 31-05-2014 à 16:05:36  profilanswer
 

Salut,
Il faut que tu modifies la première ligne en :

Code :
  1. <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

n°1359046
[Albator]
MDK un jour, MDK toujours !
Posté le 31-05-2014 à 18:16:15  profilanswer
 

toma222 a écrit :

Salut,
Il faut que tu modifies la première ligne en :


Code :
  1. <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>


Ca aussi ça disparait tout seul après avoir enregistré ...
Je me retrouve toujours avec la balise "domain type='kvm'" tout court, sans le "xmlns:qemu"...
Pourtant je peux bien changer les paramètres comme le nombre de CPU, ram, etc ... donc l'édition fonctionne...
 
Edit: Bon ça y est j'ai compris ! En fait il faut écrire tout en une seule fois.
Si j'ajoute juste le "xmlns:qemu" alors il est supprimé. Si j'ajoute juste le bloc "qemu:commandline" alors il est supprimé.
Mais si j'ajoute les 2 en même temps, ils restent tous les deux. Merci à toi !


Message édité par [Albator] le 31-05-2014 à 19:19:03
n°1359158
[Albator]
MDK un jour, MDK toujours !
Posté le 03-06-2014 à 20:34:36  profilanswer
 

Information intéressante pour ceux qui font du vga passthrough avec une Geforce et KVM (comme moi):
vous avez sans doute constaté que tout fonctionnait bien avec le pilote 335.23, mais qu'avec n'importe quel pilote plus récent, la carte ne fonctionne plus du tout (erreur 43 au démarrage de Windows).
 
Un membre du forum Arch a trouvé la solution:
https://bbs.archlinux.org/viewtopic [...] 4#p1421204
 
Bien que Nvidia le démente, il semble qu'ils aient ajouté volontairement un bridage dans leur driver.
Quand l'hyperviseur KVM est détecté, alors le pilote refuse de démarrer et provoque l'erreur 43.
Le workaround consiste à patcher Qemu pour supprimer ou modifier la signature de l'hyperviseur.
 
Merci Nvidia !

n°1359200
XaTriX
Posté le 04-06-2014 à 18:36:01  profilanswer
 

Driver WHQL ? Microsoft ? :whistle:
 
XaT


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
n°1359343
bardiel
Debian powa !
Posté le 08-06-2014 à 09:20:54  profilanswer
 

A voir si cela fait la même chose avec HyperV... Si oui, Microsoft inside, si non, nVidia quoi :o


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1359344
[Albator]
MDK un jour, MDK toujours !
Posté le 08-06-2014 à 11:17:20  profilanswer
 

bardiel a écrit :

A voir si cela fait la même chose avec HyperV... Si oui, Microsoft inside, si non, nVidia quoi :o


Justement, la réponse de nvidia c'est qu'ils ont apporté un correctif relatif à HyperV, que ça a cassé KVM par accident, mais vu que KVM n'est pas officiellement supporté par Nvidia, ils ne corrigeront pas le problème.
 
Sauf que, comme indiqué, il suffit de changer un tout petit peu (ou carrément supprimer) la signature de l'hyperviseur KVM pour que tout fonctionne correctement.  
Ca ressemble vraiment à un blocage volontaire de KVM.
Dans tous les cas, c'est bien Nvidia qui a introduit le problème.
 
D'ailleurs Qemu vient d'ajouter un workaround officiel:
http://git.qemu.org/?p=qemu.git;a= [...] 3f424a7dfa

n°1359403
XaTriX
Posté le 09-06-2014 à 22:50:36  profilanswer
 

[Albator] a écrit :


Justement, la réponse de nvidia c'est qu'ils ont apporté un correctif relatif à HyperV, que ça a cassé KVM par accident, mais vu que KVM n'est pas officiellement supporté par Nvidia, ils ne corrigeront pas le problème.
 
Sauf que, comme indiqué, il suffit de changer un tout petit peu (ou carrément supprimer) la signature de l'hyperviseur KVM pour que tout fonctionne correctement.  
Ca ressemble vraiment à un blocage volontaire de KVM.
Dans tous les cas, c'est bien Nvidia qui a introduit le problème.
 
D'ailleurs Qemu vient d'ajouter un workaround officiel:
http://git.qemu.org/?p=qemu.git;a= [...] 3f424a7dfa


MS qui a grassement payé Nvidia quoi :o C'est légal ? :o
 
XaT


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
n°1360758
NHiX
Cop1
Posté le 10-07-2014 à 14:21:42  profilanswer
 

Salut
Je reviens vers vous pour encore vous demander quelques conseils.
J'ai toujours mon problème de son pour mon système hôte quand je passe celui-ci à ma VM :/
J'ai bien tenté de régler mon soucis avec le chipset son AC97 dans Virt-manager, mais sans succès :/
Je suis à la recherche aujourd'hui d'une "carte son usb" pleinement compatible avec Windows 8.1
Sinon je suis curieux de savoir ... Comment faite vous avec Windows 8.1 en guest pour avoir du son en même temps sur l'host ?
Merci d'avance pour vos réponses

n°1360771
toma222
Posté le 10-07-2014 à 18:43:46  profilanswer
 

Salut,
 
Pour la carte son USB, je ne saurais pas trop de dire.
De mon côté, je n'utilise pas le son de l'hôte (il n'y a pas de Desktop, c'est plutôt un serveur, je m'en sers uniquement en SSH), mais ma VM utilise l'HDMI de ma Radeon, donc je passe le son par là et ma carte son intégrée serait disponible si j'en avais besoin.

n°1362300
toma222
Posté le 12-08-2014 à 15:51:44  profilanswer
 

Bonjour,
 
Pour ceux qui sont sous Debian, il est désormais possible d'utiliser le x-vga avec VFIO sans compiler ni patcher quoi que ce soit avec les ingrédients suivants :
- kernel 3.16-trunk-amd64 qui vient d'arriver dans experimental, qui est maintenant compilé avec les options suivantes :

Code :
  1. CONFIG_VFIO_IOMMU_TYPE1=m
  2. CONFIG_VFIO=m
  3. CONFIG_VFIO_PCI=m
  4. CONFIG_VFIO_PCI_VGA=y
  5. CONFIG_KVM_VFIO=y


- qemu 2.1 qui est dans Jessie.
Je viens de tester rapidement, aucun problème relevé chez moi.
Par contre si vous voulez utiliser un chipset Intel intégré sur votre hôte, vous aurez peut-être besoin de patchs spécifiques.
 
A noter également pour ceux que ça intéresse que la prochaine version de Proxmox (3.3) devrait permettre d'utiliser le VGA Passthrough.

n°1362567
XaTriX
Posté le 18-08-2014 à 11:18:37  profilanswer
 

up!
 
Dites, il faudra que je flash/mod ma 670 pour profiter du PT ?  
 
XaT


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
n°1362610
tybobab
Posté le 18-08-2014 à 17:46:33  profilanswer
 

toma222 a écrit :

Bonjour,
 
Pour ceux qui sont sous Debian, il est désormais possible d'utiliser le x-vga avec VFIO sans compiler ni patcher quoi que ce soit avec les ingrédients suivants :
- kernel 3.16-trunk-amd64 qui vient d'arriver dans experimental, qui est maintenant compilé avec les options suivantes :

Code :
  1. CONFIG_VFIO_IOMMU_TYPE1=m
  2. CONFIG_VFIO=m
  3. CONFIG_VFIO_PCI=m
  4. CONFIG_VFIO_PCI_VGA=y
  5. CONFIG_KVM_VFIO=y


- qemu 2.1 qui est dans Jessie.
Je viens de tester rapidement, aucun problème relevé chez moi.
Par contre si vous voulez utiliser un chipset Intel intégré sur votre hôte, vous aurez peut-être besoin de patchs spécifiques.
 
A noter également pour ceux que ça intéresse que la prochaine version de Proxmox (3.3) devrait permettre d'utiliser le VGA Passthrough.


 
Hello,
 
Sais-tu comment on installe le patch car j'ai un chipset intel intégré ?

n°1362613
toma222
Posté le 18-08-2014 à 18:16:41  profilanswer
 

tybobab a écrit :


 
Hello,
 
Sais-tu comment on installe le patch car j'ai un chipset intel intégré ?


 
C'est seulement si tu veux utiliser ton chipset Intel sur l'hôte pour de la 3D je pense que tu as besoin de patchs (vga arbitrer).
Si c'est ton cas, le plus simple est de partir de ce qui est fourni sur le forum Archlinux (https://bbs.archlinux.org/viewtopic.php?id=162768&p=1).
Chez moi je n'ai pas d'environnement graphique sur l'hôte donc je n'en ai pas eu besoin.
 

XaTriX a écrit :

up!
 
Dites, il faudra que je flash/mod ma 670 pour profiter du PT ?  
 
XaT


 
Je n'ai pas de Nvidia, mais à ce que j'ai compris je ne pense pas que ce sera nécessaire. Tu auras peut-être des soucis avec les derniers drivers Nvidia, mais il existe maintenant un paramètre (kvm=off de mémoire) qui permet de contourner le problème.

n°1362614
XaTriX
Posté le 18-08-2014 à 18:20:22  profilanswer
 

Avec Xen j'ai l'impression que c'est obligatoire de la passer en Grid K2 (ce qui pourrait être cool pour le gpu share jsais plus quoi :o) :o

 

XaT


Message édité par XaTriX le 18-08-2014 à 18:20:39

---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
n°1362693
tybobab
Posté le 20-08-2014 à 00:26:10  profilanswer
 

toma222 a écrit :


 
C'est seulement si tu veux utiliser ton chipset Intel sur l'hôte pour de la 3D je pense que tu as besoin de patchs (vga arbitrer).
Si c'est ton cas, le plus simple est de partir de ce qui est fourni sur le forum Archlinux (https://bbs.archlinux.org/viewtopic.php?id=162768&p=1).
Chez moi je n'ai pas d'environnement graphique sur l'hôte donc je n'en ai pas eu besoin.
 


 
J'ai réussi à jouer avec ma carte en passthrough mais je n'ai pas compris comment s'installer le patch car le dernier bug qu'il me reste concerne le chipset intel qui se met à "déconner" sur l'hôte lorsque je lance ma vm.

n°1362718
toma222
Posté le 20-08-2014 à 13:49:45  profilanswer
 

Pour recompiler le kernel avec les patchs (à récupérer sur le forum Archlinux), tu peux te baser sur la méthode que j'avais donné en adaptant au 3.16 :

toma222 a écrit :

Pour le kernel, malheureusement je pense que la méthode sera un peu différente sous OpenSuse... A voir si le kernel est déjà compilé avec l'option CONFIG_VFIO_PCI_VGA en faisant un cat /boot/config-3.14-trunk-amd64 | grep VFIO, dans quel cas tu pourras probablement testé le x-vga=on sans passer par la recompilation.
Je confirme que ce n'est pas la solution idéale, il faudra le recompiler pour les prochaines versions.  
En simplifié, voici la méthode que j'utilise :
- prévoir pas mal d'espace disque pour le build (30 Go de mémoire), j'ai déjà rempli mon /...
- les packages nécessaires à la compilation doivent être installés (build-essential au moins, je ne sais plus s'il y en a d'autres).
- cd emplacement_du_build
- apt-get source linux-image-3.14-trunk-amd64 (version à adapter en fonction du kernel qu'on veut).
- cd linux-3.14.1
- cp /boot/config-3.14-trunk-amd64 .config
- vim .config (ou nano si vous préférez).
- modifier les options souhaitées (notamment CONFIG_VFIO_PCI_VGA=y) et sauvegarder.
- télécharger linux-mainline.tar.gz sur le forum Archlinux, l'extraire et copier les patchs i915_314.patch et override_for_missing_acs_capabilities.patch dans votre répertoire des sources. Attention, les derniers patchs sont pour le 3.14, à voir s'ils passent sur une autre version (je dois encore avoir ceux de la 3.13 qui traînent).
- patch -Np1 -i override_for_missing_acs_capabilities.patch (pour ceux qui ont un problème d'acs, à vérifier avec le script lsgroup).
- patch -Np1 -i i915_314.patch (si vous voulez pouvoir utiliser le driver Intel sur l'hôte sans bug graphique).
- le patch fix_memleak.patch ne semble plus nécessaire pour le 3.14.
- export CONCURRENCY_LEVEL=5 (pour utiliser tout vos CPU pour la compilation, nombre de cores +1, ici c'était sur mon core i5, à mettre à 9 je pense pour un core i7).
- fakeroot make-kpkg --append-to-version "-vfio" --revision "1" --initrd kernel_image kernel_headers (de mémoire ça met 30 bonnes minutes sur un core i5 2500).
- ça va générer les .deb, il n'y aura plus qu'à les installer avec dpkg -i.
Je ne suis pas spécialiste en compilation de noyau, il y a peut-être d'autres méthodes mais c'est la plus simple que j'ai trouvé.


 

n°1362720
tybobab
Posté le 20-08-2014 à 13:53:06  profilanswer
 

Merci pour ton aide, je vais essayer ça ce soir !

n°1362764
tybobab
Posté le 20-08-2014 à 23:06:41  profilanswer
 

toma222 a écrit :

Pour recompiler le kernel avec les patchs (à récupérer sur le forum Archlinux), tu peux te baser sur la méthode que j'avais donné en adaptant au 3.16 :


 
J'ai recompilé le noyau 3.16-trunk-amd64 avec le patch et ça fonctionne parfaitement :)
 
Maintenant il me reste un problème beaucoup moins génant ! Il s'agit du périphérique HDMI de ma carte graphique qui utilise le driver snd_hda_intel. Donc je le blacklist mais le son intégré de la carte mère ne fonctionne plus (logique)...quelqu'un a rencontré le problème ?


Message édité par tybobab le 20-08-2014 à 23:09:48
n°1363086
kisscoolz
Posté le 26-08-2014 à 12:41:23  profilanswer
 

Plop,  
 
Quelqu'un aurait une idée de comment reproduire le fonctionnement du module pciback de xen sur la carte graphique avec du kvm et sur une arch ?  
J'entends par la avoir cet effet de carte graphique "déconnectée" de l'hôte et donc l'écran s'éteint par ce qu'il n'y a plus de signal.  
 
Je sais pas si ca vous le fait ou pas mais chez moi c'est pas le cas sur la arch et du coup ca me parait pas logique pour fait du pt par la suite avec la cg intégrée.


---------------
http://lacabanedeladmin.trickip.net/
n°1363114
kisscoolz
Posté le 26-08-2014 à 16:37:26  profilanswer
 

Bon premiers pas et premiers résultats avec la triplette qemu, kvm et arch ... ma gtx 780ti est passée comme une lettre à la poste avec les drivers 340.52. :D

 

Ca m'enlève le poids de devoir la moddé pour la faire fonctionner sous xen.

 

Par contre j'ai un petit soucis avec le clavier, la touche windows ne marche pas :sweat: J'ai passé le controleur usb à la vm. Au début je pensais que c'était le clavier qui marchait pas bien qu'il soit allumé mais non c'est juste cette touche qui marche pas, en tous cas pour le moment.


Message édité par kisscoolz le 26-08-2014 à 16:44:45

---------------
http://lacabanedeladmin.trickip.net/
n°1363196
kisscoolz
Posté le 27-08-2014 à 13:18:28  profilanswer
 

Il semble que j'ai résolu le problème avec mon clavier. La touche windows ne marche pas quand le rétro eclairage est allumé. Si je le coupe la touche fonctionne. C'est bizarre, je me rappel pas avoir eu ca avant. :/

 

Edit: En fait, y'a plusieurs mode de retro eclairage sur le clavier et en particulier un mode multicouleurs. C'est la teuf dans le clavier :lol: Et c'est juste avec ce mode que la touche windows ne fonctionne pas. Avec le mode mono couleur, c'est bon. :)


Message édité par kisscoolz le 27-08-2014 à 15:46:37

---------------
http://lacabanedeladmin.trickip.net/
n°1363254
kisscoolz
Posté le 28-08-2014 à 11:15:34  profilanswer
 

Y'en a qui ont réussi a faire du passthru avec la cg intégrée intel ? Je veux dire en ayant booté dessus ?


---------------
http://lacabanedeladmin.trickip.net/
n°1363255
tybobab
Posté le 28-08-2014 à 11:17:11  profilanswer
 

Tu veux dire qu'on attribue la cg intégrée intel à une VM ?

n°1363257
XaTriX
Posté le 28-08-2014 à 11:44:49  profilanswer
 

Pas possible si on a déjà booté dessus, l'os garde la main dessus et voudra pas la donner :o
Fin je crois.

 

edit: Va voir topic proxmox je crois qu'ils en ont parlé récemment

 

XaT


Message édité par XaTriX le 28-08-2014 à 11:45:31

---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
n°1363259
kisscoolz
Posté le 28-08-2014 à 11:56:16  profilanswer
 

tybobab a écrit :

Tu veux dire qu'on attribue la cg intégrée intel à une VM ?


oui
 
Avec du xen (au moins les versions 4.2.x 4.3.x 4.4.x), je passe sans problème la carte intégrée intel à une vm en pt. Elle est configurée comme carte principale dans le bios mais je peux me brosser si je veux passer la carte nvidia.  
 
Avec du qemu/kvm, je passe sans problème la carte nvidia en ayant booter sur la carte intégré intel mais je peux pas passer la carte intégrée. Je pensais que c'etait possible et que ca se fesait sans trop de difficultés.  
 
Me reste une chose à faire je crois. Best of both worlds :/
 
Edit: et la solution best of both worlds ne marche pas. Pas possible de faire tourner du xen et du kvm sur la même machine  :fou:


Message édité par kisscoolz le 28-08-2014 à 13:17:02

---------------
http://lacabanedeladmin.trickip.net/
n°1364771
NHiX
Cop1
Posté le 21-09-2014 à 01:06:50  profilanswer
 

En train de tester la future Fedora 21 avec une VM
Je suis surpris de voir que celle-ci intègre Qemu 2.1.1, Xen 4.4.1, le protocole Spice dans Machines !
cat /boot/config-3.16.1-301.fc21.x86_64 | grep VFIO
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO=m
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
CONFIG_KVM_VFIO=y

n°1364790
[Albator]
MDK un jour, MDK toujours !
Posté le 21-09-2014 à 16:52:43  profilanswer
 

Attention, une mise à jour du driver Nvidia pour Windows, version 344.11, casse encore le support des cartes Geforce sous Qemu  :fou:  
 
Cette fois-ci, il ne se contente pas de détecter l'hyperviseur, il détecte aussi les flags hyper-v activés par Qemu.
Dès qu'un flag hyper-v est détecté, le pilote Nvidia refuse de se charger et affiche l'erreur 43.
 
Donc, on a 2 possibilités:
- désactiver les flags hyper-v de Qemu (pas terrible pour les performances de la VM)
- ne pas mettre à jour le driver Nvidia et rester en 340.52

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16

Aller à :
Ajouter une réponse
 

Sujets relatifs
Projet de mise en place de google apps en entreprise[Résolu] nginx sur domU NetBSD 6 (dom0 Debian squeeze)
Virtualisation, du passthrough, XBMC, NAS, des jeux...besoin avis projet de server auto hebergement et media center
[projet] Prise de courant avec Wattmetre intégré en CPLVersions de Xen - What else ?!
Debian - Xen server - Iptables - Nat - WebserverSwitch virtuel pour Xen/KVM - Interface tap - Cisco/Autre ?
2 OS simultanement avec Xen ?Ubunto 10.10: Configuration d'un compte Exchange + Projet VMWare
Plus de sujets relatifs à : [Topic Unique] VGA/PCI Passthrough et VFIO sous GNU/Linux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR