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



Reply via email to