Monthly Archives: December 2004

D-Link DWL-660 (ORiNOCO)

D-Link DWL-660 WiFi 802.11b PCMCIA Card (ORiNOCO chipset)

Unofficial Support Page

by NERvOus

D-Link DWL 660 ORiNOCO Card D-Link DWL-660 Lucent MC Card Connector

 


DisclaimerThis 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 cardD-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/channelsIf 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:

DWL660 Firmware Updater

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 ManagerI 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:

  1. 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/
  2. Reinstall the driver for your card and choose the ORiNOCO one. Windows should recognize the card as ORiNOCO PC Card (5 Volt)
  3. Install the Client Manager
  4. 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

  1. Untar:
    $ tar xvzf orinoco-0.13e.tar.gz
  2. Apply the patch:
    $ cd orinoco-0.13e
    $ patch -p0 <monitor-0.13e.patch
  3. 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/


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

Share