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
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
as affecting the validity of any trademark or service mark. Naming of
particular products or brands should not be seen as endorsements.
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
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
The DWL-660 also supports WEP with 128 bit keys, like any ORiNOCO Gold
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:
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.
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
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:
I also partially mirrored them at my site:
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
available for ORiNOCO cards. There a few caveats that you should be
aware of, though:
attempts this if you are positively sure that your card mounts an
- In order to use the firmware updater, you must install the
ORiNOCO driver which is shipped with the firmware updater and uninstall
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.
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.:
and replace it with your card id. Mine is:
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:
Let's cut it down to
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
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
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.
THEM AT YOUR OWN RISK!
I tried all of them on my card
and they flashed it correctly.
Windows drivers and Client Manager
I upgraded the firmware to ver. 8.72 and I can still use it with the
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:
or at one of its mirrors:
- 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
message usually reads:
Error opening the control
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!
firmware and Linux driver releases
The card uses the same firmware used by ORiNOCO
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
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
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/
Step by step instructions:
Get orinoco-0.13e.tar.gz and monitor-0.13e.patch
$ tar xvzf orinoco-0.13e.tar.gz
- Apply the patch:
$ cd orinoco-0.13e
$ patch -p0 <monitor-0.13e.patch
# 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
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:
and are mirrored here:
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
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.
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
- 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:
This work is licensed under a Creative
Last update: December 30th, 2004