Feature: OpenBSD's "Out of the Box" Wireless Support

Submitted by Jeremy
on March 8, 2005 - 5:41am

The OpenBSD project has long been associated with security. Indeed, thanks to proactively and regularly auditing its code, the project's web site is able to boast "only one remote hole in the default install, in more than 8 years," and another page states "our aspiration is to be NUMBER ONE in the industry for security (if we are not already there)." However, security is not the only focus of OpenBSD, as reflected in the project's slogan which reads, "Free, Functional and Secure." All three of these words are strongly backed by OpenBSD developers.

If you speak with OpenBSD creator Theo de Raadt for any length of time, you will quickly realize just how important freedom is to the project. For example, freedom was the driving force behind the now ubiquitous OpenSSH, developed within the OpenBSD project. It has also lead to the development of OpenNTPD, OpenCVS, and the widely used pf Packet filter [story]. In recognition of these many contributions, Theo recently received the 2004 Free Software Award from the Free Software Foundation. The freedom that the OpenBSD team works so hard for comes without any strings, patents, or conditions, distributed under the BSD license.

Currently, the OpenBSD project is focusing on wireless networking technology, working to convince hardware manufacturers to make the firmware for their wireless cards freely distributable. It sounds simple enough, but the effort has taken much persistence and perseverance. Many of today's corporations require the signing of non-disclosure agreements and other legal red tape prior to making firmware or documentation available, requirements that don't measure up to OpenBSD's standards for freedom.

Wireless Support In OpenBSD 3.7:
OpenBSD 3.7 will be available on May 19'th, 2005. In it, users will find a dozen drivers for a range of wireless networking cards and chipsets (See Table 1). All but two of these work straight out of the box. For example, new in 3.7 and still under active development is the ral driver for Ralink Technology's RT2500 chipset, developed by Damien Bergamini. Damien notes that "the RT2500 chipset does not require a firmware. It relies on the host CPU for everything related to 802.11." 802.11 is the family of specifications around which wireless LAN technologies are designed.

Table 1, Wireless Drivers In OpenBSD 3.7
Driver Description
an Aironet Communications 4500/4800 IEEE 802.11B wireless network adapter
ath Atheros IEEE 802.11A/B/G wireless network adapter
atu Atmel at76c50x 802.11B wireless network interfaces
atw ADMtek ADM8211 802.11B wireless network interface
awi BayStack 650 IEEE 802.11FH PCMCIA wireless network driver
ipw Intel PRO/Wireless 2100 IEEE 802.11B wireless network adapter
iwi Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11A/B/G wireless network adapters
ral Ralink Technology RT2500 IEEE 802.11A/B/G wireless network adapter
ray Raytheon Raylink/WebGear Aviator IEEE 802.11FH 2Mbps wireless network adapter
rln device driver for RangeLAN2-based wireless network cards
rtw Realtek 8180 802.11 wireless network driver
wi WaveLAN/IEEE, PRISM 2-3 and Spectrum24 802.11B wireless network interfaces

OpenBSD's new ral driver was reverse engineered from the now GPL'd Linux driver developed by Ralink Technology. Damien described the Linux rt2500 driver as basically being "a quick and dirty port" of their MS Windows NDIS driver. He noted that it contained its own 802.11 layer making the effort quite difficult. "I had to distinguish clearly what was device dependant and what belonged to the 802.11 layer, because both are clearly separated in OpenBSD. As a result of this work, the OpenBSD driver is only ~3,500 lines long compared to the ~30,500 lines of the Linux driver for roughly the same functionalities." Damien went on to point at that this is important because "less code makes review and bug fixing much easier."

Also new in OpenBSD 3.7 is the ath driver for the Atheros chipsets, an effort led by Reyk Floeter. Reyk originally began working on an Atheros driver for Linux, an effort that earned him threats by Atheros Communications. He notes, "I discontinued working on any WLAN drivers for Linux for several reasons. It's mostly because I got excited about OpenBSD ;-)." Later, Sam Leffler, an Atheros Communications employee at the time, developed a FreeBSD ath driver that links to a binary-only HAL object. Atheros refused to open the binary file, so through much dedicated effort Reyk reversed engineered it. The new ath driver in OpenBSD began with merging Sam's original efforts with Reyk's reverse engineered binary object, although work is currently being done to simplify the whole thing, possible now that the binary object has been reverse engineered.

