From: Ranjit Menon <ranjit.menon@intel.com>
To: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Cc: Pallavi Kadam <pallavi.kadam@intel.com>,
Harini Ramakrishnan <harini.ramakrishnan@microsoft.com>,
dev@dpdk.org
Subject: Re: [dpdk-dev] Windows Draft Build
Date: Tue, 18 Feb 2020 13:44:30 -0800 [thread overview]
Message-ID: <13c23300-f41f-4e9a-c830-a81ace3593c8@intel.com> (raw)
In-Reply-To: <20200217041424.22afb6dc@Sovereign>
On 2/16/2020 5:14 PM, Dmitry Kozlyuk wrote:
> 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.
>
Oh boy! If DriverEntry() is not being called, the loader is finding something wrong and is unable to load the driver.
@Harini: Can Jeffrey (@MS) help here?
thanks,
Ranjit
next prev parent reply other threads:[~2020-02-18 21:44 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-08 8:45 Dmitry Kozlyuk
2020-02-10 5:03 ` Ranjit Menon
2020-02-10 6:14 ` Dmitry Kozlyuk
2020-02-17 1:14 ` Dmitry Kozlyuk
2020-02-18 21:44 ` Ranjit Menon [this message]
2020-02-25 2:37 ` Dmitry Kozlyuk
2020-02-25 9:06 ` Ranjit Menon
2020-02-26 6:22 ` Dmitry Kozlyuk
2020-02-27 4:11 ` Dmitry Kozlyuk
2020-02-27 15:25 ` William Tu
2020-02-27 15:42 ` David Marchand
2020-02-28 6:07 ` [dpdk-dev] [RFC PATCH 0/5] virtio-net support for Windows draft Dmitry Kozlyuk
2020-02-28 6:07 ` [dpdk-dev] [RFC PATCH 1/5] pci/windows: add stubs for port IO Dmitry Kozlyuk
2020-02-28 6:07 ` [dpdk-dev] [RFC PATCH 2/5] net: add stub for RARP packet generation on Windows Dmitry Kozlyuk
2020-02-28 6:07 ` [dpdk-dev] [RFC PATCH 3/5] pci/windows: split config I/O into series of fixed-size operations Dmitry Kozlyuk
2020-02-28 6:07 ` [dpdk-dev] [RFC PATCH 4/5] netuio: change class for Net to custom Dmitry Kozlyuk
2020-02-28 6:07 ` [dpdk-dev] [RFC PATCH 5/5] mk/windows: add virtio-net PMD Dmitry Kozlyuk
2021-08-14 15:55 ` William Tu
2021-08-14 17:00 ` Dmitry Kozlyuk
2021-08-15 14:28 ` William Tu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=13c23300-f41f-4e9a-c830-a81ace3593c8@intel.com \
--to=ranjit.menon@intel.com \
--cc=dev@dpdk.org \
--cc=dmitry.kozliuk@gmail.com \
--cc=harini.ramakrishnan@microsoft.com \
--cc=pallavi.kadam@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).