Return to

VFIO in 2020 – Pop!_OS 19.10

Hey guys,

I’ve lurked this forum for a while in addition to reddit’s /r/vfio and found both incredibly helpful during my time building a GPU passthrough setup. I’ve created a guide for Pop!_OS 19.10 and systemd-based distros. Some of you might have different OS/hardware but I think you’ll find the “Credits & Resources” section helpful because it’s an accumulation of some of the best resources available in the VFIO community.

I want to thank all of you in the community here for your willingness to help others who are venturing and struggling in this space!

Make sure to checkout my tutorial:


I am usually a lurker, but I just finished a similar build and vfio setup. This was an excellent write up. Plus I learned a few things I need to tweak with regard to vm performance. Thanks for sharing!

1 Like

I really appreciate the comment! I’m glad you found some performance tweaks that work for you… It’s the little things that count :slight_smile:

Thanks for the write-up; always nice to read other people’s VFIO setup notes.

Direct link here for others to have a browse

1 Like

Your write up is awesome, I just got my win10 vm to boot in Pop_OS 19.10 and it took cross referencing almost 3 different tutorials/tons of different blog posts to hobble it together. I wish I saw yours sooner, as I’m on TRX40/2080ti/WX4100.

Looks like I have to do the ACS override as TRX40 has usb passthrough issues so I’ll be using your guide tonight hah!

Hey @chonitoe,

Thank you for the write up. It’s the first, complete, write up I’ve come across that is doing exactly what I’m looking for. I haven’t been on Linux as a daily driver for very long, and it was great to have a bit more explanation around why everything was done the way you are.

I don’t have my VM working yet, but I did modify one of the scripts in your write-up. I’m presently on Ubuntu 19.10, and I don’t know if that influences anything, but I added

MEMORY=(((xmllint --xpath “string(//memory)” /etc/libvirt/qemu/$1.xml)/1024))

Without this line, the $MEMORY value was not populating and thus hugepages were not being allocated correctly.

Again, thank you for your write-up!

1 Like

Thanks for the good guide, chonitoe!

I followed the guide. But when I booted the VM for the first time, after the uefi/bios screen when the windows installer started. I noticed that in the Qemu VM viewer, I can see the normal Windows installer coming up. But in the monitor (that has been connected to the gpu that I have passthroughed), the monitor only shows a line (’ - '). Nothing else (and it doesnt change to anything else, even if I wait for few minutes). I can see at the very beginning the uefi/bios screen on the monitor, but after that it just get stuck.

What might I have done wrong?

I had the same “problem” - I got through the VM install via SPICE and after windows booted I installed the nvidia drivers bringing the display right up. I assumed it was just the drivers not initializing. Double check the device manager for a Code 43 error with the drivers if still having issues.

Thanks! The monitor came up after I installed the Nvidia drivers.

( @chonitoe, should you maybe add to the guide that for some people, you might need to install the Nvidia drivers to get the monitor up (and the passthrough working), so they shouldnt panic if if they encounter this problem while reading the guide :joy: )

1 Like