VMware Cloud Community
taylorjonl
Enthusiast
Enthusiast

VMDirectPath and ATI Radeon

I am using VMware ESXi and I am trying to setup a guest that is Windows 7 that will have an ATI Radeon video card passed through to it.  I actually had this working on a previous system but I had to reinstall.  Now when I do this the guest fails to start and I get the following:

Error message from localhost.XXXXXXXXXXX:
PCIPassthru 004:00.0: Guest tried to (null)map
32 device pages (with base address of 0xb5d20)
to a range occupied by main memory. This is
outside of the PCI Hole. Add pciHole.start =
"2909" to the configuration file and then power
on the VM.
error
12/23/2010 1:04:36 PM
media
User

When I do as it asks, the guest now starts but gets an immediate BSOD concerning memory management.  Any ideas on why this is occuring and why it worked at one point but now it fails?

814 Replies
Guizado
Contributor
Contributor

I havent gotten to that part yet lol.

Trying to get the damn HDMI Audio to work now after about a few days trying to get the VGA to passthrough.

Do you passthrough the HDMI Audio at all?? Just real need to know if  with your card you can manage to vga passthrough to Linux with the HDMI audio also passthroued, or if in windows if you get a "code 10" error on the High "Definition Audio Device" if you passthrough it.

Thanks

Reply
0 Kudos
mindless728
Contributor
Contributor

i haven't checked to see if it actually works (as I use a USB headet for everything), but passing in the HDMI sound card on my 7970 does not show any errors

Reply
0 Kudos
vintagedon
Enthusiast
Enthusiast

So I've been following this thread as a lurker for a couple of weeks, and just wanted to share my specific success story.  My eventual goal was to build a ESXi cluster that was not only a lab for work (I'm a Windows/Linux Systems admin for an enterprise hosting company), but also allowed me to virtualize some of my home servers and HTPCs.  To do this cost-effectively, I went with all AMD hardware (a mix of server and desktop boards), and ended up with a 3 node, 32 core, 128GB ram cluster.

You can also see a more detailed version of this with pictures of the build and screenshots of the ESXi screens at: http://thehomeserverblog.com/esxi/esxi-5-0-amd-whitebox-server-for-500-with-passthrough-iommu-build-...  I'm also compiling a list of vetted builds for ESXi whiteboxes, and I'd love to have anyone add any specific builds there that they have running.

The most success I have had is with a whitebox I built from consumer items.  Considering that it took a bunch of research and some failures along with it, I thought I would post my list and specific configuration in case someone wants to duplicate or learn from this.  Although I did have some headaches here and there, over and above, this has been a painless build.  Note that I'm running 4 GB NICs in every node simply because this is a lab, too, and I've got all my traffic properly segregated, but they are not at all necessary in the long run.

With one of the nodes, I experimented with passthrough, and got not only a domain controller running with 8 2TB drives passed through to it (4 from the mobo, 4 from a RAID card), but a working HTPC with video card that functions as my primary XBMC HTPC and gaming center for the living room (Steam, MAME, Dolphin, etc).  Passed through a video card and USB ports, and ran a USB-->CAT6 to a powered USB hub in the living room.  All of this is in a 2U case in a custom-built home server rack.  It's all working stable, of course with a few limitations.

My hardware list ended up like this:

Motherboard: ASRock 970 Extreme3
CPU: AMD FX-8120 Zambezi 3.1GHz Socket AM3+ 125W Eight-Core
RAM: 32GB (4x8GB) DDR3-1333

The slot configuration on the mobo looks like this:

PCI-e x16: Radeon HD6670 (Passthrough to VM)
PCI-e x4 : LSI SAS3041E 4-Port SAS/SATA PCI-e x4 (Passthrough to VM)
PCI-e x1 : GB NIC (RealTek 8168, used by ESXi host)
PCI-e x1 : GB NIC (RealTek 8168, used by ESXi host)
PCI : GB NIC (RealTek 8169, used by ESXi host)
PCI : ATI Rage XL Pro 8BM PCI Video Card (Console Video)

Drives:

