Okay. I seem to be making progress, but I’m still a neophyte. I have a Asus NUC that contains an Intel Wifi/Ethernet chip that linux-libre refuses to configure. So that’s what I am aiming at exposing straight to a QEMU virtual machine that can then do what it wants with that interface (run it as a networking interface.)
I’ve added what I take to be the configuration for vfio-pci to immediately grab the PCI device: (kernel-arguments (append '("vfio-pci.ids=0x8086.0x7e40" "iommu=pt" "intel_iommu=on" "rd.driver.blacklist=iwlwifi") %default-kernel-arguments)) (initrd-modules (cons* "vfio_pci" "vfio" "vfio_iommu_type1" %base-initrd-modules)) vfio-pci exists, but when I boot, the device is still controlled by iwlwfi: 00:14.3 Network controller [0280]: Intel Corporation Meteor Lake PCH CNVi WiFi [8086:7e40] (rev 20) DeviceName: Onboard - Ethernet Subsystem: Intel Corporation Wi-Fi 6E AX211 160MHz [8086:0094] Flags: fast devsel, IRQ 18, IOMMU group 12 Memory at 5020314000 (64-bit, non-prefetchable) [size=16K] Capabilities: [c8] Power Management version 3 Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+ Capabilities: [40] Express Root Complex Integrated Endpoint, MSI 00 Capabilities: [80] MSI-X: Enable- Count=16 Masked- Capabilities: [100] Latency Tolerance Reporting Capabilities: [164] Vendor Specific Information: ID=0010 Rev=0 Len=014 <?> Kernel modules: iwlwifi But when I run dpdk-devbind.py --bind=vfio-pci 0000:00:14.3, it changes: 00:14.3 Network controller [0280]: Intel Corporation Meteor Lake PCH CNVi WiFi [8086:7e40] (rev 20) DeviceName: Onboard - Ethernet Subsystem: Intel Corporation Wi-Fi 6E AX211 160MHz [8086:0094] Flags: fast devsel, IRQ 18, IOMMU group 12 Memory at 5020314000 (64-bit, non-prefetchable) [size=16K] Capabilities: [c8] Power Management version 3 Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+ Capabilities: [40] Express Root Complex Integrated Endpoint, MSI 00 Capabilities: [80] MSI-X: Enable- Count=16 Masked- Capabilities: [100] Latency Tolerance Reporting Capabilities: [164] Vendor Specific Information: ID=0010 Rev=0 Len=014 <?> Kernel driver in use: vfio-pci Kernel modules: iwlwifi As I want this all to happen at boot time — qemu should also be starting at boot time, this will be the next Fun Challenge — what am I missing? Why is the device not being appropriately controlled by vfio-pci? Thank you. > Am 03.06.2025 um 10:18 schrieb Rutherther <ruthert...@ditigal.xyz>: > > Konrad Neuwirth <kon...@fimsch.net> writes: > >> The build log says: >> >> Backtrace: >> 8 (primitive-load "/gnu/store/g942gqcbxkmjm8536kg2j4sl7ay?") >> In ice-9/eval.scm: >> 619:8 7 (_ #f) >> 626:19 6 (_ #<directory (guile-user) 7ffff7812c80>) >> 293:34 5 (_ #(#<directory (guile-user) 7ffff7812c80> #<procedu?>)) >> In srfi/srfi-1.scm: >> 586:29 4 (map1 _) >> 586:29 3 (map1 _) >> 586:29 2 (map1 _) >> 586:17 1 (map1 ("vfio_virqfd" "ahci" "usb-storage" "uas" "usb?" ?)) >> In gnu/build/linux-modules.scm: >> 278:5 0 (_) >> >> gnu/build/linux-modules.scm:278:5: kernel module not found "vfio_virqfd" >> "/gnu/store/wi539xkgd3mj07as4hv4n3jsxzmpd3pl-linux-libre-6.14.8/lib/modules” > > This is expected, vfio_virqfd has been added to vfio module starting > Linux 6.2. > > Rutherther