Options

Having fun (not really) with ESXi PCI passthrough

MacGuffinMacGuffin Member Posts: 241 ■■■□□□□□□□
I'll start with my questions then add some background.
Has anyone been successful in passing through a video card (with sound) to a Linux guest?
Regardless of the OS how do you handle sound on a guest that has a passthrough video card?

It started the day a Dell PowerEdge T710 followed me home. I had seen people do PCI passthrough to get a "physical-ized" VM by passing through video and USB cards. I've seen this has been done to get a multiple headed "LAN party in a box" machine. My goal is to get a heavy duty general use desktop while also getting to play with ESXi. (The server has many times more RAM and processor than any of my other computers, even slicing off a bit for the physical-ize VM gets me plenty for both.) The setup looked simple enough, get a video card and USB card, install them in a ESXi box, pass them through to a guest VM, install OS, and party on.

I'll try to keep a long story short. I tried one video card (a relatively cheap "gamer" card with a Radeon R5-220 chip) with an Ubuntu guest VM. I couldn't get it to work. I decided I needed a real "pro" card and bought one online, a FirePro W2100. Couldn't get that to work either. I looked again at how others got it to work and noticed that they all used some version of Windows. So I try Windows. Just for giggles I added both the "pro" and "gamer" cards to the VM. After adding the right combinations of drivers I got the "pro" card to work... and the "gamer" card too.

I got the "gamer" card to pass sound but the "pro" card would not. The "pro" drivers complain about a DisplayPort to DVI adapter and DVI to HDMI cable connecting it to the monitor and refuses to pass sound. I satisfied myself that both cards were capable of doing passthrough and I thought that I'd have more luck getting Linux to overlook (or not even detect) the DVI conversion and pass sound to the display. I try again with the "pro" card in an Ubuntu VM and could not get it to work.

I decided to eliminate a variable here and I tried to install Ubuntu on the metal, with the same server and video card but only a different hard drive to preserve my ESXi install. (Note to self, don't do that again, ESXi is VERY sensitive about pulling RAID drives and plugging them back in.) After playing with that for long enough to satisfy myself that getting the card working on Ubuntu was far from trivial I gave up and put ESXi back together as best I could after pulling the RAID drives.

I have another computer running Ubuntu on the metal with a working PCIe card, but that's an NVidia chip while the card I could not get working is an AMD. I thought I'd switch the cards but quickly realized that the NVidia is a x8 card and the AMD a x16. I could put the x8 card in a x16 slot but the other computer had slots keyed differently and the x16 card wouldn't fit. I could put the x8 NVidia in the ESXi machine temporarily just to see if it'd work but decided I wasted enough time. Also, if it did work then that wouldn't help me much. I proved the problem was not hardware but software.

After I get a proper DP-to-HDMI cable (or a new monitor with DisplayPort) for the W2100 I should be able to get video and sound from that with Windows but I'd still like to use both cards. If I thought it would help me I could create two separate "physical-ized" Windows VMs on my ESXi server but I don't see the point right now. If I'm going to do this I'd want to run a different OS on the other VM with passthrough, preferably Ubuntu or some other brand of Linux. Which gets back to my original question, has anyone been able to successfully get a Linux VM to drive a video card on ESXi with PCI passthrough?

My other question does not need nearly as much background. I've found that switching a single HDMI display among several machines means I get sound only from the computer that is also displaying video. I've come to like my current set up of a mixer box combining the analog outputs of the different machines on my desk to drive a set of speakers. This lets me hear music or podcasts, or just alert beeps, from a computer that is not currently driving the display. I'd like to keep that functionality as I upgrade my computers.

In my research so far I've found a lot of different ways to solve this problem. Before I invest a lot of time and money in trying the different options I thought I'd pick brains on how to best do this. The desire is a solution that will allow me to get sound from a VM hosted on ESXi, as these solutions will most likely work on a physical machine too I may use them outside of ESXi as well. What has worked for you to get sound from a VM hosted on ESXi?

I apologize for the lengthy post. I wanted to give enough background to show what I tried already and avoid a lot of back and forth over the more obvious solutions.
MacGuffin - A plot device, an item or person that exists only to produce conflict among the characters within the story.
Sign In or Register to comment.