Interestingly enough, if you passthrough the on-board SATA controller on this board (there are 5 SATA ports), the 5th port actually stays available for use to the ESXi host. This is nice, because, as you know, VMs with passthroughs are not available for VMotion anyway.  This allowed me to install ESXi to a hard drive, and have a local datastore for the HTPC, which wasn't going anywhere anyway.  This freed up the other USB ports for passthrough if I wanted them.
"Local" Drive as Datastore: 1TB Hitachi Ultrastar
"NAS" Drives Passed to VM: 8 x 2TB WD Green Drives

HOMESERVER

The first of two "passthrough" VMs in this setup is my domain controller/game server/NAS.  It's running SBS 2011 Essentials, and has the motherboard SATA controller passed through as well as the LSI card for a total of 8 x 2TB green drives.  This worked flawlessly, and required not a bit of configuration.  The SATA contoller and LSI controller "just worked".  Assigned them, booted up, Windows installed the hardware, and it was off and running.  Used FlexRAID to software RAID these drives into a single ~12.75TB drive that I keep my media on (movies, TV, music), profiles for the house accounts, and serves Windows shares out for various folders. In addition, it runs a in-house WoW server and Minecraft server.

HTPC

The second and final "passthrough" VM on this node is the primary HTPC for the house.  This has Windows7 Ultimate 32bit installed and runs XBMC, Steam (w/~200 games), MAME, Dolphin Emulator, and a small host of other games and emulators.  The HD6670 showed up as two cards (one dependent on the other), so both are passed through.  The second is the HDMI sound card.  Had some initial flakiness with the HDMI sound, but after two reboots once I installed the drivers, this seemed to disappear.  Video/sound runs over a 50' shielded HDMI cable to my TV in the living room.  Once I had video on the TV, I selected it as my primary device and completely disabled the "other" display, which is the console.
USB also works, which I'm running USB over CAT6 (with an adapter) where I hooked up a wireless HTPC keyboard, Xbox 360 Wireless Controller PC Adapter, bluetooth adapter for my WiiMotes (Dolphin emulator), my HTPC remote, and so on.  No issues here that I've noticed either.  Hardware acceleration, according to XBMC is working, and I can watch 1080p YouTube videos without issue.

Thoughts About the Build

RAM: I have not been able to get above 2GB of RAM on the HTPC VM and remain stable, but I haven't had much incentive.  The 2GB works for my particular application.  That said, my next project is to virtualize a work computer running 3 monitors using this same scheme, and I *will* need more RAM with it.  Thus, I'm going to be pushing the limits there to see what I can do.

USB: I realize my application is pretty specific, but I'm running USB --> CAT6 (my whole house is wired with shielded CAT6A) to a powered USB hub, and this works wonderfully.  I run about 50' and get 10 USB ports at the end.  Nothing I've plugged in has failed or given me any issue.

Sound: HDMI sound was pretty flaky for a while, and I had almost gave up when it started, out of the blue, working.  However, I was using a USB 7.1 surround sound card that was working perfectly over USB and pumping sound to my home theatre sound system.

Cost of the Whitebox: Total w/deals off eBay was $530.  The LSI card was $15, video card was $8, GB NICs were $6, RAM was $120 and so on.  I consider this a great deal for a 8 core, 32GB ESXi node.  I have two of these, and a ASUS KGPE-D16 running dual 6128s (16 cores total) w/64GB of
RAM.  Other equipment for the lab includes two 2-bay NAS boxes delivering iSCSI targets for high availability, 2x24 port Gigabit Smart switches, a Juniper SSG5, and a 3000VA rack mount UPS.  Total lab cost was just under $2,000.

Next project: With the success of the passthroughs, I'm moving on to virtualizing the PCs in the house, and the other HTPC.  My eventual goal is to have all but a single PC in the house virtualized, all running on passthrough video and USB.  I'll continue to share anything I learn as I move forward.

DSCF1657 - Copy.jpg

As Always, VintageDon
Splinterproof
Contributor
Contributor

