RE: usb device to ether is not identification in 64bit Windows OS

From: Lipengcheng
Date: Mon Sep 19 2016 - 01:58:02 EST


Hi,
In windows official web, download a new linux.inf file, and add our hisilicon usb id. Now it can be used correct identification in PC windows 64bit OS. At the same time, it can also be used correctly in PC windows 32bit OS.
windows official web: https://msdn.microsoft.com/zh-cn/windows/hardware/drivers/network/remote-ndis-inf-template
the new file(add hisilicon usb id):

; Remote NDIS template device setup file
; Copyright (c) Microsoft Corporation
;
; This is the template for the INF installation script for the RNDIS-over-USB
; host driver that leverages the newer NDIS 6.x miniport (rndismp6.sys) for
; improved performance. This INF works for Windows 7, Windows Server 2008 R2,
; and later operating systems on x86, amd64 and ia64 platforms.

[Version]
Signature = "$Windows NT$"
Class = Net
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Microsoft%
DriverVer = 07/21/2008,6.0.6000.16384
;CatalogFile = device.cat

[Manufacturer]
%Microsoft% = RndisDevices,NTx86,NTamd64,NTia64

; Decoration for x86 architecture
[RndisDevices.NTx86]
%RndisDevice% = RNDIS.NT.6.0, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00, USB\VID_0525&PID_A4A2&REV_0318

; Decoration for x64 architecture
[RndisDevices.NTamd64]
%RndisDevice% = RNDIS.NT.6.0, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00, USB\VID_0525&PID_A4A2&REV_0318

; Decoration for ia64 architecture
[RndisDevices.NTia64]
%RndisDevice% = RNDIS.NT.6.0, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00, USB\VID_0525&PID_A4A2&REV_0318

;@@@ This is the common setting for setup
[ControlFlags]
ExcludeFromSelect=*

; DDInstall section
; References the in-build Netrndis.inf
[RNDIS.NT.6.0]
Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI
BusType = 15
; NEVER REMOVE THE FOLLOWING REFERENCE FOR NETRNDIS.INF
include = netrndis.inf
needs = usbrndis6.ndi
AddReg = Rndis_AddReg
*IfType = 6 ; IF_TYPE_ETHERNET_CSMACD.
*MediaType = 16 ; NdisMediumNative802_11
*PhysicalMediaType = 14 ; NdisPhysicalMedium802_3

; DDInstal.Services section
[RNDIS.NT.6.0.Services]
include = netrndis.inf
needs = usbrndis6.ndi.Services

; Optional registry settings. You can modify as needed.
[RNDIS_AddReg]
HKR, NDI\params\RndisProperty, ParamDesc, 0, %Rndis_Property%
HKR, NDI\params\RndisProperty, type, 0, "edit"
HKR, NDI\params\RndisProperty, LimitText, 0, "12"
HKR, NDI\params\RndisProperty, UpperCase, 0, "1"
HKR, NDI\params\RndisProperty, default, 0, " "
HKR, NDI\params\RndisProperty, optional, 0, "1"

; No sys copyfiles - the sys files are already in-build
; (part of the operating system).

; Modify these strings for your device as needed.
[Strings]
Microsoft = "Microsoft Corporation"
RndisDevice = "Remote NDIS6 based Device"
Rndis_Property = "Optional RNDIS Property"

> -----Original Message-----
> From: gregkh@xxxxxxxxxxxxxxxxxxx [mailto:gregkh@xxxxxxxxxxxxxxxxxxx]
> Sent: Monday, September 19, 2016 12:46 AM
> To: Lipengcheng
> Cc: corbet@xxxxxxx; linux-usb@xxxxxxxxxxxxxxx; linux-doc@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: usb device to ether is not identification in 64bit Windows OS
>
> On Sun, Sep 18, 2016 at 01:16:59PM +0000, Lipengcheng wrote:
> > Hi,
> > kernel versionï4.8.0
> > file:Documentation / usb / linux.inf
> > problem:PC windows is 32bit OS, using Ethernet gadget driver, it can
> > be correct identification. But PC windows is 64bit OS, while modifying
> > linux.inf file LinuxDevice parameters, it can not correct
> > identification, the serial port can be printed correctly:g_ether
> > gadget: high-speed config # 2: RNDIS. I suspect that the linux.inf
> > files are not mismatch 64bit windows OS.
>
> Given that everyone here does not use Windows at all, you are going to be on your own here, sorry. If you do come up with an updated .inf
> file, we will be glad to take a patch.
>
> good luck,
>
> greg k-h

Best regards,
Pengcheng Li