Like the RT2500 chipset, the Atheros chipsets also do not utilize a firmware. Chipsets that require most of the work being done by the driver are often referred to as software defined radios, or SDRs. Reyk notes, "this offers a lot of possibilities and great flexibility, but on the other hand it's not that easy to implement." As for functionality, Reyk explained that the new driver "will support basic IEEE 802.11 operation in station-, hostap- and monitor- mode. We're not supporting anything like IEEE 802.11i, WPA or 802.11e (QoS) and I don't plan to implement it in the near future."

Theo de Raadt stressed the importance of simply having drivers that work. "Rather than focusing on all the 802.11foo extensions that everyone else is, we are focusing on what really matters most: BASIC operation. If you have no basic operation with a chipset, you are 100% fucked. If at least you have basic operation, we can build further than that." It is much because of this philosophy that users of the upcoming OpenBSD 3.7 will find such wide range of functional, newly supported wireless hardware.

A lot of effort has been put into improving 802.11 support in OpenBSD 3.7. Reyk explained that additional functionality has been added to the ifconfig command, describing it as now being "very easy to use and well documented in the manual page." He pointed out that this deprecates most special non-standard tools for the drivers, such as wicontrol. Underneath, meticulous effort is being made to develop and maintain a generic 802.11 layer commonly used by all drivers.

Firmware Licensing
There are only two 802.11 drivers included in OpenBSD 3.7 that don't include everything required to properly function. Specifically, the ipw and iwi drivers for Intel hardware both require that you first obtain and properly install firmware files. As explained in their respective man pages, "these firmware files are not free because Intel refuses to grant distribution rights without contractual obligations. As a result, even though OpenBSD includes the driver, the firmware files cannot be included and users have to find these files on their own." The man pages go on to provide Peter Engelbrecht's email address and phone number, the contact within Intel that Theo describes as "the person who works with the team who can change their policy." Exactly what files need to be obtained and where they need to be installed is not entirely clear. "Why should we make it easy?" Theo asks. "The someone who can make it easy is INTEL. THEY can give us permission, and it will become easy."

When asked why they even bother to include these two drivers, Theo explained, "well, because someone wrote those two drivers. By including them, he has now become a part of our development group. Yes, there is a firmware that people do not have. A couple of files. But we tried. At least someone can now get them." While not being as easy to use as the other 10 drivers, the option does exist. However Theo cautions, "not having those files, and not clearly documenting exactly where to get them (like why should we include URLs, when URL's change all the time, and then the man pages suck)... we make it clear that those chipsets are definitely SECOND TIER. Not as well supported. Not our problem. We have done our best."

As noted earlier, everything included in the OpenBSD distribution is freely available under the BSD license. It is not possible to include the Intel firmware because Intel requires a "contractual agreement" that is incompatible with the BSD license and the OpenBSD project's belief in freedom. The belief that the binary firmware should be freely distributable has nothing to do with whether or not it is open source, a distinction that is frequently confused.

Damien Bergamini, author of both of these Intel drivers, described how companies requiring non-free agreements be made to distribute the firmware required to use their hardware, and the fact that other supposedly free operating systems willingly do so as, "a sad situation." Referring to the OpenBSD project's unsuccessful efforts to convince Intel and other companies to change their policies he added, "unfortunately, only OpenBSD has actually complained about this situation. I think we could have gotten better results if the Linux community joined us in our efforts to free these firmwares, but the ipw2100 and ipw2200 drivers from Intel are about to get incorporated in netdev and nobody seems to really care about these license issues anymore."

Damien pointed out that the problem is more than with just distribution. He described the current companies as using a "'half-open' model" in which the firmware's functionalities aren't even documented. He explains, "it is basically impossible for someone to improve Intel's drivers without this documentation. For instance, there will be no monitor or HostAP support for ipw2200 in Linux (or OpenBSD) until Intel decides so because it requires a special firmware that nobody except Intel can write."