Hello and a big thanks to everyone sharing their experience in this thread.
Thought I'd post my VM gaming lab build here:
MB:    Asus Crosshair IV Formula 890FX
CPU:   AMD Phenom II 955BE
RAM:   Kingston HyperX 2x4Gb KH1600C9D3K4
GPU1:  Asus Radeon EAH6950 DCUII
VM OS: Windows 8 Pro
This is running on ESXi 5.0.0 build 914586 with a Intel PRO/1000PT NIC.
ESXi is installed on a cheapo Kingston USB stick and as a test VM datastore i use a Intel 330 SSD 180GB.
VM Tools was installed directly after the OS.
Did vga passthrough and installed the latest AMD drivers 13.1 but selected custom installation and used only the drivers, no CCC or additional software.
VGA passthrough works actually really well. Had initially some slight problems but after changing the settings of the VM to 2gb ram, 1 socket with 4 cores i have been playing many hours now of Battlefield Bad Company 2 and Battlefield 3 without any problems. 20-30 normal shutdowns, reboots with no problems. VM is set to autostart after 2 minutes and if i didn´t know this was a VM i wouldn´t have given it much thought.

I then did the PCI passthrough of a ST Lab cheapo USB 2.0 card.
Connected to this USB card is a D-Link Usb 5-ports hub with keyboard, mouse and Asus Xonar U3 soundcard.
Windows 8 just recognized everything connected and installed all the drivers without me even lifting a finger.
Just started learning ESXi but reading comments in this thread has really helped me a lot.
-Kenneth
Reply
0 Kudos
BCHNMS
Contributor
Contributor

My two cents after two days of struggle...

CPU : Intel 3770s

MB : Intel DQ77MK

RAM : 4x8 Gskill

GPU : ATI Radeon 6450 in 16x PCIe

ESXI 5.1: Fail.

No. Way. To get it working.

Both nodes (GPU and HDMI Audio) show up correctly with full names in ESXI.

Card gets detected by Win7 x64, drivers install correctly but... Display never gets detected.

ESXI 5.0u2: Win !

Both nodes show up with "default" device names in ESXI (will come back with a screenshot later), but passthrough works flawlessly on a Win7 x64 VM, through HDMI on a LCD TV. No CEC from the Radeon to use XBMC directly though, what a shame Smiley Happy

Reply
0 Kudos
shawndavis19
Contributor
Contributor

My goal is the same as many others, to have a Windows 7 VM for media center purposes, and like some I plan to only access the media over xbox360 extenders. With much appreciated help from so many contributors in this thread, I was able to passthrough an ATI HD 5450. The only problem I currently have, is recorded and live tv is pixilated/choppy. I was hoping someone could let me know if my video card could be the issue, even though I am accessing over an extender. If not the video, does anyone have any suggestions for better quality video? I have tried enabling flow control and forcing the NIC to 100Mb full duplex, but that didn't seem to help. I recently switched the vNIC from an E1000 to a VMXNET3 device, that did seem to help a little, but is still choppy. I also found a link about creating a registry entry for FastSendDatagramThreshold (http://blogs.vmware.com/performance/2012/10/turbo-charge-view-video-performance.html), which I added and tried a few suggested values as well but didn't see any change. Are there any other suggestions out there, is anyone getting good HD quality video on a Win7 VM with an HD5450 GPU? I haven't messed with the codecs too much yet, I tried with win7 default codecs and also with Shark's latest release. Thanks in advance if anyone has any suggestions, if I left out any key details, please let me know.

CPU = 2xE5670@2.93Ghz

RAM = 48Gb DDR3

Datastore = R5 3+1 15krpm SAS drives

GPU = Diamond ATI HD 5450

Tuner = Hauppauge WinTV DCR-2650

Reply
0 Kudos
champagnecharly
Contributor
Contributor

Not sure if it will help but you could look at dpc latancy checker. I just came across an article mentioning it and thought it may come in useful for the same purpose. Although 5450 is not that high end a card so 'maybe' ( I speak in ignorance) the card.

Good luck

Reply
0 Kudos
derickso
Contributor
Contributor

@shawndavis19

I would say it is possibly the video card, the rest of your machine is so fast I would suggest you just try a faster video card and see if it fixes the problem. I am using a 7750 single slot (http://www.newegg.com/Product/Product.aspx?Item=N82E16814150612), only $120 and it works great.

Reply
0 Kudos
vintagedon
Enthusiast
Enthusiast

I've been successfully doing this for a while now, and I did try a 5450, but found it to have choppy performance, similar to what you're having.  So, IMO, it's your card, not specifically your build.  You could always keep that for your default video for your console (I'm using simple 8MB ATI Rage cards for my console graphics)

The two cards I've successfully done HTPCs in a virtual machine with are the HD6450 and HIS Radeon HD6670 PCI-e x16 Low-Profile.  The latter card I used to pass through to a VM for my son to use as his daily desktop (in fact, I've virtualized all but a single physical PC in the house) and he does gaming on it at very respectable frame rates.

You can see more of my builds and experiences at thehomeserverblog.com

As Always, VintageDon
Reply
0 Kudos
derickso
Contributor
Contributor

@Don - Great blog, you have a great setup going. I'd love to read the video card article you refer to in your second build guide, any expectation on when that will be ready? I've also heard about recent success with ESXi 5.1.. that would probably make a good article as well.

Reply
0 Kudos
vintagedon
Enthusiast
Enthusiast

@derickso ... appreciate the complliments.  The blog is just me trying to be helpful.  This is very long thread, and trying to find solid information for building ESXi nodes with consumer grade hardware that's (a) cost effective in RAM/Cores to money ratios, and (b) verified compatibility is just hard.  So, I just thought I would share vetted builds that I had done.  For a 8 core, 32GB RAM box for $400 (that's not including the cost of your case), you just can't beat that.

Anyway, I'm almost done with my post on the video card work, and have had quite a few tips from traffic on stuff they are doing, so I'll incorporate that.  I've been sick this week, so I didn't have time to post it.  Expect it this coming weekend, plus some additional hardware I've found that works, including two new AMD motherboards.

As Always, VintageDon
Reply
0 Kudos
shawndavis19
Contributor
Contributor

Thanks a lot champagnechar, derickso, and vintagedon.  I ordered the 7750 from the link derickso provided, hopefully this clears up my video stutter, and if it doesn't by son will get some gaming use out of it instead.  I'll report back the success or failure once it is delivered. Thanks again..

Reply
0 Kudos
shawndavis19
Contributor
Contributor

7750 arrived last night, but unfortunately it did not solve my problems.  I now believe my issue is with my tuner or the way I am assigning it to the VM.  It is a hauppauge dcr-2650, is anyone out there using the same?  After the 7750 did not solve my issue I thought for sure it was network related, but to rule out the tuner, I copied a recorded show to a PC I am hoping to get rid of, and the video was skipping at the exact same spots where as other shows recorded from the PC are all fine.  To add the tuner to the vm, I just add a USB controller device then add the dcr2650.  I tried using passthrough of the USB ports but then the dcr2650 wouldn't show up on te vm and is not listed as a passthrough device.  Is my tuner assignment wrong, does it need to be passed through and possibly causing record issues if I don't?

Reply
0 Kudos
derickso
Contributor
Contributor

It should be fine if you are passing through the USB controller (I would suspect anyway). Does the VM have sufficient RAM and disk bandwidth to record effectively? Are you running any other stuff in the VM, like a virus scanner or anything?

Reply
0 Kudos
GBowman
Contributor
Contributor

I have all my Tunners passed through as PCI/PCIe devices not as USB.  Aktohugh my older PCI cards do consist of a USB controller and then 2 USB devices I have never tried to pass them through as USB devices instead passign the whole controller throug to the Guest VM.

Have you tried DPC Latency Checker?  

Reply
0 Kudos
shawndavis19
Contributor
Contributor

And that was my problem, I didn't realize I could add USB connected devices, as PCI devices to my VM.  I passed through the USB deivces, then added the ports as PCI devices and now thatnks to you guys, my DCR-2650 records and plays LiveTV without stutter.  TV streaming may have worked fine with the HD5450, but for $120, I quite like the 7750 and will stick with it.  Thanks again to everyone that provided input in this thread..

Hate to press my luck, but was wondering if anyone could help me map my USB ports, so I only passthrough the ones I need to.  I have my DCR2650 and a Cisco tuning adapter connected to the 2 rear USB ports.  lsusb reports the following, I was hoping someone could help me figure out which devices I need to passthrough, so that I only assign the 2 USB ports I am actually using.

