Last Update: Tue Jul 04 14:34:49 IST 2006

Driver for RTL818x based WLAN adapters

Linux kernel driver for 802.11 wireless ethernet cards based on Realtek’s RTL8180L/RTL8185L chipsets.

Released under the terms of GNU General Public Licence (GPL) Copyright© 2004,2005 Andrea Merello

Portions of this driver are based on driver for Intel Pro Wireless 2100 cards. Thanks to the original authors! Most notabily, the ieee802.11 stack is imported from this project, altought I’ve modified it.


This was an attempt to write something that can make my rtl8180-based wlan card work under Linux (using only open source stuff). It still is in an early development stage and should be considered just a fragment of working code. Please don’t expect too much from it and use it on your (and, or any other) system at your own risk! Please note that I never supported the idea to use it in anyway, so I cannot be considered responsible in anyway for anything deriving by it’s usage.

Anyway for now we basically have monitor and managed modes working! This isn’t necessarily stable as yet, but seems to work… Also since v 0.16 we have an initial and incomplete support for ad-hoc mode. Please see README.adhoc for further details

An official driver from Realtek exists for this NIC but

  • that is mainly closed source stuff :(
  • that doesn’t work on 2.6 (and some 2.4) kernels
  • or doesn’t even complile under kernel versions 2.6.17.x
  • that hasn’t any support for monitor mode

We also made it to work with ndiswrapper, but since I don’t like the idea of using a closed source Windows XP driver, that’s why I decided to try writing this native driver for Linux kernels. (It is notable that even their Windows driver is not a true 32 bit compliant, that’s why FreeBSD 6.x’s ndis driver can’t load and, or execute it :(

*!!Please note that only cards with a PHILIPS sa2400 or MAXIM or GCT RF chip are well supported.!!* Cards with Realtek’s 8225 and 8255 also work, but the code for these is still very experimental.

There are some variants of the card with rtl8180 and philips sa2400 RF: antenna diversity, firdac etc… Support for such a radio chips is also very experimental.

Altought all configurations should be supported, some are not tested and might fail. If you decide to test this driver on a digital-phy card, please let me know the results.

It is still far from complete a driver and support for SMP, endianess checks are also missing.

If you decide to try it; your feedback reports on success/insuccess and, or bugs shall highly be apreciated.

Compiling, Tiny HOWTO

To compile the driver simply run make in the directory, where you have extracted the contents of source tarlball and, or checked it out from CVS repository.

Note that the Makefile should work on kenrel 2.6 and is not tested for version 2.4 installations, please let us know if the same works?

Six modules will be compiled: five for ieee802.11 wireless network stack and one for the rtl818x driver. You need to insmod ALL of them! either with the help of shall ifup-wlan0 script and, or manually; following the order listed in this script. Please see INSTALL for further details.

If you would like to set the interface name to something else you may use the ‘ifname=’ module parameter. For example:

  insmod rtl818x.ko ifname=eth%d

will set the interface name of this device to something like eth0.

Once the nic is up it can be put in a monitor mode by running:

  iwconfig <ifacename> mode monitor

and channel number may be changed by running:

  iwconfig <ifacename> channel XX

Monitor mode is also accessible via iwpriv, so Kismet works (altought channel change routines work fine, but these still are a bit slow so channel hopping may not work perfectly).

In monitor mode a choice may be made via iwpriv if the nic should pass packets with bad crc or drop them.

To put the nic in managed mode run:

  iwconfig <ifacename> mode managed

In managed mode there is support for

  iwlist scan

that should report the currently available networks. Please note that in managed mode channels cannot be changed manually.

To associate with a network

  iwconfig <ifacename> essid XXXXX

where XXXXX is the network essid (name) reported by ‘iwlist scan’. Please note that essid is case sensitive.

If your network is not broadcasting the ESSID, then you may also need to specify the access-point’s MAC address

  iwconfig <ifacename> ap XX:XX:XX:XX:XX:XX

The driver accepts another boolean parameter: hwseqnum

If set to 1 it lets the card HW take care of the sequence number of the TXed frames. Altought in managed mode I can’t see any important reason to use HW to do that, when we’ll start to TX beacons in master (AP) and ad-hoc modes most probably it will be extremely useful (since we most probably will use two HW queues).

I’m unsure if it will work correctly on all NICs… reports, patches and, or feedbacks shall highly be apreciated.


Since v 0.8 WEP encryption should be supported (tested with 104 bit keys). Wep encryption is done by host, not by the nic. Key can be set with:

  iwconfig <ifacename> key 12345...

WEP is supported via software thanks to the ipw stack. I’ve found some nic register for HW wep encryption, but I discovered that my nic seems not to support it.

I’ve found some register for nic HW wep encryption, but I discovered that my nic in truth seems not to support it. Code to use HW wep is present and available by a module param, but most probably it is buggy even in cards that have HW wep (if any exist).

if you experience problem you might try to compile without wep by uncommenting a line in the Makefile itself.

If you still have some questions/comments please feel free to write me.

See Also



[ Support this project ] Any contribution of yours, although howsoever small it may be, shall highly be appreciated; for further development of this and, or many other F/LOSS (Free/Libre Open Source Software) Projects.

Donations will be used to buy various wireless cards and other hardware so that the driver can best be tested and improved for compatibility and support. Right now we only have a set of one Surecom EP-9321-g/2A PCI and one Surecom EP-9428-g/2A CardBus adapters based on Realtek's RTL8185L chipsets; a 64-bit machine, preferably an SMP, is needed to add, test and, or improve support for 64-bit drivers.


Copyright (C) 2005-2006 by Balwinder S "bsd" Dheeman. Distributed under the GNU GPL ( See the files "COPYING" and, or "Copyright" , supplied with all distributions for additional information.

This software also contains portions of copyrighted material from various other projects, please read the source code for further details.


Balwinder S "bsd" Dheeman <bsd/AT/>

$Id: README,v 1.4 2006/07/04 09:04:49 bsd3 Exp $

[ Logo ] [ Valid XHTML 1.0! ]