Appendix B. A Note On Hardware Support

A Note On Hardware Support

“How’s the hardware support?” I tend to hear that a lot, and my answer is usually, “In my experience, OpenBSD and other free systems tend to just work.”

But for some reason, there’s a general perception that going with free software means that getting hardware components to work will be a serious struggle. In the past, there was some factual basis for this. I remember struggling to install FreeBSD 2.0.5 on the hardware I had available. I was able to boot off the installation CD, but the install never completed because my CD drive wasn’t fully supported.

But that was back in June 1995, when PC CD drives usually came with an almost-but-not-quite IDE interface attached to a sound card, and cheap PCs didn’t come with networking hardware of any kind built in. Configuring a machine for network use usually meant moving jumpers around on the network interface card or the motherboard or running some weird proprietary setup software—if you had the good luck to be on a system that had or could be fitted with an Ethernet interface.

Times have changed. Today, you can reasonably expect all important components in your system to work with OpenBSD. Sure, some caution and a bit of planning may be required for building the optimal setup, but that’s not necessarily a bad thing.

Getting the Right Hardware

Getting the right hardware for your system is essentially a matter of checking that your system meets the needs of your project and network:

  • Check the online hardware compatibility lists.

  • Check the man pages, or use apropos keyword commands (where keyword is the type of device you’re looking for).

  • Search the archives of relevant mailing lists if you want more background information.

  • Use your favorite web search engine to find useful information about how well a specific device works with your operating system.

In most cases, the hardware will work as expected. However, sometimes otherwise functional hardware may come with odd restrictions.

Quite a number of devices are designed to depend on firmware that must be loaded before the operating system can make use of the device. The motivation for this design choice is almost always to lower the cost of the device. When some manufacturers refuse to grant redistribution rights for the firmware, the decision becomes a problem because it means that operating systems like OpenBSD can’t package the firmware with their releases.

Problems of this type have surfaced in connection with several types of hardware. In many cases, the manufacturers have been persuaded to change their minds and allow redistribution. However, this doesn’t happen in all cases. One example is the Intel-based wireless networking hardware that’s built into many popular laptop models. The hardware is supported in many operating systems, including OpenBSD via the wpi and iwn drivers. But even with those drivers in place, the hardware simply won’t work unless the user has manually fetched and installed the required firmware files. Once the install has completed and some sort of Internet connectivity is available, OpenBSD users can run the command fw_update to fetch and install or upgrade firmware for components the system recognizes as needing firmware files.

Note

Where supported hardware is restricted, the OpenBSD man pages usually note that fact and may even include the email addresses of people who might be able to change the manufacturer’s policy.

It would take only a minor change in the manufacturer’s licensing policy to make life easier for free software users everywhere and to boost sales. It’s possible that most situations like these will be resolved by the time you read this. Be sure to check the latest information online—and be prepared to vote with your wallet if a particular company refuses to act sensibly.

If you shop online, keep the man pages available in another tab or window. If you go to a physical store, make sure to tell the clerks you’ll be using a BSD. If you’re not sure about the parts they’re trying to sell you, ask to borrow a machine to browse the man pages and other documentation online. You might even ask for permission to boot a machine with the hardware you’re interested in from a CD or USB stick and study the dmesg output. Telling shop staff up front about your project could make it easier to get a refund if the part doesn’t work. And if the part does work, letting the vendor know is good advocacy. Your request could very well be the first time the seller has heard of your favorite operating system.

Issues Facing Hardware Support Developers

Systems such as OpenBSD and the other BSDs didn’t spring fully formed from the forehead of a deity (although some will argue that the process was not that different). Rather, they’re the result of years of effort by a number of smart and dedicated developers.

BSD developers are all highly qualified and extremely dedicated people who work tirelessly—the majority, in their spare time—to produce amazing results. However, they don’t live in a bubble with access to everything they need. The hardware itself or adequate documentation to support it is often unavailable to them. Another common problem is that documentation is often provided only under a nondisclosure agreement (NDA), which limits how developers can use the information.[51]

Through reverse engineering, developers can write drivers to support hardware even without proper documentation, but the process is a complicated one that consists of educated guessing, coding, and testing until results begin to emerge. Reverse engineering takes a long time and—for reasons known only to lawmakers and lobbyists—it has legal consequences in several jurisdictions around the world.

The good news is that you can help the developers get the hardware and other material they need.

How to Help the Hardware Support Efforts

If you can contribute quality code, the BSD projects want to hear from you. If you’re not a developer yourself, contributing code may not be an option. Here are several other ways you can contribute:

  • Buy your hardware from open source–friendly vendors. When making decisions or recommendations regarding your organization’s equipment purchases, tell suppliers that open source friendliness is a factor in your purchasing decision.

  • Let hardware vendors know what you think about their support (or lack thereof) for your favorite operating system. Some hardware vendors have been quite helpful, supplying both sample units and programmer documentation. Others have been less forthcoming or downright hostile. Both kinds of vendors, and the ones in between, need encouragement. Write to them to tell them what you think they’re doing right and what they can do to improve. If, for example, a vendor has refused to make programming documentation available or will make it available only under an NDA, a reasoned, well-formulated letter from a potential customer could make the difference.

  • Help test systems and check out the drivers for hardware you’re interested in. If a driver exists or is being developed, the developers are always interested in reports on how their code behaves on other people’s equipment. Reports that the system is working fine are always appreciated, but bug reports with detailed descriptions of what goes wrong are even more essential to creating and maintaining a high-quality system.

  • Donate hardware or money. The developers can always use hardware to develop on, and money certainly helps with day-to-day needs as well. If you can donate money or hardware, check out the project’s donations page (http://www.openbsd.org/donations.html for OpenBSD) or items-needed page (http://www.openbsd.org/want.html for OpenBSD). Corporate entities or others that prefer to donate to OpenBSD via a Canadian nonprofit corporation may do so via the OpenBSD Foundation, whose website can be found at http://www.openbsdfoundation.org/. Donations to OpenBSD will most likely help PF development, but if you prefer to donate to FreeBSD, NetBSD, or DragonFly BSD instead, you can find information about how to do so at their websites.

Whatever your relationship with the BSDs and your hardware, I hope that this appendix has helped you to make intelligent decisions about what to buy and how to support the development of the BSDs. Your support will contribute to making more and better quality free software available for everyone.



[51] This is a frequent talk topic, too. For example, see Theo de Raadt’s OpenCON 2006 presentation “Why hardware documentation matters so much and why it is so hard to get,” available at http://www.openbsd.org/papers/opencon06-docs/index.html.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.128.173.53