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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Logiciels

  kvm Vt-d passthrough

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

kvm Vt-d passthrough

n°1346147
ztg
Posté le 09-10-2013 à 02:37:31  profilanswer
 

salut a tous
 
j'essaie de tenter le VGA passthrough
 


root@debian:~# dmesg | grep -e DMAR -e IOMMU  
[    0.000000] ACPI: DMAR 00000000dafda000 000B8 (v01 INTEL      SNB  00000001 INTL 00000001)
[    0.030277] dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c0000020e60262 ecap f0101a
[    0.030287] dmar: IOMMU 1: reg_base_addr fed91000 ver 1:0 cap c9008020660262 ecap f0105a
[    0.030370] IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
root@debian:~# modprobe pci_stub
root@debian:~# lspci -n | grep 0166
00:02.0 0300: 8086:0166 (rev 09)
root@debian:~# echo "8086 0166" > /sys/bus/pci/drivers/pci-stub/new_id  
root@debian:~# echo 0000:02:00.0 > /sys/bus/pci/devices/0000:02:00.0/driver/unbind  
root@debian:~# echo 0000:02:00.0 > /sys/bus/pci/drivers/pci-stub/bind  
-su: echo: write error: No such device
root@debian:~#  


 
qqn saurait il pourquoi je peux pas bind?

mood
Publicité
Posté le 09-10-2013 à 02:37:31  profilanswer
 

n°1346194
toma222
Posté le 09-10-2013 à 19:45:58  profilanswer
 

Salut,
 
Je pense que pour pouvoir t'aider, il faudrait quelques informations supplémentaires :
- OS : (vu le prompt Debian, mais quelle version ?).
- Kernel.
- version de qemu.
- configuration hardware.
- ...
 
Pour ma part, j'utilise virsh et virt-manager pour faire du VGA passtrough d'une Radeon HD 7850 sur un Windows 8, et je n'ai pas eu à me poser la question du bind (j'ai juste blacklisté le driver radeon sur mon hôte, libvirtd semble s'occuper de tout).
Kernel 3.9 et qemu 1.5.

n°1346197
ztg
Posté le 09-10-2013 à 20:57:14  profilanswer
 

Debian Jessie
linux-image-amd64-3.10-3
qemu-kvm 1.1.2
 
i5 5530 (de memoire), Intel HD4000, carte mere Q*77

n°1346199
ztg
Posté le 09-10-2013 à 21:08:45  profilanswer
 

donc si je blacklist le intel nouveau je devrais avoir access direct?
 
question stupide de debutant en passthrough: des que je demarrerai ma VM ca utilisera l'ecran branche sur ma HD4000, "remplacant" mon shell depuis lequel je lance ma vm?

n°1346200
toma222
Posté le 09-10-2013 à 21:20:05  profilanswer
 

De mémoire, j'ai dû utiliser au moins la 1.4 de qemu pour que ça fonctionne chez moi (et les versions > 1.5 me posent actuellement problème).
 
C'est ta carte intégrée Intel que tu essaies de passer à ta VM ? Tu n'as pas de carte PCI Express supplémentaire ? Je ne suis pas sûr que ce soit possible.
 
Dans mon cas, j'ai la sortie VGA de mon Intel branchée sur l'entrée PC de ma TV, et la sortie HDMI de ma Radeon sur une entrée HDMI.
Donc, je boote ma machine, j'ai l'affichage de l'hôte en VGA. Une fois la VM démarrée, j'ai son affichage en HDMI et je peux switcher de l'une à l'autre en changeant d'entrée.
 
Qu'est-ce que tu essaies de faire exactement ?

n°1346201
ztg
Posté le 09-10-2013 à 21:31:49  profilanswer
 

hmm je vais voir si je peux trouver un qemu plus recent
 
ou carte integree intel, pas de supplementaire (c'est sur laptop :D)
 
effectivement ce que tu decris est plus simple, je fais ca simplement pour experimenter voir si ca marche bien avant d'acheter un desktop avec plusieurs cartes dans cette optique :jap:

n°1346533
blazkowicz
Posté le 17-10-2013 à 13:43:20  profilanswer
 

C'est compliqué.
Crois-tu que la machine physique veuille se faire arracher sa carte graphique comme ça sans rien dire. Ca ne me paraît pas jouable.

 

Il faudrait que l'OS physique boote sans utiliser de carte graphique (ce qui peut être possible sur un PC je crois, mais pas garanti, certains PC sans GPU intégré peuvent booter sans aucune CG et d'autres non?) ensuite il te faudrait une console série (ça manque de port série sur les laptops :D) ou à l'aveugle jusqu'à-ce qu'un sshd tourne (si t'as une merde t'es out) ou bien du IPMI ou similaire sur la carte-mère.

 

Bref c'est juste impossible.
A la limite, il ya des laptops en nvidia Optimus avec un HDMI relié physiquement au GPU nvidia où cela serait envisageable mais pour l'IOMMU tu peux sûrement te brosser (déjà que dans les BIOS de portables, tu peux juste choisir l'heure, la date et l'ordre de boot et ensuite deux ou trois options qui se battent en duel :D)

 

toma222, c'est plutôt intéressant que ça marche chez toi, as-tu comme CM n'importe quelle Z77 ou alors un modèle un peu plus spécifique?
A savoir le VGA passthrough est très très dépendant du matos à utiliser, que ce soit carte-mère ou carte graphique.
Donc c'est au cas par cas.

 

