GTA V on Linux (Skylake Build + Hardware VM Passthrough)

Thank you Sir...... I do have latency and plan on adding a USB sound card as a second audio device to pass through to the KVM other than that I have no issues at all but I leave the KVM run all the time, interestingly enough the stability of Linux and the KVM is something I never expected, I just rebooted Sunday because of a issue with Firefox and having too many tabs open at once after a 20+ day continuous run without a reboot.

Thank you for the advice.

Is it enough to confirm that the IOMMU tables are working by enabling it in BIOS, adding the "amd_iommu=on" to the bootloader and running the command "dmesg|grep -e DMAR -e IOMMU" after booting?

Yes...that is exactly what you would want to do, if you get a group listing then you should be golden and ready to proceed.

Good Luck! :)

Thank you! :)

I ended-up getting my Focusrite pass-through to my WIndows VM. There is a latency a little larger than a bare-metal Windows recording. I get about .500milisecond delay when testing my recording in TeamSpeak, oppose to a half of that with Windows. It looks like because it's USB 2.0 and I'm having to force QEMU to read a USB 3.0 port as EHCI, it emulates it and unintentionally adds a delay to the processing...Which is a bummer. A delay on the microphone can mean everything in competitive gaming.

-device usb-ehci,id=ehci,addr=0x9 -device usb-host,id=focusrite,bus=ehci.0,vendorid=0x1235,productid=0x8016 \

Passthrough whole usb controller? That works like native...

Yep....that's a issue, as mentioned by @somenoob you might try passing through the whole controller but it might not make a difference, still worth a shot, .500 ms is great (I know it's not) compared to what seems like better than a second on my system but it's a issue I haven't tackled yet so I'm interested and curious to see if you can correct it and what will be the solution.

From my Experience is that Arma 3 doesn't use CPU's to 100%, since i can Livestream while playing Arma 3 quite well, but livestram grinding to a halt with Citites Skyline and other.

(that is with a 2500K, 680 and 8GB ram).

From what people saying is that more cores will make Arma3 run better but not utilize them more/better.

So does this work with any/which of the following; 5820k, Xeon 1231v3, or 4690k? Also I may plan on having 2 graphics cards for the ones without iGpus so don't worry...Another question is I can use an Nvidia graphics card for the Linux box, and an AMD one for the windows one right? (WITHOUT flashing the Nvidia into a Quadro)

My plan is to have an AMD one for the windows machine cause I have a freesync monitor, (likely Fury X) and the Linux box on a separate monitor with an nvidia GPU for possibly video editting or something not really sure the normal use, but when not at the computer I can use it for streaming to my Nvidia shield is my plan... Can anyone see any problems with this?

Yes all three CPUs support VT-x and VT-d, so they are fine, and no you won't have to do anything to use a Nvidia card in the host system other than load the drivers you want to use.

Unfortunately, this board (ASRock Z170 Pro4) only has one controller...I'm trying to use a PCI-e USB 3.0 card but the thing is starting to fail already.

This motherboard screwed me over and I'm at my witts end, guys. There's no way I can play competitive gaming with a delayed microphone and the fact of the matter is, I'm jumping through hoops for a VM which is running on 2 cores--it simply isn't going to cut it, in the next several months. Any simulators get crippled; I can't even play Cities Skyline... This isn't a productive use of my time any more...

I'm going to go back to the drawing board--either I stick with Linux and flip between Windows for gaming or the idea of using Linux as my main OS, will go back onto the shelf for a while.

Sorry guys! It was a fun project and I'm so excited I accomplished it (for the most part) and that I had some good times and troubleshooting with the community. Perhaps I'll get out of this pit of disappointment in the near future and see if I can make this work, but for the time being, it's not working out for me, as a gamer.

1 Like

I understand, and it's one of the things that you have to consider when going down this road, I've stated before that hardware pass through isn't something that you just decide to do it requires planning on the hardware side, yes you can test with any compatible hardware but to have a actually working setup requires that planning.

There is no shame in what you have accomplished quite the contrary you were successful and now have a better idea of what you might need hardware-wise to have the type setup that you would need to be productive, you answered a lot of questions by just taking the time to try and your experiences will help others and for that I say thank you.

1 Like

Okay, I wound up thinking of another couple of possible questions; Thanks for your help in answering my existing questions by the way, Would the Nvidia card have to be in my systems primary/top PCIe slot for airflow reasons it'd be best if it wasn't which is why I'm asking, and would the VM still be able to use Freesync? I don't plan on doing seemless I don't think, I'd like it if I could have Windows on my 1440p Freesync monitor, and Linux on a different monitor 1080p monitor, would this work? Like could I just plug a DP cable from FuryX->Freesync monitor that handles the Windows VM, and an HDMI from my Nvidia card -> 1080p Generic monitor.

Nope....any slot should in theory work.

Yes....it will work that way, as long as the GPU passed to Windows supports Freesync it should work fine.

Yep......no problem at all that I can see, the PCI slot used isn't important but knowing where the card (slot #) may help in identifying which card is which, but since you will be using a Nvidia card for the host and a AMD card for the guest it will be self-evident which is which when you run lspci. That wasn't the case for me since I use three 270x cards while it wasn't that difficult to figure out which was which because I populated all the PCI slots.

So running lspci -n -s 1: I got a return that looked something like this....

lspci -n -s 1:
01:00.0 0300: 10de:1381 (rev a2)
01:00.1 0403: 10de:0fbc (rev a1)

This basically shows me that in slot #1 this is the device in that slot.

You can open a terminal and type lspci and look at the output.

Just running the lspci command will give you a output that looks like this..

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core
 Processor Family Integrated Graphics Controller (rev 09)

00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)

00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)

00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)

00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4)

00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 (rev b4)

00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b4)

00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)

00:1f.0 ISA bridge: Intel Corporation HM65 Express Chipset Family LPC Controller (rev 04)

00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04)

00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)

01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168 PCI Express Gigabit Ethernet controller (rev 06)

02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)

03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5209 PCI Express Card Reader (rev 01)

Running the command lspci -vmm will give you a output like this..

Slot:    00:00.0

Class:    Host bridge

Vendor:    Intel Corporation

Device:    2nd Generation Core Processor Family DRAM Controller

SVendor:    Hewlett-Packard Company

SDevice:    Device 3672

Rev:    09

So you can see lspci is your friend in finding out what is where and what it is on your system.

If you haven't read this it's really worth checking out.

Thanks man, probably gonna start ordering parts and things when I get payed on the first of next month, 5820k, FuryX (1st slot for VM) and 960 (3rd pcie slot) my 1440p freesync monitor for the VM and 1080p monitor for the linux distro... thanks for helping me plan this out mate, and making sure things work before investing all the money

1 Like

I am so excited to try this. I'm prepared to dive head first into learning this process, but I'm super busy at the moment. I'll take a serious look at this sometime next weekend, but for now I want to know how feasible you guys think this is for my laptop. Its probably going to be a headache and a half, but I've got Intel integrated graphics as well as a quadro 1000m in there. Think it'd be possible to let Linux use the integrated graphics and pass the quadro through to the windows VM?

Man....I wish I knew the answer, but I don't, in theory I'd say yes it will but the practicality is it's a laptop so it's going to be rigid piece of hardware to work with, but as long as the CPU and MB support virtualization then I'd give it a shot, the display might be a issue unless the laptop supports a second monitor....interesting project though. :)

hdparm -t and bonnie++ work great?

I have no access to SM951s :(

1 Like

Wendell said briefly that with AMD, you wouldn't have much passthrough issues. Is this also true with older hardware? I have a 1055T and an 880GA-UD3H. Does anyone have any information on whether this would work for me? Anyone else here still on thuban?

I've run VMs on it before so we're covered there, I'm just worried about the hardware pass-through since it's not exactly a normal PCI slot. I've got screen outputs of course but really I want to end up using a seamless set up. I'll give it a shot all the same and report back here.

1 Like