Originally, Ralink have always had Linux drivers for their rt2400 and rt2500 chipsets. These drivers were released to the public initially as binaries, and then later on as a restricted-license source package
This project started off when a wireless hardware company named Minitar requested that Ralink release their rt2400 driver under the GPL license such that the strong community that had formed could further bugfix and enhance the source code. Ralink agreed and released the rt2400 source under the GPL license, and such began this open-source project.
After six or so months Ralink also decided to release their rt2500 driver under the GPL license and support for that driver was also incorporated in to the project. At the start of 2005 Ralink released their rt2570 USB driver under GPL as well. There was no rest for the team here :-)
The codebase evolved to have many features beyond the those present in the original RaLink driver. Changes included amongst others:
- Huge increases in overall driver stablity
- Support for compilation under non-Redhat Linux Distributions
- Interface updates to the RaConfig X11 utility
- 2.6 Kernel Support
- Promisc mode support (with assistance from Ralink)
- AMD64 Support
- Monitor (RFMON) mode support
The decision was made to completely rewrite the driver which is capable of supporting more architectures and devices with less resources. The source code of the original drivers all look quite similar, which meant we could create a single driver package containing support for all Ralink drivers, both USB as PCI.
Because at that time there was no ieee802.11 stack available, all management frame handling was handled within the rt2x00 driver. This first attempt ended in the rt2x00_alpha tree. But without a ieee802.11 stack, this tree was difficult to work on, and never really worked.
At some point Intel announced the IPW ieee80211 stack, this stack was promised to help wireless drivers by taking over a lot of work from the drivers. rt2x00 was redesigned to use this stack and the rt2x00 beta tree begun.
After working with the IPW ieee80211 stack which was merged into the kernel, the rt2x00 team decided to move over to the newer Devicescape ieee80211 stack. This stack provided much better support for non-firmware wireless devices, and offered features the IPW stack never did. The last release with the IPW ieee80211 stack was rt2x00 Beta3, after that rt2x00 was redesigned to use the Devicescape 80211 stack, which has been renamed to mac80211.
The mac80211-stack was included in to the kernel 2.6.22 and on January 24th 2008, Linux Kernel 2.6.24 was released, and it was the first mainline kernel that included the rt2x00 driver.