Single GPU Passthrough 2600/RX580

Looking to build a VFIO single gpu passthrough machine.

MB: Gigabyte B450M DS3H-CF
CPU: Ryzen 5 2600
GPU: AMD RX580

Despite searching pretty heavily, I can’t seem to find a guide that focuses around this combination, or at least not anything recent or that claims to have a working result. Anyone know of a guide written for this setup? Can’t be too uncommon, surely I just missed it.

I am pretty sure the reason you did not find any is that it is not really viable.
Ryzen 2 does not have APUs yet and as such you need to use 2 graphic cards for reasonable VFIO.

Ryzen 2 does not have APUs yet and as such you need to use 2 graphic cards for reasonable VFIO.

“Single GPU Passthrough”

Background

Historically, VFIO passthrough has been built on a very specific model. I.E.

  • 2 GPUs, 1 for the host, and one for the VM
  • 2 monitors OR a monitor with 2 inputs
    • or a KVM switch

I personally, as well as some of you out there, might not have those things available. Maybe You’ve got a Mini-ITX build with no iGPU. Or maybe you’re poor like me, and can’t shell out for new computer components without some financial planning before hand.

Whatever your reason is. VFIO is still possible. But with caveats. Here’s some advantages and disadvantages of this model.

This setup model is a lot like dual booting, without actually rebooting.

It’s totally doable with 1 GPU and no APU.

Yes it is doable, but you were wondering why did not find it.
As you can read in your post - it is quite a ordeal and done for bragging rights.

Perhaps more reasonable solution would be to forward X and terminal to windows using console and net.

But I did not mean to stop you in any way. Good luck and I will shut up.

No it’s all fine :slight_smile: I thought maybe you misunderstood what I was asking based on your reply, so I elaborated a bit. I’ll figure it out one way or another lol.

Not a bad idea on the windows X client, but I’m not sure if that will work, have to see. Problem is that Windows needs access to the GPU and only a pass-through would do that (I believe).

not true, single gpu is 100% possible and is just as good as 2 gpus. the downside is that yes, you can only see 1 os at a time, but it doesn’t seem like DeeJay wants to see both.

what os are you running

Why would you deal with it then? On any decently modern SSD, reboot to Windows takes around 10 Seconds for me. Factoring in that a VM also needs to boot…
Yes, you are leaving your Linux Host and all the work in Place, but without seeing it, there isn’t much point in leaving it there.

I can see why this might be technically interesting to play around with, or to test if it works before commiting to a second GPU, but for “production” i can’t see the benefit over dual-booting. Plus, depending on OS and GPU and drivers etc, you might need to reboot anyways to reattach the GPU to the Host after finishing your Gaming Session on the VM.

yes, dual-booting is an option, and i think it always will be. for many people time is money, less time messing with booting the faster your work can get done. Weather that’s a dev or someone who deals with media work. Production can be sped up substantially with out having to stop your work save it and boot into an os, id like to see a dual-boot machine boot faster than a visualized environment, sure in some cases there will always be, but in my case i still see about 10-15 seconds of bios screen, which is almost cut down to 1-2 depending on your bios emulation which to me is a huge win.
But you mean to say its better to stop production and change os, have it start up all of its programs and such when you could already be running them right then and there while in a full fat windows experience. When you see most people passing a gpu to a windows guest they usually have a gpu for the linux host, but in some cases they don’t even need a fancy gui for what they need, they just need linux. I think that this option should not be frowned upon for it is an alternative that i think is much better than just having dual-booting. I ran into an issue where windows drivers did not exist for a nic i wanted to use, only linux drivers existed. It would work perfectly fine in linux but a potato in windows, i was able to make windows think the nic was a generic nic and was able to use it in windows, it would have been impossible otherwise.

1 Like

In this case, you should invest 40 bucks in a cheap GPU to run your Linux environment. Then you don’t have to reboot anything ever and can run it simultanously. Even more time saved.

I’d argue that that’s a rare edge case. I’ve never ever had any hardware where Linux Drivers Exist but Windows doesn’t. And i’m working with around 800 Customer Systems from 1 to 200 Servers physical and virtual.

I don’t. I said that i can see why some people would want to play with Passthrough and virtualization. I just said that, other than rare edge cases, a single GPU Passthrough is probably more hassle than it’s worth. Especially when you try to detach the GPU from your Linux Machine while it’s running. And reattaching it after your done with Windows.

I looked into that myself. I have a mATX System that doesn’t allow a second GPU. I have a 1050ti kicking around i could devote to it.
I also run 3 screens and having to devote one of the to Windows leaves me with weird choices (the “nice” 1440p 144Hz for Gaming on Windows, or for Linux? etc.) Or having to replug/unplug cables all the time, or investing in a several hundred bucks expensive DP KVM.
From my research, it can be done, but dynamic/live GPU switching is really buggy. Ask any Laptop user with Hybrid Graphics under Linux…

I don’t want to discurage this. I just want to way in with my opinion, so OP can decide if all the work is worth it, for what ever he’s trying to do.

3 Likes

Pop!_OS

Basic linux host, windows guest, headless linux server guest.

Windows crashing, restarting, updating, and other nonsense doesn’t take down my whole system. I dont have to restart my server every time Windows decides to be an inconvenience if I simply ran a Windows Host.

1 Like

I’m starting to think maybe VMWare ESXi might be a solution here, but I don’t know if it supports passthrough with only 1 video card.

unraid?

Protip, it does not. You are on the bleeding edge and it does not seem that many people are riding with you. I would also suggest getting a cheap card for the GNU/Linux host. Cleaner solution and more professional.

im currently running fedora as a host and passing through the primary gpu to an ubuntu vm and another gpu to the windows machine, and there are tutorials to stop the host from capturing the primary gpu, so i think linux can do this just fine, no need for vmware or unraid

Sure can. The question is, what do you do with your Linux once both GPU’s are detached?
If you don’t have a very specific usecase for Linux headless, i’d argue running unraid or such is lower overhead with a proper Webinterface to manage it. Much less hassle than running two VM’s with GPU Passthrough on Linux.

So you want to go headless. Awesome. You will need a second computer with a usb->serial adapter. Enable serial port in your bios, connect the motherboard to DB9 adapter and configuring the linux kernel with console output ie:

console=ttyS0,9600 console=tty0 … mileage may vary I don’t do this often

Arguably this is the best way to do it because you can save a log of the terminal output for review or debug issues. Networking into the system is nice but a luxury.

As with everything about linux, its going to take time and work but its possible.

First you will want to install an OS that doesn’t default install X (they are out there) and then you want to pair it down to only the basic services to minimize the HOST overhead.

Arch might be good, certainly Linux from Scratch but that is a project in itself, Debian/Ubuntu Server … but I found that Ubuntu has started if not already quite bloated.

I personally do alot from source and the command line. My Windows VM with QEMU is done through the comand line and not libVirt. And yes I have had in the past a working passthrough but I have this new AMD reset bug BS to contend with currently.

Also you will need to learn to adapt seemingly unrelated topics together to make a working system. For instance QEMU network passthrough with Linux routing/ip forwarding/iptables … thats a rabit hole in itself.

What do you get from doing this work? A workable understanding of Linux outside the casual user experience.

Good luck and happy hunting.

One more thing. Anything worth while doing is never easy.

I’ll check unraid out