Cannot start sys-net, PCI device not assignable

Hi, I just installed Qubes release 4.3.4 (R4.3). I mostly selected default options, except for Debian as the default VM (since I’m more familiar with that than Fedora), and also auto-connecting USB mouse and keyboard devices.

I see a notice whenever trying to run anything in the sys-net VM:

Qube sys-net has failed to start: Requested operation is not valid: PCI device 0000:80:14.3 is not assignable

I’m kind of stumped on how to proceed. I don’t have Internet and I don’t know how to connect a flash drive, so I can’t copy qvm-pci output here. I’ll try to type it in:

$ qvm-pci
BACKEND:DEVID   DESCRIPTION  USEDBY
...
dom0:00_0d.0    PCI_USB: Intel Corporation Meteor Lake-P Thunderbolt 4 USB Controller  \
      sys-usb (attached: no-strict-reset=True)
dom0:00_0d.2    PCI_USB: Intel Corporation Meteor Lake-P Thunderbolt 4 NHI #0 \
      sys-usb (attached: no-strict-reset=True)
...
dom0:80_14.0    PCI_USB: Intel Corporation unknown pci device
dom0:80_14.3    Network: Intel Corporation Arrow Lake-S PCH CNVi WiFi
dom0:80_14.5    Non-VGA unclassified device: Intel Corporation unknown pci device
...

The only two currently attached PCI devices are for sys-usb. What should I try next? Is more information needed? Thanks in advance :slight_smile:

Maybe you have a reset issue. See this four troubleshooting:

I’m thinking about this because you have that unknown (14.0) PCI_USB device on the same bus with the WiFi device.

1 Like

Hi,

Your problem looks similar to the one I got on sys-usb not starting. The reason is that my PC has a Intel Core Ultra series 2 processor. Its architecture has two PCI Root Complex and libvirt is not able to manage the second one. The consequence is that when you want to PCI passthrough a device connected to that second PCI Root Complex to any VM like sys-net or sys-usb , it fails with that error.

You can verify this by checking with a lspci -tvnn command: if you are having the same issue as mine, it will display two branches, one starting with0000:00, the other with 0000:80.

The solution is to patch your libvirt packages as described by @Bloged in AiStone X6AR57TY aka TongFang X6 16" Intel High-end Performance - #2 by Bloged.

You can find some information on how you can compile it in Arrow Lake iGPU support - External monitors (USB-C) not working - #4 by Bloged.

Can you please confirm if this is your issue?

Thanks,
Bertrand

2 Likes

Hi @bertrand ,

I can confirm there are two branches. I’ll try the Bloged solution soon.

@bertrand I had a major breakthrough – I can now use Ethernet, even though it is on the 0x80 PCI root (which I don’t understand). Thanks to this, I can copy and paste command output:

aaron@dom0:~$ qvm-pci
BACKEND:DEVID         DESCRIPTION                                                                                              USED BY
dom0:00_00.0          PCI_Bridge: Intel Corporation unknown pci device                                                         
dom0:00_02.0          Display: Intel Corporation Arrow Lake-S [Intel Graphics]                                                 
dom0:00_04.0          Signal processing controller: Intel Corporation unknown pci device                                       
dom0:00_06.0          PCI_Bridge: Intel Corporation unknown pci device                                                         
dom0:00_06.0-00_00.0  Display: NVIDIA Corporation GB206M [GeForce RTX 5070 Max-Q / Mobile]                                     
dom0:00_06.0-00_00.1  Audio: NVIDIA Corporation GB206 High Definition Audio Controller                                         
dom0:00_06.4          PCI_Bridge: Intel Corporation unknown pci device                                                         
dom0:00_06.4-00_00.0  Storage: Micron Technology Inc 2500 NVMe SSD (DRAM-less)                                                 
dom0:00_07.0          PCI_Bridge: Intel Corporation Meteor Lake-P Thunderbolt 4 PCI Express Root Port #0                       
dom0:00_08.0          System peripheral: Intel Corporation unknown pci device                                                  
dom0:00_0a.0          Signal processing controller: Intel Corporation unknown pci device                                       
dom0:00_0b.0          Processing accelerators: Intel Corporation Arrow Lake NPU                                                
dom0:00_0d.0          PCI_USB: Intel Corporation Meteor Lake-P Thunderbolt 4 USB Controller                                    sys-usb (attached: no-strict-reset=True)
dom0:00_0d.2          PCI_USB: Intel Corporation Meteor Lake-P Thunderbolt 4 NHI #0                                            sys-usb (attached: no-strict-reset=True)
dom0:00_14.0          Memory: Intel Corporation unknown pci device                                                             
dom0:00_1f.0          PCI_Bridge: Intel Corporation unknown pci device                                                         
dom0:00_1f.5          PCI_Serial_Bus: Intel Corporation unknown pci device                                                     
dom0:80_14.0          PCI_USB: Intel Corporation unknown pci device                                                            
dom0:80_14.3          Network: Intel Corporation Arrow Lake-S PCH CNVi WiFi                                                    
dom0:80_14.5          Non-VGA unclassified device: Intel Corporation unknown pci device                                        
dom0:80_16.0          Communication controller: Intel Corporation unknown pci device                                           
dom0:80_19.0          PCI_Serial_Bus: Intel Corporation unknown pci device                                                     
dom0:80_1c.0          PCI_Bridge: Intel Corporation unknown pci device                                                         
dom0:80_1c.0-00_00.0  Network: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller  sys-net (attached)
dom0:80_1f.0          PCI_Bridge: Intel Corporation unknown pci device                                                         
dom0:80_1f.3          Audio: Intel Corporation unknown pci device                                                              
dom0:80_1f.4          PCI_Serial_Bus: Intel Corporation unknown pci device                                                     
dom0:80_1f.5          PCI_Serial_Bus: Intel Corporation unknown pci device                           

To accomplish this, I removed all devices from the sys-net Qube and added the Realtek device seen above.

The next steps are to get wifi and USB working, both of which probably will require that libvirt patch you referenced.

Hello,

In the first post, the error message is about 0000:80:14.3 which is the WiFi interface. In the last post, you show that the wired interface is PCI passthroughed to sys-net.
This wired ethernet interface is connected to the PCI to PCI bridge 0000:80:1c.0, not directly connected to the 0000:80 PCI Root Complex. As there is a PCI Bridge in between, libvirt can do the normal stuff so the behaviour is logical.

Bertrand

2 Likes

So I was able to get qube-builderv2 working, or at least building core-libvirt RPMs. I’m a little confused about how to apply the 0019-arrow-lake-usb-fix patch however.

Bloged wrote:

Then added it in libvirt.spec.in and build this package.

After adding in the patch in artifacts/sources/core-libvirt/ and adding a line for it in the patches section of libvirt.spec.in in that directory, is the command ./qb -c core-libvirt package prep build? Or is it without the prep?

That did it! I now have WiFi and I’ll try to get my USB and HDMI working (I don’t recall if I mentioned those weren’t working before). Thanks so much @bertrand !