Mi experiencia con Máquina Virtual+VGA/PCI Passthrough

Buenas EOLIANOS.
Mucha gente dice que las máquinas virtuales no valen para jugar a juegos windowseros.
Primero una reflexión. Es cierto que el catálogo de juegos en linux no es tan grande ni mucho menos, pero sin ir más lejos con iniciativas como humble-bundle y steam for linux el catálogo está creciendo enormemente.
Qué significa ésto? Pues coño, que siempre que haya una versión nativa para linux, usadla! Que quede reflejado como que los linuxeros también podemos ser tan gamers como los demás, y que hagan más y más ports cada vez.
Desde aquí os recomiendo la web http://www.gamingonlinux.com para que veais las novedades al respecto (ports linux en desarrollo, juegos nativos en alpha, beta, etc, todo!)

Me he decidido a virtualizar. Pero no como con virtualbox y demás. No, virtualizar con el hardware de la máquina, y sin emulaciones.
Por eso tras documentarme por internet vi que las mejores opciones son Xen y KVM . Ambos son (si no me equivoco) hypervisores, es decir virtualizadores nivel "1". Qué quiere decir ésto? Pues que antes de cargar el s.o., se cargará xen/kvm. Y a la hora de la verdad, ambos s.o. (linux mint, en mi caso, y windows 8) estarán virtualizados aunque se usará como base la distro de linux en cuestión.
Voy a ver si me decido por KVM o por XEn, el objetivo es conseguir el vga passthrough y a continuación publicar aquí unos benchmarks, capturas de imágenes y un HOW TO en español bien clarito para todos aquellos que querais virtualizar un S.O. con rendimiento de máquina nativa.

Manos a la obra!

Mi equipo:
Gigabyte 970 UD3 (importante que la placa base soporte vit-d, creo que se llama para intel, y IOMMU para amd, en mi caso).
Amd FX-4100
12 gb corsair ddr3 1600
Radeon 7770 HD 1gb ddr5 (Tarjeta que usará el sistema emulado, windows 8). Drivers privativos en linux y nativos en Windows 8
Geforce gt 430 (Tarjeta que usará el "host", linux mint). Driver Nouveau (el privativo da conflicto con cualquier otro driver) en linux mint.

Iré actualizando este hilo y contandoos mi experiencia!
Yo iba a probar, pero Xenserver en maquinas virtuales estaba la cosa mas jodidita, mucho requisito y algunos tweaks. Lo bueno es que ahora hasta la solucion comercial se hace open source. KVM, lo puedes usar sobre GNU/Linux mientras hayas cargado el kernel con el (lo cual te imposibilita creo usar virtualbox y semejantes aviso).

Compatibillidad:
http://en.wikipedia.org/wiki/List_of_IO ... g_hardware
Para los pocos entendidos, es como usar los usb en virtualbox que seria practicamente igual que en la maquina anfitrión PERO, incluyendo incluso la tarjeta gráfica pudiendo así tener aceleracion 3D completamente efectiva.

Con Qemu (usa KVM) he sido tan bruto de arrancar un Windows instalado en el mismo disco duro (son datos que no están en uso, asi que nada grave) y hasta el mismo sistema en uso creo (eso si es bastante grave y peligroso XD).
La cosa es que no se requieren siquiera discos duros virtuales aunque seria lo suyo para el tema de backups, clonar, etc.

Como nota que después de probar juegos como L4D2, Heroes Of Newerth, Oil Rush y otros así... potencia al pinguinito no le falta y con la debida optimicion por parte de los desarrolladores es todo bastante alegre =D.

Dicho esto sigo jugando en steam a cosillas que me van interesando y me puse a trastear un poquito con otros servicios de server con LTSP, portales cautivos, proxys... lo típico vamos XD, jugar ya no me llena tanto como para invertir tanto tiempo en ello ^^.
blackgem escribió:Yo iba a probar, pero Xenserver en maquinas virtuales estaba la cosa mas jodidita, mucho requisito y algunos tweaks. Lo bueno es que ahora hasta la solucion comercial se hace open source. KVM, lo puedes usar sobre GNU/Linux mientras hayas cargado el kernel con el (lo cual te imposibilita creo usar virtualbox y semejantes aviso).

Compatibillidad:
http://en.wikipedia.org/wiki/List_of_IO ... g_hardware
Para los pocos entendidos, es como usar los usb en virtualbox que seria practicamente igual que en la maquina anfitrión PERO, incluyendo incluso la tarjeta gráfica pudiendo así tener aceleracion 3D completamente efectiva.

