Hi, > "Dpdk.sln" builds OK, will try launching sample apps > a bit later.
Netuio driver consistently fails to install on Windows 10 in QEMU with virtio-net (modern interface). Described below is my attempt to install the driver from clean "windpdk-v18.08-clang" branch of "dpdk-draft-windows" repo. The only change is hardware ID in INF file. What am I doing wrong here? 1. QEMU version: 4.2.0 QEMU command line: qemu-system-x86_64 \ -enable-kvm \ -cpu host -smp 'cores=4,sockets=1,threads=1' \ -m 6G \ -drive "file=$disk,format=qcow2" \ -nic "user,id=winnet,model=e1000,smb=$HOME/src/dpdk" \ -netdev 'socket,listen=:10000,id=dp0' -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp0' \ -netdev 'socket,listen=:10001,id=dp1' -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp1' \ \ -vga qxl 2. Loading unsigned drivers is enabled as follows: Microsoft Windows [Version 10.0.18363.418] (c) 2019 Microsoft Corporation. All rights reserved. Z:\>bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS The operation completed successfully. Z:\>bcdedit.exe -set TESTSIGNING ON The operation completed successfully. Z:\>shutdown -r -t 0 After that, the desktop message shows: Test Mode Windows 10 Pro Build 18362.19h1_release.190318-1202 Including this step FTR, it works for other drivers. 3. Device status (no conflicting drivers): The drivers for this device are not installed. (Code 28) There are no compatible drivers for this device. To find a driver for this device, click Update Driver. Device event log (note the hardware ID part): Device PCI\VEN_1AF4&DEV_1041&SUBSYS_11001AF4&REV_01\3&13c0b0c5&0&20 requires further installation. 4. INF file is modified to include corresponding hardware ID: diff --git a/kernel/windows/netuio/netuio.inf b/kernel/windows/netuio/netuio.inf index b1696cc50..b6fd2c798 100644 --- a/kernel/windows/netuio/netuio.inf +++ b/kernel/windows/netuio/netuio.inf @@ -55,6 +55,7 @@ DriverVer= %F158B.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_158B ; I40E_DEV_ID_25G_SFP28 %F37D0.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_37D0 %F153B.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_153B +%virtio.netuio.Description%=netuio_Device, PCI\VEN_1AF4&DEV_1041&SUBSYS_11001AF4&REV_01 [netuio_Device.NT] CopyFiles=Drivers_Dir @@ -121,5 +122,6 @@ F158A.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Network Adapter XX F158B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Network Adapter XXV710-DA1" F37D0.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection X722" F153B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection I217-V" +virtio.netuio.Description = "DPDK netUIO for virtio-net (modern)" netuio.DeviceDesc = "netuio Device" netuio.SVCDESC = "netuio Service" 5. Installation command fails after waiting for several minutes: Z:\>pnputil /add-driver Z:\windows\x64\Debug\netuio\netuio\netuio.inf /install Microsoft PnP Utility Adding driver package: netuio.inf Driver package added successfully. Published Name: oem2.inf Unable to install driver package: This operation returned because the timeout period expired. Total driver packages: 1 Added driver packages: 0 Z:\> Please find "C:\Windows\INF\setupapi.dev.log" attached as "clean_setupapi.dev.log". Using devcon.exe from DDK yields similar result and log. I also tried to add event tracing to the driver, but the driver doesn't even get loaded, that is, DriverEntry is never called, so the cause shouldn't be in driver code. > I'm planning to use QEMU and virtio PMD (modern interface, > because legacy uses PIO, which is not implemented by netuio) by adding a > project similar to existing "librte_pmd_i40e". Also tried doing this, attaching patches. Got the same result. I start every new attempt to install a driver variant from clean system restored from disk snapshot. "Userpci" driver from my port installs and binds OK, so this is not an QEMU/Windows incompatibility issue. -- Dmitry Kozlyuk