Subject: D-link WLAN support
To: None <tech-net@netbsd.org>
From: Pete Vickers <pete.vickers@computer.org>
List: tech-net
Date: 04/01/2001 17:57:34
Hi All,

Just a quick note about additional h/w support...

CanSecWest last week was running a wireless LAN for Internet access, so 
I strolled two blocks down the street & purchased a D-link DWL-650 WLAN 
pcmcia card.
My Compaq M300 laptop is [still] running NetBSD 1.5_BETA2, which 
grepping thru the source didn't mention these cards, but I rebuilt a new 
kernel with support for all the wireless cards I could see. Upon reboot, 
the card was recognised as a Lucent 'wi' device:

-------------------------------------------
pcmcia0: CIS version PC Card Standard 5.0
pcmcia0: CIS info: D, Link DWL-650 11Mbps WLAN Card, Version 01.02,
pcmcia0: Manufacturer code 0x156, product 0x2
pcmcia0: function 0: network adapter, ccr addr 3e0 mask 1
pcmcia0: function 0, config table entry 1: I/O card; irq mask ffff; 
iomask 6, iospace 0-3f; io16 irqpulse irqlevel
wi0 at pcmcia0 function 0wi0: init failed
: could not get mac address, attach failed
-------------------------------------------

undeterred, I commented out the offending instruction in if_wi.c :

-------------------------------------------
/*
* Check if we got anything meaningful.
*
* Is it really enough just checking against null enet address?
* Or, check against possible vendor?  XXX.
*/
if (bcmp(sc->sc_macaddr, empty_macaddr, ETHER_ADDR_LEN) == 0) {
printf(": could not get mac address, attach failed\n");
/* goto bad_enaddr; */
}
-------------------------------------------

and after a kernel rebuild, I got:

-------------------------------------------
wi0 at pcmcia0 function 0wi0: init failed
: could not get mac address, attach failed

wi0: address 00:00:00:00:00:00
-------------------------------------------

and I was then able to manually read the MAC address of the card myself, 
and use wiconfig to set it, giving:

-------------------------------------------

#wiconfig wi0

NIC serial number:			[ 0041003443   ]
Station name:				[ NetBSD WaveLAN/IEEE node ]
SSID for IBSS creation:			[ internet ]
Current netname (SSID):			[ internet ]
Desired netname (SSID):			[ internet ]
Current BSSID:				[ 00:e0:63:82:a6:99 ]
Channel list:				[ 2047 ]
IBSS channel:				[ 8 ]
Current channel:			[ 3 ]
Comms quality/signal/noise:		[ 16 63 1 ]
Promiscuous mode:			[ Off ]
Port type (1=BSS, 3=ad-hoc):		[ 1 ]
MAC address:				[ 00:40:05:de:6e:2b ]
TX rate (selection):			[ 11 ]
TX rate (actual speed):			[ 8 ]
Maximum data length:			[ 2304 ]
RTS/CTS handshake threshold:		[ 2347 ]
Create IBSS:				[ Off ]
Access point density:			[ 1 ]
Power Mgmt (1=on, 0=off):		[ 0 ]
Max sleep time:				[ 100 ]
WEP encryption:				[ On ]
TX encryption key:			[ ]
Encryption keys:			[  ][  ][  ][  ]

and:

#ifconfig wi0

wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
nwid internet
address: 00:40:05:de:6e:2b
media: IEEE802.11 DS11
status: active
inet 10.42.0.111 netmask 0xff000000 broadcast 10.255.255.255

-------------------------------------------

...which gave me full IP layer connectivity then.

So I don't know what caused the card init problems (I didn't have 
another vendor's card to try..), but I think the D-Link card use the 
same chipset are the Lucent/WaveLAN card. Maybe someone could this to 
the pcmcia card 'supported' list ?

thanks to Bill S / FreeBSD for the driver though ;-)

Pete.