Proxmox VM as Steam in-home stream server

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Kybber

Active Member
May 27, 2016
138
43
28
48
I've got a Steam Link in my living-room, a desktop/gaming PC in my home office and a recently deployed server tucked away in the basement. So far my kids and I have streamed from the desktop-PC to the Steam Link, which works great, but since that ties up the desktop PC I'd much rather stream from the server.

The server spec is the well-known Natex-bundle consisting of an Intel S2600CP2J motherboard + dual Xeon E5 2670 SR0KX + 128GB RAM mounted in a Supermicro 836 chassis. For most games this CPU should be sufficient, but I'll obviously need a GPU to be passed through to the VM which will be running Windows (probably Win 10). The server runs Proxmox.

After reading various threads in this forum and elsewhere, I think I have a fairly clear view of what needs to be done to get this to work, including adding a HDMI display emulator, bypassing the Windows login-screen, using a virtual sound card driver and such (My headless steam host / Steam Link setup - Kind-Of-a-How-To :: Steam Link General Discussions). But there are some concerns I was hoping someone could help me with. In no particular order:

a) The CPUs have Vt-d support, so passing through a GPU should work. But how do I ensure that the Proxmox base system uses the mainboard Matrox GPU so that the gaming-GPU can be passed through with no issues during boot?

b) Many sources claim that consumer-type cards from Nvidia (read: GTX models) cannot be used in VMs, but I have also read that this is not true for KVM. Can anyone confirm or deny this for KVM in Proxmox? I have a Radeon HD 7950 that hopefully still works, but if not then I'll need to consider getting a new card, and having choices is always a good thing.

c) How will the built-in VNC server in KVM play along with the gaming GPU? Do I need to install a separate VNC server on the host, as explained in the link above, or will I be able to use Proxmox to VNC into the server and see the desktop as generated by the physical pass-through GPU?

d) Any other gotchas I need to think about?

If I can't make this work in VM for any reason, then I have two options:
1. Install a GPU in a Dell r210 that is currently not in use and install Windows on bare metal. Primary issue is probably going to be finding an appropriate GPU since it needs to be single-width and half-length.
2. Mount my current desktop-system (complete set of parts for new server are currently in the mail) in a cheap rack-chassis and install it in the basement alongside the primary server.

These two options may actually be better than a VM energy-wise since I will be able to use sleep/power-off and WoL to bring the server up on demand (this is supported by Steam Link). But since I already have a capable server I'd sort of prefer to use it instead and sell off hardware I no longer need.

Hoping to get some feedback from people who have done this sort of thing themselves. I'll be sure to report back how I get along.
 
Last edited:

Jeggs101

Well-Known Member
Dec 29, 2010
1,529
241
63
For gaming, just use Windows bare metal than hyper-v, VMware workstation or virtualbox.

C) You don't want to play games over Proxmox VNC
 

Kybber

Active Member
May 27, 2016
138
43
28
48
Oh, for sure - I do not at all intend to play games over VNC. What I want is to to stream from the server to the Steam Link using Steam's built-in streaming system. But I also need a method to access the Windows-desktop every now and then since Steam Link goes blank whenever UAC pops up.
 

cptbjorn

Member
Aug 16, 2013
100
19
18
I've been using a VM for gaming w/ GPU passthrough since ESXi 5.0 days. First by passing through a USB controller too for keyboard and mouse, and now with Steam streaming. I use a TightVNC server running on the VM which seems to keep the GPU active and lets me set resolution and stuff, I have nothing plugged in to the GPU outputs w/ no dummy plug necessary. VNC access is also good for when Steam updates... For GPUs I've always used AMD - 5850, 5870, 7950 and r9-270x have all worked without too many issues.

I haven't tried it yet on Proxmox but I'm going to at least test it with my next build which is also a dual socket 2670, this time with an RX470 for the GPU. Hoping to test some more this weekend.
 
  • Like
Reactions: wsuff and gigatexal

Kybber

Active Member
May 27, 2016
138
43
28
48
@gigatexal: What were the main issues you encountered?

@cptbjorn: Thanks for sharing. If it can be done in ESXi, then it should also be possible in Proxmox. It may be a bit of a hassle, but I would be surprised if it can't be done. Please share your experience if you get a chance to test. I'll do the same, but will probably not have time until earliest next week.
 
Last edited:

Kybber

Active Member
May 27, 2016
138
43
28
48
Well, I've met the first hurdle already: The only PCIe x16 connector on the S2600CP2J is located just north of some memory slots. So unfortunately only half-length cards will fit. Since that means I can't use my old Radeon 7950 even for testing purposes, I'll need to buy a new card. Guess I'll just wait until XFX or HIS (or someone else) release their single-width Radeon RX 460 since those should also fit in a Dell R210, which is my other option if Proxmox fails.
 

rubylaser

Active Member
Jan 4, 2013
846
236
43
Michigan, USA
Well, I've met the first hurdle already: The only PCIe x16 connector on the S2600CP2J is located just north of some memory slots. So unfortunately only half-length cards will fit. Since that means I can't use my old Radeon 7950 even for testing purposes, I'll need to buy a new card. Guess I'll just wait until XFX or HIS (or someone else) release their single-width Radeon RX 460 since those should also fit in a Dell R210, which is my other option if Proxmox fails.
Just run the card in one of the other x8 slots. There is almost no performance loss on even the most modern cards, so your 7950 should work great in one of them.
 

Ninja1283

