Lasted NDIS wrapper for D-Link DWL-520+ on RELENG_6

Jeremie Le Hen jeremie at le-hen.org
Fri Nov 25 00:54:22 GMT 2005


Hi Bill,

> > > Now, The first thing you should have done is to actually inspect the
> > > .INF file. Like the self-documenting ndisgen(8) script tells you, this
> > > is the file that actually contains the device ID information that the
> > > Windows Plug & Play Mangler will use when trying to match a device
> > > to a driver. The AIRPLUS.INF file says:
> > > 
> > > [D-Link]
> > > %AIRPLUS.DeviceDesc1% = AIRPLUS.8400, PCI\VEN_104C&DEV_8400&SUBSYS_3B001186
> > > %AIRPLUS.DeviceDesc2% = AIRPLUS.8400, PCI\VEN_104C&DEV_8400&SUBSYS_3B011186
> > > 
> > > Note that the PCI vendor ID (0x104c) matches your device, but the
> > > device ID (0x8400) does not (yours is 0x9066).
> > > 
> > > In this case, the .INF file tells Windows to look for two possible
> > > devices. In reality, both devices use the same chip (vendor 0x104c,
> > > device 0x8400), but there are two board variants (one with 0x3b001186,
> > > the other 0x3b011186). The subsystem ID is really another vendor/device
> > > ID combination (0x1186 is D-Link's vendor ID, 0x3b00 and 0x3b01 are
> > > the device codes D-Link has assigned to their boards). Exactly what
> > > the differences are between the board revs is anyone's guess. Maybe
> > > they use the same Texas Instruments chip, but with slightly different
> > > RF circuitry. Maybe they're really the same electronically, but D-Link
> > > decided to give each production run their own ID code because they're
> > > funny that way.
> > > 
> > > In any case, not only do the vendor ID and device ID not match your board,
> > > the subsystem IDs don't match yours either (0x3b041186). So this driver
> > > is not the one that goes with your card.
> > 
> > Ok thank you very much for this explanation, this is now very clear.
> > I'm going to try other drivers, I think looking on Google for these
> > vendor and device IDs will point out a relevant driver.  At first
> > glance it seems that NetGear WG-311 uses the same chip, I'm going to
> > have a try to their driver.
> 
> One more thing. Different board distributors will often use the same
> chips, but sometimes they assign their cards different subsystem IDs,
> just to fool people into thinking the cards are really different. For
> example, the Netgear WG311 driver's .INF file might have entries that
> specify the same VEN/DEV values, but with a different subsystem ID.
> This would prevent Windows from recognizing that Netgear's driver
> will work with D-Link's card, and vice-versa.
> 
> To defeat this, you need to edit the .INF a little. You can remove
> the &SUBSYS portion of the device description. In other words, if
> the .INF says this:
> 
> [D-Link]
> %AIRPLUS.DeviceDesc1% = AIRPLUS.8400, PCI\VEN_104C&DEV_8400&SUBSYS_3B001186
> %AIRPLUS.DeviceDesc2% = AIRPLUS.8400, PCI\VEN_104C&DEV_8400&SUBSYS_3B011186
> 
> Then make it say this:
> 
> [D-Link]
> %AIRPLUS.DeviceDesc1% = AIRPLUS.8400, PCI\VEN_104C&DEV_8400
> %AIRPLUS.DeviceDesc2% = AIRPLUS.8400, PCI\VEN_104C&DEV_8400&SUBSYS_3B011186
> 
> Note that you don't have to remove the &SUBSYS specification from both
> lines: one is enough. This will allow Windows (and, coincidentally,
> the NDISulator), to match the driver to any card with the correct
> PCI vendor/device ID, regardless of its subsystem ID.

Ok, these precisions have been indeed *very* precious, is it the
first time you post them ?

I have had this card for two years and I have tried to make it work
many times in the past, so I now have a great collection of DWL-520+'s
driver versions from D-Link.  I check for my own card ID (9066) among
them, none of the provided .INF handles it.  That's a pity.

I checked NetGear WG311's drivers and it appears that the WG311v2
family does use the same chip as my D-Link DWL-520+ based on a Texas
Instrument chip.

I downloaded this driver :
    ftp://downloads.netgear.com/files/wg311v2_v2_0_0_7.zip

I wanted to use the Windows XP driver, but the SUBSYS value didn't
match, as you described it.  Therefore I suppressed it and got the
ndis0 interface for the first time since I own this card !

% ndis0: <NETGEAR WG311v2 802.11g Wireless PCI Adapter> mem 0xc9a00000-0xc9a01fff,0xc99e0000-0xc99fffff irq 19 at device 8.0 on pci0
% ndis0: NDIS API version: 5.1
% ndis0: Ethernet address: 00:80:c8:2c:58:db

For the sake of completeness, I loaded firmware related KLD before
loading the real driver itself.

Thank you very much for you help P^HBill ;-).

Best regards,
-- 
Jeremie Le Hen
< jeremie at le-hen dot org >< ttz at chchile dot org >


More information about the freebsd-current mailing list