HVM USB Controller Passthrough Not Working


I’m trying to set up a GPU Passthrough gaming HVM through this guide (Qubes-Community/gaming-hvm.md, and I have the GPU Passthrough working on a standalone Fedora Qube through a separate monitor.

I thought that the obvious solution for user input would be passing through an entire PCI USB 3.0 controller I had lying around. However, this doesn’t seem to work. Running lspci on the guest shows that it is properly seeing the controller, and the xhci driver is being used for it. However, lsusb shows no keyboard or mouse connected at all (besides the QEMU tablet).

If I attach the controller to sys-usb, then it works like a charm. I’m not entirely sure what is failing here, as dmesg or any qube logs are not giving me any tips I know of. The only thing I can possibly think of that is causing this is that I have to put pci=nomsi in the HVM’s grub parameters, but that is speculation, and that option is needed for the GPU to work anyways.

Can anyone provide some help? Or am I looking at this the wrong way, and I should try a different method for keyboard/mouse input?

Is there a reason not to pass only keyboard and mouse from sys-usb to HVM? I find it more secure than passing whole controller, while also leaving other controller’s ports (if left) available to other qubes?

Or, if you run HVM in debug mode, you don’t have to pass anything to it, since focusing and moving mouse inside debugging HVM window makes both mouse and keyboard available to HVM on external monitor.

Just passing over the keyboard and mouse from sys-usb works! I had never thought about it that way. Thank you!

1 Like

Good to hear. I’d suggest you to try the other possibility, too. As I see it, probably the most secure way to have Kb/M in a HVM and the rest of Qubes at the same time.

1 Like