This could be a continuation of a discussing started with this post @brendanhoar posted on another topic, where he pointed out to a Github issue, which I can confirm too doesn’t have anything with Qubes OS 4.1, but obviously with some specific hardware components
@Demi argued existence of PV in general, but as I pointed out, significant number of USB controllers can run only in PV mode, especially xHCI controllers which obviously “don’t like” Qubes.
There is an issue on a Github, and the solution is ismple, but I don’t have an account there - just create sus-usb in PV mode
:
https://github.com/QubesOS/qubes-issues/issues/5445
Issuing sudo journalctl -g 00:14.0
in dom0 gives
Summary
Feb 13 19:30:03 dom0 libvirtd[1865]: internal error: Unable to reset PCI device 0000:00:14.0: no FLR, PM reset or bus reset available
Feb 13 19:30:08 dom0 kernel: pciback 0000:00:14.0: xen_pciback: vpci: assign to virtual slot 0
Feb 13 19:30:08 dom0 kernel: pciback 0000:00:14.0: registering for 7
Feb 13 19:30:18 dom0 kernel: pciback 0000:00:14.0: can't derive routing for PCI INT A
Feb 13 19:30:18 dom0 kernel: pciback 0000:00:14.0: PCI INT A: no GSI
Documentation claims there is solution for the issue, but it won’t work.
Searching the web on this I found a patch on bugzilla.kernel.org from 2013 which needev kernel to be manually recompiled, but can’t seem to find it at the moment. I don’t know if this is related, since I am not competent by any means.
There is more recent bug reported for the same error but different device, related to Lenovo laptops.
There are also other cases for which PV mode is the only solution.
HCL list is already pretty limited, and dropping PV mode support could cause more users giving up on Qubes, so @marmarek and others, please do not drop support at least until Qubes 5.x.
Additional comments welcomed
Here’s several posts from the topic mentioned at the beginning and related to the subject.
Summary
Sys-usb in 4.0/4.1 is HVM.
And as far as I’m aware, under 4.0 and 4.1, VM’s that utilize sys-usb’s shared devices are PVH (aka PVHVM), not PV.
Brendan
I meant on something like this .
Ah, ok. Right.
With R4.0 we saw use of PV mode being deprecated for IOMMU-less systems, but the installer allowed installing without IOMMU, and PV mode was the only way to passthrough PCI (less-safely).
However, R4.1 now requires a functioning IOMMU to install.
Are there that many USB controllers on systems with a functioning IOMMU that are incompatible with the IOMMU?**
B
** I shouldn’t be surprised if the answer is yes, I suppose.
However, R4.1 now requires a functioning IOMMU to install.
Not quite true, the hard dependency was removed somewhere in the alpha iterations, you can proceed without IOMMU (the installer just show a warning)
However, sys-net / sys-usb will fail to launch as HVM without IOMMU, and if you try to change to PV, it will also fail to launch, because you need to explicitly enable this kernel flag:
qubes.enable_insecure_pv_passthrough
(commit)So besides the less security of PV, for system without IOMMU at least they can enjoy other Qubes features.