Con Qemu (usa KVM) he sido tan bruto de arrancar un Windows instalado en el mismo disco duro (son datos que no están en uso, asi que nada grave) y hasta el mismo sistema en uso creo (eso si es bastante grave y peligroso XD).
La cosa es que no se requieren siquiera discos duros virtuales aunque seria lo suyo para el tema de backups, clonar, etc.

Como nota que después de probar juegos como L4D2, Heroes Of Newerth, Oil Rush y otros así... potencia al pinguinito no le falta y con la debida optimicion por parte de los desarrolladores es todo bastante alegre =D.

Dicho esto sigo jugando en steam a cosillas que me van interesando y me puse a trastear un poquito con otros servicios de server con LTSP, portales cautivos, proxys... lo típico vamos XD, jugar ya no me llena tanto como para invertir tanto tiempo en ello ^^.


A mí además de interesarme el gaming me interesa sobretodo el cinema 4d. No hay un programa 3d con un render engine que funcione sobre ati tan rápido y efectivo como ese!
Creo que voy a probar con KVM. Además he visto alguna gui bastante agradable para gestionar las máquinas virtuales, que no nos engañemos, de vez en cuando una gui se agradece mucho
Interesante, seguiré el desarrollo de como te lo vas montando y los resultados obtenidos.
de momento no consigo que la x me arranque usando la gt 430, sólo me arranca con la radeon.
A la shell si que me entra.
intenta tirar con el driver vesa, yo he tenido problemas con los drivers en dos graficas pinchadas y vesa me hacia el apaño...
ayer saqué las dos tarjetas, metí primero la nvidia y luego la ati en sus slots.
Me autoseleccionó nouveau para nvidia y ati no me instaló ningún driver. De momento el host me va perfecto con nvidia. Ahora que tengo un rato hoy voy a ponerme ya con el virtualizado y la radeon! ya os cuento
Me interesa este hilo, tengo crossffire 7850 me haría falta otra gráfica tengo una 5850 por aquí me hace falta un nuevo ventilador ya que esta roto. Seguiré el hilo cuando todo vaya bien te podías currar una guía.
es la idea!
De momento he conseguido hacer un vga passthrough en kvm asignando el puerto pci de la radeon usando la gui "virt-manager". No va mal pero estoy seguro de que haciéndolo con xen el rendimiento será muy superior!
Tranqui que habrá guía, comprensible para todos y en perfecto castellano

PD: Las atis no dan ningún tipo de problema para hacer el vga passthrough. Las Nvidia son mucho más porculeras
Actualizo: Estoy en punto muerto. He hecho todo en xen, incluso asignado los pci sin problema, pero al arrancar la máquina virtual de windows 7 me dice que mi vt-d no está activado (iommu, en caso de chipsets amd). Curioso cuando está todo más que activado desde la placa base. Si no le encuentro solución mañana empezaré a probar con kvm. Sobre Xen es realmente mala la documentación y comunidad que hay.
Muy interesante hilo, estaré atento a los progresos de los gurús!!!
más bien a los progresos de los "lee-tutoriales-que-se-contradicen-unos-a-otros".

Me ha costado sangre y sudor, pero parece que ya tira. Decir que la mayoría de info que hay en internet es sobre xen 4.1 y el xen actual es 4.2.. Mañana os pondré benchmarks y demases pero os dejo aquí con el fruto de mis sacrificios xD

Imagen



Imagen

la utilidad de amd detectando mi 7770 ya en el win7 virtualizado!
Ansioso estoy quiero ver a ver que tal va [oki]
Yo también lo espero con muchas ansias...... [tadoramo]
Hace tiempo, con el SSD, busqué una forma de reinicio rápido para cambiar de Arch Linux a Win con una espera "decente", pero, cojones, esto es mucho mejor! Esperando estoy!

PD: Si no lo entiendo mal, la tarjeta que tendrías conectada por cable al monitor sería la nVidia, y aunque se usara la ATI seguiría conectada la nVidia, no? Porque es un problema, mi placa base cuando detecta una dedicada desactiva la integrada XD, me tocará comprar una chustera PCI si esto va por buen camino :D
tengo dos monitores. En uno aparece la señal enviada por la ati, que uso como "primaria" en el dom0, es decir, el host, linux mint en este caso.
En la otra saco la señal de la otra tarjeta, una radeon 7770 con el win7 virtualizado. Estoy teniendo unos problemillas de ajustes de resolución pero en cuanto lo arregle y tenga tiempo hago una guía "en castellano".
No le recomiendo a nadie hacerlo siguiendo los how-to que hay en internet... se contradicen todos. Y encima desactualizados, menudo tormento!
Aún así creo que una vez que lo consiga sólo jugaré en juegos para linux a ver si steam se entera xD
14 respuestas