[Gentoo + Xen] Hoe ver gaat virtualisatie?

Pagina: 1
Acties:

  • oshiro
  • Registratie: Maart 2005
  • Laatst online: 29-01 14:29

oshiro

Chill, dude.

Topicstarter
Ik heb hier een Gentoo server staan waar ik eigenlijk iets extra's mee wil. Er zit een AMD-processor in die virtualisatie ondersteunt, en het leek me daarom leuk om via Windows XP wat HTPC-functionaliteit aan de boel toe te voegen. Dit wil ik dan echter wel meteen goed aanpakken, met een X-Fi geluidskaart.
Het welbekende probleem is daarmee uiteraard dat die nog nauwelijks ondersteund zijn onder Linux. Voor de x86_64-drivers is GCC3 nodig, en dat is een beetje achterhaald, de OSS-drivers bieden beperkte functionaliteit, etcetera.
Nu vroeg ik me dus af hoe ver virtualisatie gaat. Is het enkel hardwarematige versnelling, of is er complete toegang mee te krijgen tot alle hardware? Zodat ik in Windows de X-Fi-drivers kan installeren en de kaart kan gebruiken? Ik heb niet graag dat ik enkel Windows moet gaan draaien op het systeem, omdat ik dan de functionaliteit van Linux verlies.

“Life is tough, but it's tougher when you're stupid.” - John Wayne | Last.fm


  • Tim
  • Registratie: Mei 2000
  • Laatst online: 04-08-2025

Tim

Het zou theoretisch mogelijk zijn als je de geluidskaart onder linux (Dom0) niet gebruikt. Ik weet niet of Xen die optie bied. Sowieso heb je dan nog het zelfde probleem met je videokaart.
Een betere oplossing zou natuurlijk zijn om een fatsoenlijke geluidskaart te kopen (dus niet van Creative, die kunnen niet eens normale Windows drivers produceren), en freevo/elisa/mythtv/xbmc/geexbox/rage te gebruiken.

  • oshiro
  • Registratie: Maart 2005
  • Laatst online: 29-01 14:29

oshiro

Chill, dude.

Topicstarter
Tes schreef op woensdag 09 april 2008 @ 14:16:
Het zou theoretisch mogelijk zijn als je de geluidskaart onder linux (Dom0) niet gebruikt. Ik weet niet of Xen die optie bied. Sowieso heb je dan nog het zelfde probleem met je videokaart.
Een betere oplossing zou natuurlijk zijn om een fatsoenlijke geluidskaart te kopen (dus niet van Creative, die kunnen niet eens normale Windows drivers produceren), en freevo/elisa/mythtv/xbmc/geexbox/rage te gebruiken.
Of het Xen is of KVM, of een ander virtualisatiesysteem maakt op zich niet veel uit. XBMC, Freevo, etcetera zijn inderdaad heel mooie oplossingen.
Echt gave geluidskaarten voor Linux zijn eigenlijk nauwelijks meer te krijgen. De Audigy-serie had goede ondersteuning, maar de mooie versies met break-out-box zijn niet meer te krijgen. De Asus Xonar-kaarten en de Auzentech-kaarten hebben ook geen linux-ondersteuning. Het issue met de geluidskaart niet gebruiken in Dom0 is geen probleem, als er geen drivers voor zijn vallen er ook geen modules te laden, m.a.w. je hebt er sowieso niets aan :)
Het videokaart-probleem weet ik niet zeker. Ik gebruik er een NVidia-kaartje voor, en de Linux-support van NVidia is, hoewel niet open source, toch altijd wel prima.
Vandaar dus het issue: kan hardware direct door Dom1 aangesproken worden? Dan kan ik een X-fi kaart gebruiken :)

[ Voor 7% gewijzigd door oshiro op 09-04-2008 14:54 ]

“Life is tough, but it's tougher when you're stupid.” - John Wayne | Last.fm


  • Tim
  • Registratie: Mei 2000
  • Laatst online: 04-08-2025

Tim

Schijnbaar kan dat inderdaad: http://www.cl.cam.ac.uk/r...CTION03230000000000000000

Als je hier dan toch mee bezig gaat, ben ik wel benieuwd hoe het afloopt (is je videokaart pci-express?)

  • oshiro
  • Registratie: Maart 2005
  • Laatst online: 29-01 14:29

oshiro

Chill, dude.

Topicstarter
Tes schreef op woensdag 09 april 2008 @ 16:17:
Schijnbaar kan dat inderdaad: http://www.cl.cam.ac.uk/r...CTION03230000000000000000

Als je hier dan toch mee bezig gaat, ben ik wel benieuwd hoe het afloopt (is je videokaart pci-express?)
Dat ziet er wel interessant uit...
De graka is inderdaad PCI-express, en ik wil er eigenlijk ook nog een 8-kanaals RAID-controller bij proppen. Verder nog een tv-kaart, en dus een geluidskaart. Misschien nog een extra netwerkkaart.
Maar dit ziet er inderdaad erg interessant uit. De mogelijkheid om PCI-kaarten te verstoppen voor bepaalde domains is erg handig.
Nu moet ik nog even uit zien te vinden of de videokaart gewoon bruikbaar is in Linux, terwijl er toch 3D-support is in Windows :) Of, het mooiste, dat de kaart verstopt is in Linux en volledig beschikbaar is in Windows (om gebruik te maken van hardwarematige HD-decoding), maar dat ik toch gebruik kan maken van enige vorm van beeld vanuit Linux. In het ergste geval zou ik er een PCI-kaartje bij moeten zetten, of misschien PCI-e x1. Als dit een compleet extra HTPC-systeem uitspaart ben ik in ieder geval voor ;) Bedankt! Ik heb flink gezocht maar ik heb het niet kunnen vinden :)