Intel is not the only manufacturer of wireless chipsets that is refusing to work with the free software movement. Texas Instruments officially ignored over 6,000 emails and over 100 phone calls from concerned customers (potentially ex-customers, now) asking them to allow the free distribution of their firmwares [story]. A once optimistic discussion between OpenBSD and Conextant recently stalled. And Broadcom, the manufacturer of the hardware used by Apple, is also on the list. Regarding Broadcom, Theo de Raadt had some harsh words, describing their hardware as "bug-ridden", and their policies as "horridly closed". He stated flatly, "Broadcom and Apple are the antithesis of free disclosure of information."

Theo summarized the responses to OpenBSD's recent efforts to get all wireless manufacturers to open their chipsets, "the American companies said no, but companies in the rest of the world are being good about being open. And the American companies are losing market rapidly now for reasons other than open and closed, and I have absolutely no reason not to support the Taiwanese or European companies who actually think this through." Indeed, the chipsets created by companies willing to work with OpenBSD include quality products in wide use. For example, Damien Bergamini described the Ralink chipsets as "very cheap and efficient (in terms of speed and power consumption)", noting that they are used by many major vendors including D-Link, Linksys, Surecom and Asus. Reyk Floeter noted that some of the Atheros chipsets, namely the ar5211 and ar5212, are found in several popular notebooks including the new IBM Thinkpads, and the Sony VAIOs. Theo further explained, "we work with the vendors, to make the small and weaker ones stronger, and thereby, make the strong ones weaker."

There is still hope that one of the remaining closed vendors will open up. And if this happens, Theo explains, "if we get a few to open up, it puts more pressure on the others to open up." However this will likely take a combined effort that includes other projects beyond OpenBSD. "The really dismal part," Theo reflected, "is that the FSF and the Linux community mocked us, rather than mocking the closed vendors. That is the sad thing. The big players in those communities may talk about freedom, but it is all show, because when something of importance like this does come up they do not act."

Conclusion
The OpenBSD project takes freedom seriously. The dozen wireless drivers that will be found in OpenBSD 3.7 are a significant accomplishment. Distributed under the BSD license, they are all completely free of patents, NDAs and other contractual agreements. Ten of them work as is, and are actively maintained by one or more developers. The core 802.11 networking functionality is fully supported on each, with additional features being added.

As long as the remaining companies that refuse to work with OpenBSD and other free and open source projects continue to hear from concerned customers, the chance remains that they will eventually change their policies. Purchasing products from companies who willingly work with the free and open source communities rewards them for their actions. What happens next is largely up to you and I, the consumers.

Wireless skepticism

APz
on
March 8, 2005 - 7:11am

I'm still a bit skeptical about all these 'consumer grade' wireless networking products. It'd seem that most of the hardware is released half-ready or untested, and then it's up to the user to upgrade their firmware and tweak until they even remotely work. Even then, you'll have to back up slowly and never turn your back on them :)

Are there actually perfectly working wireless network cards and access points?

my setup

Anonymous (not verified)
on
March 9, 2005 - 3:22am

I have a perfectly-working home setup: one DLink AP, one Prism2 card, two Atmel USB adapters. No problems.

impressive list of drivers, but ...

Anonymous (not verified)
on
March 8, 2005 - 7:42am

the article doesn't mention how many of them were taken from other operating systems like netbsd and openbsd, anch how many of them were really written by the openbsd project.

...where is the problem?

Anonymous (not verified)
on
March 8, 2005 - 8:21am

Other systems like NetBSD will benefit from this work. They will have a chance to get rid of their binary-only ath HAL and to use OpenBSD's free replacement. It's very common to share code between the BSDs, improve it and to contribute it back. A lot of developments from the OpenBSD project are included in Free/NetBSD as well, like CARP, pf, OpenSSH, ... so where's the problem? Of course, this is possible because it's FREE software.

So is the Linux kernel, and i

Anonymous (not verified)
on
March 8, 2005 - 3:31pm

