I turned my gaming PC right into a Proxmox server and located a complete new use for its energy
Proxmox is a bit of a rabbit hole, and there are a whole lot of issues you are able to do with virtualization and containers. One of the more unusual selections to make use of Proxmox for can be as a gaming server, which works due to GPU passthrough, one thing which has at all times fascinated me.
Armed with a modestly highly effective AM4 system, I experimented with digital machine gaming and was stunned at how good it turned out to be. However, as you may shortly discover out, setting it up was a little bit of an ordeal, largely due to my particular {hardware} mixture.
Using a gaming PC as a Proxmox server
Need to show off the RGB first
It may not be essentially the most power-efficient setup on the market, however turning my gaming PC right into a Proxmox server has been reasonably enjoyable, and dare I say, helpful. The system in query is an AM4-based Ryzen 5600G system, paired with 32GB RAM and an RX 9070 (non-XT).
It’s an ordinary desktop PC by way of and thru, and even comes geared up with fancy RGB lighting, which I despise. That being stated, remodeling this right into a Proxmox field was a little bit of an concerned course of.
I began by flashing Proxmox utilizing a Ventoy stick, opting to put in it on a 120GB SATA SSD. Proxmox itself takes up little or no area, and I’d a lot reasonably use the motherboard’s twin M.2 slots for sport installations and digital machines.
As for the BIOS, there wasn’t a lot to tinker with, other than enabling virtualization settings like SVM and IOMMU. You may additionally tweak a few of the CPU undervolting sections to avoid wasting on extra energy.
I deliberate to make use of my RX 9070 for virtualization, and that meant I wanted a secondary GPU for Proxmox to hook onto. Given my mATX motherboard and case, slotting in another GPU was impossible.
So I stored my Ryzen 5600G as-is and used its built-in graphics for the Proxmox host. The RX 9070 can be “borrowed” from the server after which transferred onto a digital machine for some GPU-accelerated gaming as and when wanted.
This utterly lifts the RX 9070 from the Proxmox server for GPU passthrough. If you wish to cut up your GPU into a number of, smaller vGPUs, you’ll want a really particular sequence of GPUs.
With every thing deployed, Proxmox booted and ran with out hitches, save for an odd drawback. The RX 9070 handed by way of to a digital machine simply high quality at first, however then instantly fell off the bus. This “locked” it right into a limbo-like state, making it mainly unusable, the place the one repair was to drive an influence reset.
The RX 9070 wants a hook script to work correctly
Once it’s arrange, there aren’t any additional points
AMD GPUs endure from a nasty reset bug on Linux. In quick, unbinding an AMD GPU in Linux from the vfio-pci driver causes it to kind of drift round, certain to nothing. This “limbo state” persists till a full reset.
This makes GPU passthrough a little bit of an annoyance, however there have been a couple of fixes. Unfortunately, these fixes are everywhere, with a couple of variants. The most typical repair is a vendor reset, but it surely’s principally tailor-made to RDNA 2 GPUs, so my RDNA 4-based RX 9070 could not use this patch.
Technically, a vendor reset is not wanted for my RX 9070 (since it’s fully unsupported), however the GPU nonetheless did not initialize cleanly it doesn’t matter what I attempted.
Out of choices, I turned to Claude for recommendation (together with a take a look at the Proxmox boards). Turns out, I wanted to create a hook script that dynamically binds and unbinds the amdgpu/vfio drivers for a GPU-passthrough digital machine.
The script runs each time you cleanly shut down the digital machine and ensures that the RX 9070 doesn’t get caught. It’s virtually important for all GPU passthrough digital machines, and is a tough requirement.
Trying out some digital machines on Proxmox
Windows and Bazzite, for starters
Now to really getting the digital machines up and operating. I selected to create two: one for Windows 11 LTSC and the opposite for Bazzite, so I may have a extra SteamOS-like expertise. Creating the digital machines was fairly simple utilizing the GUI, though I did should manually move the RX 9070 and ensure so as to add the hook script.
For the digital sources, I allotted 8 digital CPUs (out of 12) and 16GB RAM to every digital machine. I stored storage at a minimal for the OS, giving 50GB to Bazzite and 120GB to Windows. I additionally handed by way of one of many NVMe drives hooked up to the homelab as a shared sport drive.
One set up and some updates later, I used to be able to rock. As for efficiency, I actually couldn’t inform a distinction between operating video games natively and on the digital machine.
Given that the 5600G runs on PCIe 3.0 (and the RX 9070 is a PCIe 5.0 card), there must be some noticeable efficiency loss. I personally assume it performs simply high quality for the weaker CPU in place, and it is a compromise I can reside with.
Further upgrades and a few compromises
Obviously, I gained’t be utilizing two digital machines on the similar time. This GPU cannot be cut up into vGPUs, and I don’t have sufficient RAM to do it both. That stated, operating a headless, gaming-capable Proxmox server (whereas different containers run within the background) labored surprisingly nicely, and it’s a setup I’m eager to maintain utilizing.
As for future upgrades and optimizations, a 5950X could be so as, for its sheer 16-core, 32-thread CPU depend alone. A shift to an ATX-sized board may also be so as, with an X570 trying like the best choice proper now (to suit a secondary GPU). Perhaps a venture for an additional day.