“Life is tough, but it's tougher when you're stupid.” - John Wayne | Last.fm


  • No13
  • Registratie: Januari 2001
  • Laatst online: 11:13

No13

/me was here

Houd wel rekening met het feit dat tv-kaarten en grafische kaarten vaak met DMA werken, dit schijnt een probleem te zijn in een DomU. Ik ben geen specialist maar probeer even te verwoorden wat ik er van heb begrepen.

Wanneer je OS de grafische kaart aanspreekt geeft hij een geheugen adres mee waarin de graka rechtstreeks zijn 'antwoord' kan wegschrijven (Direct Memory Access).
Het OS kiest een stukje geheugen voor hij zijn request naar de graka stuurt en reserveerd dat voor het antwoord. Maar het OS in DomU weet niet dat zijn geheugen niet bij 0 begint maar ergens halverwege omdat de 1e helft door Dom0 in gebruik is.

Wanneer de graka de request ontvangt heb je een 'probleem' want het gereserveerde stukje geheugen zit in DomU maar de graka weet dat niet. Wanneer de graka zijn antwoord naar de geheugenlokatie probeert te schrijven kan het best zijn dat Dom0 de reaktie krijgt.

  • Aike
  • Registratie: Juli 2000
  • Niet online
Ik heb dat een paar jaar geleden gedaan met netwerkkaarten, bij het booten de pci-devices koppelen aan bep domU's. En dan heb je een VM die direct op het netwerk kan zonder eerst via de bridge te gaan. Ik verwacht dat het voor geluid ook wel werk.

Mijn blog over het deployen van Ruby on Rails: RunRails.com


  • oshiro
  • Registratie: Maart 2005
  • Laatst online: 29-01 14:29

oshiro

Chill, dude.

Topicstarter
No13 schreef op donderdag 10 april 2008 @ 09:14:
Houd wel rekening met het feit dat tv-kaarten en grafische kaarten vaak met DMA werken, dit schijnt een probleem te zijn in een DomU. Ik ben geen specialist maar probeer even te verwoorden wat ik er van heb begrepen.

Wanneer je OS de grafische kaart aanspreekt geeft hij een geheugen adres mee waarin de graka rechtstreeks zijn 'antwoord' kan wegschrijven (Direct Memory Access).
Het OS kiest een stukje geheugen voor hij zijn request naar de graka stuurt en reserveerd dat voor het antwoord. Maar het OS in DomU weet niet dat zijn geheugen niet bij 0 begint maar ergens halverwege omdat de 1e helft door Dom0 in gebruik is.

Wanneer de graka de request ontvangt heb je een 'probleem' want het gereserveerde stukje geheugen zit in DomU maar de graka weet dat niet. Wanneer de graka zijn antwoord naar de geheugenlokatie probeert te schrijven kan het best zijn dat Dom0 de reaktie krijgt.
Hm, ik lees het hier inderdaad in de XenFaq... dat is erg vervelend.
Een citaatje:
In DomU, how can I use 3D graphics.

In a para-virtualized domain, you could give access to the graphics card by hiding the device from Dom0 and giving the DomU of choice access to this card. [Sorry, I don't know more details than this - maybe someone else can fill in more here. --Mats Petersson] The frequently asked question comes from people who want to use Windows in a HVM domain to play games or run high-end 3D graphics applications, and the answer here is "Not yet". The problem here is that the OS isn't loaded directly at address zero when it is a guest-OS (DomU), so we're lying to the OS about it's location (because most OS's don't quite understand the concept of memory that doesn't actually start at address zero). So, the OS thinks that it's been loaded at an address of, say, 0..256MB, but in reality it's been loaded at 256MB..512MB. When it then talks to the graphics cards, it will give the graphics card a physical address of somewhere between 0..256MB, which of course doesn't work for the graphics card - as it should really be reading somewhere between 256MB..512MB. So what can we do about it? There are a number of different solutions that could work: 1. Rewrite the graphics driver so that it understands Xen. Possible, but hard work, even if you have easy access to the source-code. Most graphics chip manufacturers do not have open-source drivers. 2. Use some alternative way to access the desktop, such as Remote Desktop. This doesn't necessarily work for real high-end apps or games, but it's probably better than the graphics card emulation in HVM. 3. Wait for hardware and software to support IOMMU. An IOMMU is a device that will support mapping memory addresses for a domian to some different address when that domain's hardware is being used. There is currently (high-end) server hardware that support this, but no desktop machines. Expect this to change in the future, but not very soon.
Dit verhaal is dus inderdaad hetzelfde met de rest van de hardware... En als ik de uitleg goed begrijp heeft elke hypervisor dit probleem. Tenzij er ineens een steengoeie emulatie beschikbaar komt lijkt het er op dat het dus niet gaat werken.
Iemand nog andere tips?

“Life is tough, but it's tougher when you're stupid.” - John Wayne | Last.fm


  • stefklep
  • Registratie: Januari 2003
  • Laatst online: 24-12-2025

stefklep

((Stefklepje))

Ik heb een tijdje terug dit geprobeerd met een tv kaart en werkt opzicht wel, maar aanraden is een ander verhaal.
Pagina: 1