Ce serait marrant de mettre le GPU d'un Intel ou d'un APU AMD (Trinity/Richland, Kabini ou le futur Steamroller) dans une VM, il faudrait une vieille carte PCI 1Mo ou PCIe quelconque pour l'OS physique, et que ladite carte ait la priorité dans le BIOS mais est-ce possible je n'en ai aucune idée.

 

-> ztg : peux-tu faire un simple PCI passthrough au moins :) (par exemple, mettre la carte son dans la VM, ou un contrôleur USB. ou une des deux cartes réseau).
C'est le mieux que tu puisses expérimenter.
Le VGA, avec la problématique du BIOS VGA est bien plus compliqué.


Message édité par blazkowicz le 17-10-2013 à 13:44:54
n°1346535
ztg
Posté le 17-10-2013 à 14:13:22  profilanswer
 

j'ai deja fait du passthrough USB par le passe, meme si effectivement c'est bcp plus simple :jap:
 
je sais pas si y a vraiment besoin de priorite dans le bios... ce qui compte c'est ce que le kernel charge ou ne charge pas, non? si tu as une gpu sur ton cpu intel, et une gpu pci, si tu exclues l'une des deux (dans la blacklist des modules) tu auras ton hote sur l'autre?

n°1346537
blazkowicz
Posté le 17-10-2013 à 14:39:56  profilanswer
 

Le passthrough USB est le plus simple, il peut se faire sans Vt-d/IOMMU avec un simple virtualbox. Si tu essaies un PCI passthrough, c'est déjà plus bas niveau.
C'est l'OS qui gère les périphs USB au travers de la stack USB (à part que le BIOS peut gérer clavier, souris, clef USB par émulation ce qui permet d'utiliser un clavier USB dans le BIOS ou de booter sur une clef USB)

 
ztg a écrit :

ce qui compte c'est ce que le kernel charge ou ne charge pas, non? si tu as une gpu sur ton cpu intel, et une gpu pci, si tu exclues l'une des deux (dans la blacklist des modules) tu auras ton hote sur l'autre?

 

Tu peux exclure un pilote Intel, cela n'empêchera pas la Intel d'être utilisée en VESA ou bien si tu exclues même le pilote VESA, la Intel pourra être utilisée en mode VGA (ne serait-ce qu'en mode texte 80x25 16 couleurs)
Sur un PC de bureau avec deux CG (intégré + PCIe ou PCI, AGP + PCI, PCIe + PCI..) il faudra probablement jouer de l'option BIOS "init first". Ou bien avec une CM chipset AMD 970 ou 990FX, si on a deux CG PCIe l'une des deux doit primer en fonction du slot.

 

Idéalement une carte graphique ne devrait pas poser plus de problème qu'un simple périphérique en PCI mais elle a un statut particulier.. Elle fonctionne dès l'allumage du PC, avant qu'un OS ne boote, et même avant que le POST du BIOS soit fait.


Message édité par blazkowicz le 17-10-2013 à 14:45:49
n°1346539
blazkowicz
Posté le 17-10-2013 à 14:50:21  profilanswer
 

Elle est active quand le PC affiche "Keyboard no present : press F1 to continue" lol.

mood
Publicité
Posté le 17-10-2013 à 14:50:21  profilanswer
 

n°1346545
ztg
Posté le 17-10-2013 à 15:39:20  profilanswer
 

:D
 
je connais pas l'option du bios "init first"?

n°1346558
blazkowicz
Posté le 17-10-2013 à 17:52:13  profilanswer
 

"display init first", ce doit être. ah non c'est "init display first"


Message édité par blazkowicz le 17-10-2013 à 17:52:40
n°1346559
toma222
Posté le 17-10-2013 à 18:03:11  profilanswer
 

@blazkowicz : je l'ai testé sur deux générations différentes (Core i5 2500 avec carte mère MSI Z67 et Core i7 sur carte mère Asrock H87).
Ca doit faire plus d'un an que j'utilise cette solution, et même si tout n'est pas parfait (ex : le fait qu'un reboot du guest avec carte graphique attachée se passe mal), j'en suis très satisfait.
Effectivement le hardware est important, mais le soft aussi, j'ai eu du mal à trouver les bonnes combinaisons de versions de kernel/qemu/libvirtd pour que ça fonctionne sans soucis. Pour info, les dernières versions permettent d'utiliser une méthode plus propre utilisant vfio pour passer des périphériques PCI (voir https://bbs.archlinux.org/viewtopic.php?id=162768), mais je n'ai pas encore réussi à avoir de bons résultats.

n°1346561
ztg
Posté le 17-10-2013 à 18:21:41  profilanswer
 

je croyais que seuls les chipsets Q permettaient de faire du passthrough?

n°1346562
toma222
Posté le 17-10-2013 à 18:28:34  profilanswer
 

Pour être sûr que ça fonctionne, oui, c'est le seul chipset officiellement supporté.
Mais en pratique, ça fonctionne sur les autres chipsets (à condition que les fabricants l'aient bien implémenté, notamment dans le BIOS).
Asrock notamment est connu pour le mettre sur à peu prêt toutes leurs cartes mères.
Mais effectivement pour éviter la roulette, il vaut sans doute mieux s'orienter vers du Q67/77/87.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Logiciels

  kvm Vt-d passthrough

 

Sujets relatifs
Virtualisation, du passthrough, XBMC, NAS, des jeux...ALSA : spdif / passthrough foireux en 5.1 sur creative audigy player
Plus de sujets relatifs à : kvm Vt-d passthrough


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