Member
Jul 10, 2016
46
3
8
39
Well, I've met the first hurdle already: The only PCIe x16 connector on the S2600CP2J is located just north of some memory slots. So unfortunately only half-length cards will fit. Since that means I can't use my old Radeon 7950 even for testing purposes, I'll need to buy a new card. Guess I'll just wait until XFX or HIS (or someone else) release their single-width Radeon RX 460 since those should also fit in a Dell R210, which is my other option if Proxmox fails.
Just notch out the back of one of the many x8 slots and put the card in one of the slots not blocked by the memory.

If you don't want to cut your MB slots, you should be able to use a low profile x8 to x16 adapter or ribbon cable extender.
 

Kybber

Active Member
May 27, 2016
138
43
28
48
I don't really feel comfortable taking my Dremel to the mainboard of what is to be my primary server over the next few years. However, I may consider making a cut in the 7950. If I can get hold of an adapter/ribbon cable extender quickly, then that is definitely an option.

Thanks for the input, guys :)
 

EffrafaxOfWug

Radioactive Member
Feb 12, 2015
1,394
511
113
I don't really feel comfortable taking my Dremel to the mainboard of what is to be my primary server over the next few years.
Much easier to use a scalpel or a craft knife to cut the back off the PCIe slot than anything else (assuming PCIe riser isn't an option of course). You only need to cut out the end bit from the slot, and you can put something solid between your knife and the motherboard if you're worried about exerting too much force.

And I'd recommend not cutting anything until you've verified that the area behind the PCIe slot is free of obstructions else you might find yourself with a chopped up something or other that can't fit the graphics card anyway...

Edit: As rubylaser mentions, from the pics I see the S2600CP2J already has two clips for 16x cards at the back of two open-ended (i.e. not cutting needed) 8x slots south of the 16x slot; looks like the top one might interfere with the DIMMs for CPU0, have you tried using those two?
 
  • Like
Reactions: rubylaser

Kybber

Active Member
May 27, 2016
138
43
28
48
Edit: As rubylaser mentions, from the pics I see the S2600CP2J already has two clips for 16x cards at the back of two open-ended (i.e. not cutting needed) 8x slots south of the 16x slot; looks like the top one might interfere with the DIMMs for CPU0, have you tried using those two?
Holy crap - I didn't even notice that! Thank you so much for pointing that out. My plans for the evening just changed from building the new desktop (parts just arrived today) :)
 

EffrafaxOfWug

Radioactive Member
Feb 12, 2015
1,394
511
113
Well crap, now I feel like I've ruined your evening of running around in full surgical garb, wielding a knife and cackling "It's ALIVE, it's ALIIIIIIVE!!!!!!". Maybe see if you can graft on a human brain by way of recompense? :)
 

RyC

Active Member
Oct 17, 2013
359
88
28
This might not be much help, but I did successfully pass through a Radeon 7870 to a Windows 10 VM in Proxmox on the S2600CP. However, I didn't do any benchmarking or stability testing. I do use the 7870 passed through to a Windows 10 VM on ESXi regularly (on the S2600CP), and the Steam Link does work in that case.

The Proxmox VNC console was only used when installing Windows. After Windows was installed, I disabled the Proxmox "display" in the display properties and just used RDC/the connected monitor from the 7870 (same in ESXi).
 

Kybber

Active Member
May 27, 2016
138
43
28
48
Sorry for the late update. My old Radeon 7950 turned out to be dead so I ordered an RX 470. Then I took a long Christmas holiday, and played with the Oculus Touch and other toys. I haven't even visited the forums since then. But last night I got to work on this, and I am happy to report that so far it seems to be working perfectly. :)

As @RyC also experienced, Proxmox VNC does no longer work after passing through the GPU. I installed tightvnc (while not passing through the GPU), and used an HDMI dummy (fit-Headless) to fake a connected screen. First attempts of streaming to the Steam Link in my living room were perfectly smooth. I'll check out a few games over the next days and weeks to see if there are any resource shortages. Unfortunately 3dmark refuses to work, so I wasn't able to easily obtain tangible test results.

My only issue right now is fitting the GPU in my 3U chassis. The Sapphire RX 470 4GB is low enough to fit inside, but the PCIe 6 pin power cable is too tall for the lid. Even though I obtained a flat adapter, it still needs another 5mm or so shaved off before I can put the lid back on.

I should probably mention that since installing the GPU I have also been experiencing issues during booting of the host. It seems that the HDs and SDDs sometimes don't get enough power. I've tried to remove the GPU, but it still happens so may be totally unrelated.
 
Last edited:

Rand__

Well-Known Member
Mar 6, 2014
6,634
1,767
113
As @RyC also experienced, Proxmox VNC does no longer work after passing through the GPU. I installed tightvnc (while not passing through the GPU), and used an HDMI dummy (fit-Headless) to fake a connected screen. First attempts of streaming to the Steam Link in my living room were perfectly smooth. I'll check out a few games over the next days and weeks to see if there are any resource shortages. Unfortunately 3dmark refuses to work, so I wasn't able to easily obtain tangible test results.
Whats your display resolution and refresh rate? I read that was rather limited with the fit adapter...
 

Kybber

Active Member
May 27, 2016
138
43
28
48
1920x1080@60Hz. After purchasing the adapter, I found that there is also a fit-Headless GS at twice the price which goes to 120Hz (full overview of resolutions and frequencies). I can't imagine that the TV is capable of those frequencies, and 60fps is in any case plenty for couch-based Xbox-controller games. Another advantage with the GS is that it supposedly also emulates HDMI audio, so there's no need to use VB-Audio Virtual Cable (which is free, so no biggie).
 
Last edited: