Create a Gaming HVM

Well that’s the funny thing : it’s ok they are showing in dom0, but the VGA part was showing (an is stil lshowing) with nouveau driver when I actually blacklisted it :astonished:

I removed the pci-hide from Grub, but still, nouveau is supposed to be blacklisted and… it seems it still somehow ‘captured’ by the Nvidia card before it is actually blacklisted… Although, a grep nouveau with the dmesg doesn’t show anything…

And the BIOS of my laptop contains so few information, even the ctrl+s doesn’t show much more and noting on about the graphic cards…

Not sure how it plays between the Bios, Qubes and the Hardware… My luck is it works, but I understand it could be very frustrating since there doesn’t seem to be a ‘root cause’/ reason for this to work… Or not…

Yeah, it is an HVM. Otherwise I would not be able to pass PCI devices in the first place. I should have been more specific)

I’ve been experimenting trying to play games with EAC Easy Anticheat. So far I tried editing my libvirt Custom libvirt config — core-admin mm_77002192-0-g7700219-dirty documentation xml according to the vrchat peoples guide Using VRChat in a Virtual Machine
no such luck yet, and CPU-Z still correctly infers I am in Xen. I think it might have something to do with a “leaflet” that I don’t understand at all.

I think a good next step is to get swtpm working

Welp, adding <feature name='hypervisor' policy='disable'/> under cpu
and changing smbios to “host” and adding <kvm> <hidden state='on'> </kvm> after smbios in addition to what I did above was enough to get marvel rivals working, time to get banned.

Disclaimer: I am not cheating, I dont really care if you cheat but when you get caught cheating you give lazy anti cheat developers a datapoint to sell to lazy game developers that ultimately make things like gaming on linux or a vm much harder

2 Likes

When I Do nvidia-smi I see my RTX 3080
But I just want a different dedicated display to get the benefits of gpu acceleration

what am I supposed to put in

binary=${1:?binary required}

Just need my GPU to display on another screen instead of HDMI where intergrated graphics are, rather use DP so I could get the benefits of of 165 hertz. Currently I’m using intergrated intel graphics to display my main dom0 display.

any success with windows 10?

I got stuck on the AOC.conf file how do I find the variables to plug in and also the next part xorg1sh script have no clue what I put for the binary

So far Ive been able to successfully pass my gpu through to my debian 12 machine but now I just want that debian machine to be on a different display so I could actually see the benefits of GPU passthrough on a visual level outside of of LLMs

I recently revisited this, when I’m not gaming I use my passthrough monitor for multi-tasking. Previously I had a qubes-template based ubuntu install, but after using for a few months I noticed it had a lot of… problems.

TLDR:I run a script that copies the updated AOC.conf to /etc/x11/xorg.conf every boot so I can use lightdm without any problems

If you are like me and too dumb to figure out the intricacies of using template based hvms or the bash scripts OP listed, you can just install an hvm with any plain old iso, give it normal pci passthrough, and then:

  • Disable autostart of display manager, I.E sudo systemctl disable lightdm
  • Copy in AOC.conf and change to nvidia or whatever if you need (literally just change the words amd to nvidia)
  • Download nvidia-firmware or whatever drivers you need
  • Change startx11.sh to something like:
#!/bin/bash

# binary=${1:?binary required}

# Find the correct BusID of the AMD GPU, then set it in the Xorg configuration file
pci=$(lspci | grep "VGA" | grep -E "NVIDIA|AMD/ATI" | cut -d " " -f 1 | cut -d ":" -f 2 | cut -d "." -f 1 | cut -d "0" -f 2)
sed -i 's/"PCI:[^"]*"/"PCI:0:'$pci':0"/g' /home/user/AOC.conf

# Start the Xorg server for the X screen number 1.
# The X screen n°0 is already used for QubesOS integration
# sudo startx "$binary" -- :1 -config /home/user/AOC.conf
sudo cp /home/user/AOC.conf /etc/X11/xorg.conf
  • Finally, start your display manager or whatever normally or not normally i.e.: sudo systemctl start lightdm

For a more integrated solution someone can make the changed bash script above into an init service that whichever display manager or script “requires” so it runs first.
You should be able to run vanilla debian or whatever without any other changes, although I don’t know about sound.

I was lost on is what I put for
binary=${1:?binary required}
My input is
binary=${1:screen n°1}
or
binary=${1:Xorg X screen n°1}

When I run ./xorgX1.sh I get connection to X server lost with both given inputs

Without something in
binary=${1:?binary required}
The script cant run at all.

So what is the right input?

You don’t need to change binary=${1:?binary required} in the script, ${1} is a value of first argument that is passed to the script. if first argument is not provided then “binary required” string will be used in startx and I guess you’ll see this string in the startix error message.
You need to pass the argument to the xorgX1.sh script e.g.:

sudo ./xorgX1.sh ./i3.sh

Then binary=${1:?binary required} will be binary="./i3.sh".

Okay so I did that and I got an error

Fatal server error:
(EE) NVIDIA: A GPU exception occurred during X server initialization

Have no clue whats causing this mabye it needs to be launched on boot?

Okay so Rebooted the debian VM and heres what I get when I do

sudo ./xorgX1.sh ./i3.sh

Result of execution

non-network local connections being added to access control list
/bin/sh: 1: dex: not found

** (xss-lock:2073): WARNING **: 06:19:23.150: Error getting session: GDBus.Error:org.freedesktop.login1.NoSessionForPID: PID 2073 does not belong to any known session
[libi3] ../libi3/font.c Using Pango font monospace, size 8
[libi3] ../libi3/font.c Using Pango font monospace, size 8
[libi3] ../libi3/font.c Using Pango font monospace, size 8
i3status: trying to auto-detect output_format setting
i3status: auto-detection: parent process is "sh", looking at its parent
i3status: auto-detected "i3bar"
[../i3bar/src/xcb.c:1055] ERROR: PropertyNotify received for unknown window 00e00002
[../i3bar/src/xcb.c:1055] ERROR: PropertyNotify received for unknown window 00e0000e
[../i3bar/src/xcb.c:1055] ERROR: PropertyNotify received for unknown window 00e00015
[../i3bar/src/xcb.c:1055] ERROR: PropertyNotify received for unknown window 00e0001c
[../i3bar/src/xcb.c:1055] ERROR: PropertyNotify received for unknown window 00e00023
xss-lock: ./src/xss-lock.c:469: logind_session_set_locked_hint: Assertion `logind_session' failed.
Aborted
i3lock: Cannot grab pointer/keyboard

The unknown window Error pops up when I switch to my DP display on monitor from my HDMI display.
Every time I switch to Display port I get a black screen
Why would this be happening?

Hello, anyone have any issues running cyberpunk 2077? It feels like a software issue

CPU is hitting 85%, GPU is barely scratching 6% according to task manager. no idea if true

I have 0 issues running cyberpunk 2077. (using a linux guest).
If you are using a windows guest, be sure to only enable the screen for you gpu passthrough. If both are activated, you should have terrible performances.

Out of curiosity, did someone tried to do GPU passthrough on a system with HEADS (laptop or desktop) ?

1 Like

I don’t know if it works, but you don’t seem to be able to use iGPU and dGPU at the same time with heads.

MSI PRO Z790-P dGPU with Dasharo (coreboot+heads) variant

I know it works with standard Coreboot/Dasharo, I’ve tested it on my system.

2 Likes

Help!

My qube machine wont boot after grub modification

I edited the grub at add the pci device as instructed and regenerated the grub.

After rebooting, my machine gets stuck at boot.

Please see attached.

Thank you.

You have incorrectly added the rd.qubes.hide_pci kernel command line option in GRUB. Maybe you’ve added spaces or some other syntax error.
You can edit the kernel command line options in the GRUB menu when you boot Qubes OS like this:

Fix or remove the rd.qubes.hide_pci kernel command line option there.

I fixed the kernel command line. Did 01_00.0 instead of 01:00.0 by accident.

However my screen is still blank after booting.