So is the Linux kernel, and it sounds like a lot of inspiration was drawn from there. Does that mean the openbsd kernel is no GPL?

The drivers were reverse engineered

Anonymous (not verified)
on
March 8, 2005 - 4:00pm

OpenBSD doesn't have straight ports of Linux drivers - they are reverse engineered and thus can be put under the licence of the reverse engineerer.

I don't think the OpenBSD kernel has any non BSD licenced bits in it any more. I know they pulled up Linus' GPL'd FPU emulator a while back and that might have been the only GPL'd bit left.

BSD, not GPL

Peter N. M. Hansteen (not verified)
on
March 9, 2005 - 2:32am

> Does that mean the openbsd kernel is no GPL?

OpenBSD code is released under the BSD license, which is a somewhat simpler free license.

_SOMEWHAT_ simpler?!?!?! Do

Anonymous (not verified)
on
March 20, 2005 - 7:28pm

_SOMEWHAT_ simpler?!?!?! Do you think there is any human out there whom can memorize the GPL?!?! The BSD or MIT licenses are not uncumbered by freedom-stealing jargon.

Somewhat?

Anthony (not verified)
on
May 15, 2005 - 10:22pm

Somewhat simpler? The BSD license is shorter than the GPL's preamble.

bsd

no one (not verified)
on
April 28, 2005 - 6:25pm

OpenBSD is released under the BSD license...which is less restrictive than the GPL.

I think the point being made

Anonymous (not verified)
on
March 8, 2005 - 3:36pm

I think the point being made is that if you stand up and shout 'look at all our wireless support', you can expect to be pulled up on the fact that a lot of that support has been in other bsds for some time.

The main development here seems to be an email hate campaign against hardware vendors, which is a common strategy in the openbsd camp - has it ever been effective?

Though to be fair they had a half decent usb wireless driver in 3.6, which is a rarity in the BSD world.

Email campaings have had results

Anonymous (not verified)
on
March 8, 2005 - 4:03pm

Hate mail seems too strong a phrase. However some of the OpenBSD email campaigns have resulted in companies realising there was a market and it was easier to work with the OpenBSD folks than against them. I gather most emails are civil as opposed to full of bile which is why I think hate is the wrong word.

RTFA

Anonymous (not verified)
on
March 8, 2005 - 6:00pm

You obviously missed the bus on this one.

The point isn't "gee whiz, we're the best game in wirelesston," but that the OpenBSD developers and community were able to apply enough pressure to wifi hardware vendors to get firmware unencumbered by EULAs.

Imagine: one BSD community was able to get this response. Imagine if the rest of the OSS camp were to learn from this example and get similar vendor responses.

Other OSS's Lack Commitment

Anonymous (not verified)
on
March 14, 2005 - 8:45am

Sure, it'd be nice if the other BSDs and Linux folks would apply pressure, but they won't. The OpenBSD project simply says it's the BSD license or it's not included.

How many FreeBSD and Linux users would like it if most of that fancy wireless support suddenly was missing and replaced with "we didn't include all the parts to this driver, go find the missing x files for it from the vendor Mr. Stingy License (905-555-1212 or stingyl@badvendor.com)"?

They chose a very harsh and unrelenting strategy of refusing to include drivers that are not license encumbered. They even refused the binary only drivers that the linux folks have been eating up for years. It often seems OpenBSD is behind in a lot of ways because of this type of thing, but they are really doing some excellent work.

Re: Other OSS's Lack Commitment

Alban Browaeys (not verified)
on
March 29, 2005 - 11:08am

Debian won't and cannot include those non free drivers .
It is not like it was the smallest ditribution out there. And non-free even if available cannot be used by the installer, the debian kernel ... having end user compiling kernel from source is not what i call fancy (and i doubdt the availability of those help the project : bugs cannot be fixed , and there are a lot of them).

Main development

Anonymous (not verified)
on
May 15, 2005 - 6:14pm

