Hello, I am relatively new to Linux and I would like to switch from WIndows permanently yet I would still like to be able to run it through a virtual machine when needed. I have briefly tried looking into hardware for virtualization and there seems to be a lot I need to learn before jump into it all by myself so I am here to kindly request a little bit of help and recommendations.
I intend to build and AM5-based platform with a dedicated GPU to passthrough to the VM, most likely my current RX 6600XT since it’s relatively new. The r9 7900 looks nice because of its efficiency yet I do not know with which motherboard to pair it in order to have as few problems as possible when it comes to Virtualization. I am open to suggestions and any sort of information anyone can provide. Thank you very much in advance!
Welcome Birthdayboy!
I think that in 2023 running Windows in a VM on Linux is pretty straight forward for most use cases. Pick your favorite distro, follow the steps to setup a VM, install Windows.
Before you start, you should make sure that support for virtualization is turned on in your BIOS/UEFI. Research the relevant CPU/device options - Intel/AMD use different names.
At this point all peripherals (graphics,storage, network,etc) are virtualized. There are choices as to e.g. which virtualized device is presented to the guest OS (Windows). I think most distros offer VM templates for Windows that work pretty well out of the box and should get you a running Windows install.
Basic apps will work, e.g. Office, browser, etc. Your display should work with 2D acceleration.
Generally, if you want to use advanced features provided by your hardware (remember at this point Windows doesn’t know about your hardware, just some simulated/virtual hardware) you may need to do some tricks to enable them in the VM.
Start by looking for “spice”. These are a set of virtualized devices that unlock improved HW capabilities (improved graphics, clipboard, etc.). But they don’t work ootb in a Windows guest - you need to load and install drivers.
If, after that, you find that you need YOUR hw to be available to Windows (often to access graphics cards directly to enable gaming or GPU compute capabilities), there is a way to “unlink a device from the host OS and pass it through to guest OS”. There are guides and tons of threads in this forum on how to go about it.
You will note that nothing in here is specific (and maybe some folks will object to my vagueness). I try to provide you with a general approach to the topic of virtualization that allows you to get started quickly and improve your setup over time as you get more familiar with the tech.
Have fun and good luck!
Thank you for the complete reply!
Since I have to start at the hardware level to make sure that there won’t be issues for Virtualization I tried looking around at the new AM5 platform since it seems to be pretty interesting and it has integrated video output (at least from what I could see from the rear I/O on the motherboards. The main problem would be chosing the right Motherboard as I’ve understood that some manufacturers offer certain options over others. Since I plan on putting an M.2 inside the system for Linux and another SATA SSD for the VM alongside a dedicated GPU I am unsure if a B650 or X670 motherboard would do and which models in particular would be good. I’ve read on the forum that the X670E Asus Proart was a good choice but on some other forum people advised me not to go with Asus since they can be pretty annoying when populating certain M.2 and SATA slots. Others have pointed to the x670E Gigabyte Aorus xtreme motherboard but they’re all pretty expensive. If they’re truly worth it and can help in reducing possible issues I’d get either in a heartbeat though
I’m on the same boat and bought a steel legend. It’s still in transport though, but i’ll likely post the results of my first VFIO attempt over here.
The steel legend was exactly what i was looking for in terms of M.2 support, i was between her and the gigabyte aorus elite, but i wanted to use all available m.2 slots without much worry about slowing down my gpu pci lanes. Also the price difference is pretty large here in my country.
Wendell has a great video on the steel legend that made me decide on it: ASRock X670E Steel Legend Overview - YouTube
As for VFIO support on her, well, guess i’ll find out. But asrock generally seems very friendly towards it.
I’ll be waiting for your results to be posted then, I can’t wait to see how it goes, fingers crossed!
So I’ve heard that Asrock is VFIO friendly but I heard similarly from Gigabyte as well, I didn’t know about the overpopulating M.2 issue on Gigabyte boards though, I heard about that on the Asus part
AM5 has a few pain points and is tough to recommend for VFIO at this time—especially for a beginner—in my opinion at least. It shows a lot of promise, and the extra PCIe and USB connectivity and integrated graphics could be very nice, but the chipset is bottlenecked cf. LGA1700, IOMMU groupings seem broken on many boards, and most boards only have one expansion slot from the CPU.
I would instead recommend a dual-CCD Ryzen 9 3000- or 5000-series paired with an X570 board. You’ll typically get two Gen4 x8 expansion slots from the CPU, two six- or eight-core logical CPU groups with individual L3 caches*, three built-in USB3 controllers (one of which sits in its own IOMMU group), and either two M.2 slots and two SATA controllers or three M.2 slots and one SATA controller (all of which sit in their own IOMMU groups). It’s pretty much ready to go for VFIO right out of the box, and because it’s a generation older it’ll be about half the cost (for ~80% of the performance).
* – Actually, four three- or four-core logical CPU groups with individual L3 caches on Ryzen 9 3000-series.
That’s a good suggestion but will I need 2 GPUs in order to pull this off? I just checked the x570 Taichi motherboard from Asrock and it seems to have video output but I don’t know if the CPUs do indeed have a graphics component on the chipset itself
In general, no. Virtualized Windows on Linux works fine for most apps - at least with the virtualized “spice” hw.
A dedicated GPU is only advisable if you have Windows apps that depend on advanced GPU capabilities that require direct access. The most typical ones are gaming, and CUDA or similar acceleration.
The latest CPUs with integrated graphics for AM4 do work well, but I’d argue that they’re getting hard to recommend at this point (compared to AM5 or latest Intel based).
The arguably top of the line AMD Ryzen 5700G only supports PCIe Gen3 (not 4) and due to its integrated GPU only supports fewer PCIe lanes. These are the most important limitations in my book, but there are more.
Like @jode said, you’ll need a “G” SKU to use those video outputs, and those have other limitations.
I haven’t personally tested AM5 integrated graphics but based on what I’ve seen and read they are going to be limited to extremely basic 2D desktop use. So yes, you might need two discrete GPUs to go “full” VFIO, but basically any card you choose for Linux—even an old Polaris card—is going to significantly outperform the two RDNA2 compute units found in the Ryzen 7000 I/O die.
The half L3$ of the APU parts cf. their MCM brethren is a killer.
This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.