# lsusb -v | grep -e Bus -e iSerial
Bus 05 Device 03: ID 0624:0248 Avocent Corp.
  iSerial                 3 20080519
Bus 05 Device 02: ID 05a6:0008 Cisco Systems, Inc.
  iSerial                 2 TR
Bus 05 Device 01: ID 1d6b:0001 Linux Foundation 1.1 root hub
  iSerial                 1 0000:00:1d.0
Bus 01 Device 03: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
  iSerial                 0
Bus 01 Device 02: ID 2040:e300 Hauppauge
  iSerial                 3 20112FE5
Bus 01 Device 01: ID 1d6b:0002 Linux Foundation 2.0 root hub
  iSerial                 1 0000:00:1a.7
Bus 06 Device 01: ID 1d6b:0001 Linux Foundation 1.1 root hub
  iSerial                 1 0000:00:1d.1
Bus 04 Device 01: ID 1d6b:0001 Linux Foundation 1.1 root hub
  iSerial                 1 0000:00:1a.1
Bus 03 Device 01: ID 1d6b:0001 Linux Foundation 1.1 root hub
  iSerial                 1 0000:00:1a.0
Bus 02 Device 01: ID 1d6b:0002 Linux Foundation 2.0 root hub
  iSerial                 1 0000:00:1d.7

Reply
0 Kudos
GBowman
Contributor
Contributor

Its trial and error I am afraid.  All of my onvoard USB devices are passed through and yours looks to be the same as mine, each USB 2.0 controller has 3 USB hubs.  I pass through the USB 2.0 controller and 3 of the hubs to each VM using USB's.  If you are running out of PCI passthrough slots to the VM you can pass through less, as you say each hub is 2 ports but I have found you must pass through the 2.0 addapter to get it running at 2.0 speeds.

Reply
0 Kudos
shawndavis19
Contributor
Contributor

That is the painfully slow process (due to reboots) I took as well, was just hoping maybe there was a way to make sense of it.  I have one issue remaining, but it is certainly not pressing and I will get to it eventually.  If I try to access the VM with the passed through video in view 5.0, it gives me a black screen and then disconnects with a connection error.  I believe this is related to the driver for the default video device assigned to the VM, but I will mess with that some other time.  Thanks once again to everyone for their help and input, this is a great thread.

Reply
0 Kudos
shawndavis19
Contributor
Contributor

Still rock solid, but unable to connect to VM when video is passed through and connecting with View client 5.1. Anyone out there using View and able to connect to VM that has video passed?  I get the popular black screen and I can hear the windows startup audio, and the the screen disconnects after a few seconds.  This worked fine before I added the video.  The view black screen issuess are common, but I can't find any info when it is trigged by video passthrough.  Most seem to be firewall related, but mine is definitely caused by video, I verified with multiple VM's, and as soon as I asisgn PCI video, I can no longer connect.  Thanks if anyone has any info.

Reply
0 Kudos
Patwrik
Contributor
Contributor

I have the same board, but with an i5 3470 and I am also running a raid card flashed to a simple HBA.  Unfortunately for some reason the board doesnt support the raid card with a graphics card in the x16 slot. So I am forced to flip flop the cards.

The question i have, can you test the card passthrough via the 4x pcie slot?  It would help me a lot!  Thanks...

My two cents after two days of struggle...

CPU : Intel 3770s

MB : Intel DQ77MK

RAM : 4x8 Gskill

GPU : ATI Radeon 6450 in 16x PCIe

ESXI 5.1: Fail.

No. Way. To get it working.

Both nodes (GPU and HDMI Audio) show up correctly with full names in ESXI.

Card gets detected by Win7 x64, drivers install correctly but... Display never gets detected.

ESXI 5.0u2: Win !

Both nodes show up with "default" device names in ESXI (will come back with a screenshot later), but passthrough works flawlessly on a Win7 x64 VM, through HDMI on a LCD TV. No CEC from the Radeon to use XBMC directly though, what a shame Smiley Happy

Reply
0 Kudos