The main development here is that there exist drivers for some wireless hardware that are supported, good quality, secure, and really free, thanks in large part at least to OpenBSD. OpenBSD's goals are portability (the least important of the three goals, and the reason they don't run on everything NetBSD runs on), security (and they're better at it than any other OS I know of), and freedom. The meaning and importance of the third goal is often lost on the FOSS world, because most of us are just looking for something that's technically superior to Microsoft and available without paying someone for it. OpenBSD's pragmatic concept of "freedom" is much broader than that, and they really mean to stick by it. It's an application in the software world of what people are screaming about in the political world as well -- we don't want governments or organizations trapping us in corners with contracts and regulations. It's not that the OpenBSD crowd is all shotgun-wielding right-wing ultra-conservatives holed up in a compound in Canada somewhere; they're not. But that concept of freedom is just as essential to the OpenBSD project as are the regular code audits, strict release schedules, and the guys on the mailing lists that chew out posters for using non-GENERIC kernels. The whole point of the article is that no matter the source of the driver code, it is now available for anyone to use for any purpose, and that is praiseworthy.

you missed poster's point

undefined
on
March 9, 2005 - 7:59am

the original poster was not talking about obsd to nbsd/fbsd migration, but instead how many of those 12 drivers were written for n/fbsd and brought over to obsd.

a very good question, i might add, as the author of the article (jeremy?) only elaborated on the origin of the wireless drivers that obsd reverse-engineered (ralink, atheros). so, some non-critical readers (myself included) could assume (applying the mentioned instances to the larger whole) that all 12 were specifically written for obsd.

the article mentions 12 wireless drivers in obsd, and specifically credits obsd for two of them by highlighting their origin, but what about the other 10? i know this is an obsd article, but mentioning the origin of the other 10 would give the article less press-release, more full-disclosure, feel. i would want the same thing in a linux article (and is usually mentioned in general information articles about the linux atheros driver which was originally written for fbsd).

impressive list of drivers, but ...

Anonymous (not verified)
on
March 8, 2005 - 10:12am

Drivers are written by developers, not projects. It's not unusual for a developer to commit a new driver to multiple *BSD branches. It's even less unusual for a driver that first shows up in one *BSD to be adopted by others.

You're being unfair: the poin

Anonymous (not verified)
on
March 8, 2005 - 1:54pm

You're being unfair: the point isn't where they come from, the point is that they've been integrated, tested, and are currently supported by the release on it's however many architectures. Kudos to the OpenBSD team.

Attribution

Anonymous (not verified)
on
March 8, 2005 - 4:09pm

Follow the links for each of the drivers in the article and you will find yourself at an OpenBSD manual page than includes full attribution. If the driver originated from another BSD, then it is documented there, in the CVS commit messages and in the source code itself.

they do give credit

Anthony (not verified)
on
May 15, 2005 - 10:17pm

They don't hide the fact that they take code from the other BSDs. If you check misc@ or the changelogs you'll see that they state explicitly where they get things. And they regularly mention in changelogs that they've sync'd to such and such from another BSD, so the origin of the code is regularly advertised once

Similarly, the other BSDs don't hide the fact that they take code from OpenBSD. For example, the other BSDs now include PF and OpenSSH (who doesn't include OpenSSH?).

Rt2500 linux driver

FreqMod (not verified)
on
March 8, 2005 - 9:47am

The article states that the RT2500 linux driver is huge and confusing. This may be true for the current driver. However the rt2x00 project is working for a joint rt2400 and rt2500 which is developed from scratch, and hopefully is better.

firmware for ipw and iwi

gwyllion (not verified)
on
March 8, 2005 - 3:26pm

The website of Damien Bergamini contains information on how to get the binary firmware for the Intel cards:
http://damien.bergamini.free.fr/ipw/iwi-openbsd.html
http://damien.bergamini.free.fr/ipw/ipw-openbsd.html

Atmel devices also work on Linux

CoffeeBreaks
on
March 9, 2005 - 1:41pm

Althought not out of the box.

Not too hard though. I just installed one. http://coffeebreaks.dyndns.org/~jerome/wordpress/?p=256

the article doesn't mention

Nick21 (not verified)
on
April 4, 2007 - 6:11am

the article doesn't mention how many of them were taken from other operating systems like netbsd and openbsd, anch how many of them were really written by the openbsd project.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.