Disclaimer
This is an unofficial support page for the D-Link DWL-660 PCMCIA
Card. I do not assume any responsibility for errors or omissions,
or for damages resulting from the use of the information contained
herein.
No liability for the contents of this documents can be accepted. Use
the concepts, examples and other content at your own risk.
All copyrights are held by their by their respective owners, unless
specifically noted otherwise. Use of a term in this document should not
be regarded
as affecting the validity of any trademark or service mark. Naming of
particular products or brands should not be seen as endorsements.
About
the card
D-Link is selling two completely different cards with the
same model name: only the non-US
version of DWL-660 has the ORiNOCO chipset.
This document refers to the non-US version
of DWL-660.
I bought my card from a German shop on ebay. The most interesting
feature is the presence of a Lucent MC-Card connector (
not a MMCX one, as you may have read
somewhere else!), so you can connect an external antenna and extend its
range.
The DWL-660 also supports WEP with 128 bit keys, like any ORiNOCO Gold
cards.
Changing
the MAC address/Manufacturer/WEP 64-128 bit/channels
If for some reason your ORiNOCO card fails to use 128bit wep keys, you
can upgrade it using alchemy:
http://www.geocities.com/lincomatic/software.html
With this program you can also dump the PDA (Production Data Area) of
your card and eventually modify it.
The PDA contains the PDRs (Production Data Records) which define:
- the WEP capabilities (48 or 128bit, that's to say Silver or Gold)
- MAC address
- serial number
- allowed channels
- manufacturer of your card
By modifying the PDA, you can change any of this records. After writing
the PDA back to the card with alchemy, you will also need to flash it
with a new firmware.
That's because the PDA is used to fill the relevant fields in the
firmware while uploading it.
Until you flash the card with a new firmware, the new PDA will be
ignored and you'll keep using the old firmware.
After you flash the card with a new firmware, the new PDA will be
merged into it and you'll see the new settings.
Flashing
the firmware
The ORiNOCO product
family is now part of
Proxim,
which was spun off from
Agere Systems
in August 2002, which was spun-off by
Lucent
in 2001.
Old firmwares for ORiNOCO cards are no longer available from Proxim,
but they were mirrored by a few guys on the net before the archive was
brought offline. You can find them at:
http://ftp.lucky.net/pub/radio/software/ORINOCO/PC_Card/
I also partially mirrored them at my site:
http://www.nervous.it/download/wifi/ftp.lucky.net/pub/radio/software/ORINOCO/PC_Card/
The latest firmware (v. 8.72) is shipped with the latest driver
version, available for download directly from Proxim at:
http://www.proxim.com/support/all/orinoco/software/dl2002-oricli-win-sr-02.html
You'll find it inside the Firmware/ directory, in the archive.
The name of the firmware updater is usually WSU10XXX.exe where XXX
stands for the firmware release. The firmware is inside the .exe
itself: you can find it by searching for the string ".HEX" inside the
file, using a hex editor.
The D-Link DWL-660 is a re-branded card. It's identical to any ORiNOCO
card except for the label and the card id.
You can upgrade or downgrade the firmware using the
same programs
available for ORiNOCO cards. There a few caveats that you should be
aware of, though:
- In order to use the firmware updater, you must install the
ORiNOCO driver which is shipped with the firmware updater and uninstall
the
D-Link one (NOT SURE?)
- WSU106XX.exe doesn't care if your card id is not an ORiNOCO one
- The firmware updater for versions >6.xx (that is 7.25,
7.52, 8.10 and 8.72) will try to detect your card before attempting to
flash it. Obviously it won't recognize your card as an ORiNOCO one and
it will print the
following error message:
No Wireless Card Driver Found
You'll need to hex edit the firmware
updater so that it recognizes it as a supported card.
WARNING: only
attempts this if you are positively sure that your card mounts an
ORiNOCO chipset.
Download a hex editor (google for it) and install it.
Download the firmware updater for the release that you need.
Open WSU10XXX.exe in the hex editor.
Search for the string
LUCENT_TECHNOLOGIES-WAVELAN/IEEE-
. There should be at least 3 strings which match it, each one
ending with four different hex digits.
Delete one of them, e.g.:
LUCENT_TECHNOLOGIES-WAVELAN/IEEE-911F
and replace it with your card id. Mine is:
D-Link-D-Link_Air_DWL-660_wireless_PC_Card-39FC
As you may have already noticed, the new string is 10 chars longer than
the old one. We need to keep the size of the file unchanged, so we are
going to delete 10 chars from the name of one of the cards we don't
own. The card id immediately after the one we just replaced is:
LUCENT_TECHNOLOGIES-WAVELAN/IEEE-364C
Let's cut it down to
LUCENT_TECHNOLOGIES-WAVELAN
Save the file, exit the editor and run the firmware updater. If you are
lucky, this time you should
see a window like the following:
In this example, I'm trying to downgrade the firmware from 8.72 to 8.10.
Now, if you are trying to upgrade/downgrade your card to a 8.x firmware
release, pressing
Update is
enough to flash the card.
When using an older release, like 7.x and 6.x, the update process will
fail with the error message:
"Your current wireless card is not
updateable with this utility. Please check our website for information
about the latest available drivers and firmware updates."
Honestly, I don't know what causes this error message. One may think
that the updater is refusing to flash the card because the current
firmware is more recent than the one we are trying to write, but that's
not the case. While hex editing the firmware updater, I found the
following error message: "..Please try again or revert to a previous
version...". So the updater
can
be used to revert to a previous firmware version.
Curiously enough, this problem seems to affect only D-Link DWL 660. For
most ORiNOCO clones the updating process just works.
aCaB made an hacked version of
WSU10616.exe,
WSU10728.exe and
WSU10752.exe which can ignore the error and
continue the updating process.
These hacked versions of the firmware updater are already patched to
detect the D-Link card correctly.
USE
THEM AT YOUR OWN RISK! I tried all of them on my card
and they flashed it correctly.
About
Windows drivers and Client Manager
I upgraded the firmware to ver. 8.72 and I can still use it with the
driver
and Client Manager made by D-Link. You can find them at:
ftp://ftp.dlink.it/pub/Wireless/DWL-660/Driver/dwl-660.zip
.
The Client Manager by D-Link is identical to the ORiNOCO one, except
for the name, so there
is no real reason to change it.
However the Client Manager shipped by other manufacturers sometimes
stops working after upgrading the firmware or it's hasn't got all the
features of the ORiNOCO one. If you don't have a D-Link 660 card and
your Client Manager doesn't work anymore, you may want to install the
Client Manager by ORiNOCO. Here is how to do it:
- Get the driver and Client Manager released together with the
firmware your card is using.
If you are using firmware 8.72, get them at http://www.proxim.com/support/all/orinoco/software/dl2002-oricli-win-sr-02.html
If you are using firmware 7.x or 6.x, get them at:
http://ftp.lucky.net/pub/radio/software/ORINOCO/PC_Card/
or at one of its mirrors:
http://www.nervous.it/download/wifi/ftp.lucky.net/pub/radio/software/ORINOCO/PC_Card/
- Reinstall the driver for your card and choose the ORiNOCO one.
Windows should recognize the card as ORiNOCO
PC Card (5 Volt)
- Install the Client Manager
- The Client Manager won't detect your card unless you hex edit Cmluc.dll and add the D-Link
DWL-660 to the list of supported cards.
After installing the Client Manager, search your HD for the file
Cmluc.dll, it should be ~190KB large. Open it with your favourite hex
editor and modify it the same way you did earlier with the firmware.
This hack is known to fail quite often under Win2K. The
error
message usually reads:
Error opening the control
panel
applet: wnluc48.cpl 8002
I read that many people had success using it under WinXP.
Remember that you need to install the very same version of Client
Manager and Driver, you can't mix them!
About
firmware and Linux driver releases
The card uses the same firmware used by ORiNOCO
cards.
As of December 30th 2004, the latest firmware release available is 8.72.
The latest
orinoco
driver for Linux (version 0.15rc2) doesn't like the 8.x firmware.
It will refuse to run in
monitor mode
(i.e. sniffing) if it detects such a firmware. I also tried the latest
CVS snapshot (taken on December 29th, 2004) with the same result.
I tried to remove the check for the firmware version and forced the
driver to enable monitor mode despite the 8.x firmware. When I ran
kismet, the card stopped working after gathering a few packets and the
only way to bring it back to life without ejecting was:
$ iwpriv eth1 card_reset
The driver's home page reports success stories using firmware 6.16 and
7.52.
So I flashed the card with firmware 7.52, 7.28 and 6.16 and tried
running kismet with each of them. This
time the monitor mode was enabled out of the box, no need to patch the
drivers.
However kismet wouldn't sniff any packets, as if the card wasn't
actually receiving any packet.
So I went back to orinoco driver version 0.13e and upgraded the
firmware to 8.72.
Version 0.13e of the driver doesn't support monitor mode out of the
box, you need to patch it with monitor-0.13e.patch.
You can find the files you need at
http://ozlabs.org/people/dgibson/dldwd/
or
http://airsnort.shmoo.com/orinocoinfo.html
.
Step by step instructions:
Get orinoco-0.13e.tar.gz and monitor-0.13e.patch
- Untar:
$ tar xvzf orinoco-0.13e.tar.gz
- Apply the patch:
$ cd orinoco-0.13e
$ patch -p0 <monitor-0.13e.patch
- Compile:
$ make
# make install
You need to make your kernel sources available under /usr/src/linux and
you have to disable support for Hermes PCMCIA cards in your kernel
tree. Also delete any old orinoco* and hermes* file from
/lib/modules/2.x.x/ before installing the new driver.
The orinoco 0.13e driver
doesn't
compile cleanly when using kernel
2.6.x .
A guy from Germany (plasmahh at tzi dot de) ported the orinoco 0.13e
driver to 2.6.x. The sources are available here:
http://www.tzi.de/~plasmahh/orinoco.html
and are mirrored here:
http://www.nervous.it/download/wifi/orinoco-0.13e-SN-5.tar.bz2
This driver already includes the monitor patch, so all you have to do
is unpack, make and make install. I found this driver to be very
reliable!
The reason why the patched 0.13e driver works in monitor mode and the
0.15rc2 doesn't is that the monitor patch contains many work-arounds
for bugs in the 8.x firmware.
The orinoco driver's maintainers refused to use these work-arounds in
the official version of the driver and simply blacklisted the firmware.
Credits
The author of this document is: Luca 'NERvOus' Gibelli (nervous
-at- nervous -dot- it)
A big thank you to:
- aCaB: he cracked the firmware updaters <8.x and made them work
with the
DWL-660 card.
- plasmahh: he updated the orinoco driver ver. 0.13e and fixed the
issue when compiling the driver for kernel 2.6.x.
Most of the info on this page were taken from:
http://www.seattlewireless.net/index.cgi/LucentWirelessCard
http://www.seattlewireless.net/index.cgi/OrinocoDriver
http://airsnort.shmoo.com/orinocoinfo.html
http://www.nongnu.org/orinoco/
http://www.netstumbler.org/

This work is licensed under a
Creative
Commons License.
Last update: December 30th, 2004