Designing and Building a Homebuilt Linux Computer
Hardware compatibility is the most important consideration to keep in mind when designing a Linux box.
Linux hardware detection and support have improved phenomenally over the past few years. Nowadays, if you were to walk into a computer parts store, buy a cartful of parts, and assemble them into a Linux computer, they might actually all work when you booted the machine up for the first time.
But don't count on it.
The degree to which any given piece of computer hardware will be compatible with Linux will fall into one of the following broad results:
-
It will be automatically detected by Linux and will work properly when the machine is started up, with little or no human input.
-
It won't work right out of the box, but it can be made to work with some effort, which may vary from making an entry in a configuration file (easy), to recompiling the kernel (not easy).
-
It won't work and will never work, no matter what you do.
Choosing Hardware for your Homebuilt Linux Box
Obviously, most of us shoot for outcome Number 1 when designing our computers. Unless you have a particular need for a device that will require extensive configuration changes to make it work, it makes sense to choose hardware that will simply work right out of the wrapper. But how does one determine which hardware will work?
The number one rule when purchasing hardware for Linux is to avoid anything with "Win" in its name, such as "Winprinter" or "Winmodem." These devices tend to be designed to be as inexpensive as possible, and usually lack internal controller chips or onboard processors. They use components of the Windows operating system to take over the duties of the parts they lack; therefore, few (if any) of them can be made to work on a Linux box.
The second rule is to always check first before you buy to see if your hardware will work with your Linux distribution. This is especially important with motherboards. Although Linux should install on most recent mobo's (core components such as drive controllers being pretty much OS-neutral), there are a few that do have issues with Linux. In addition, you'll want to make sure that all of the mobo's onboard components will work, such as integrated nic's, modems, sound cards, and so forth.
The third rule is to resist the temptation to buy brand-new, bleeding-edge hardware unless you are certain that it is supported in Linux. Since many Linux drivers are written by volunteers, it may take a while before newly released hardware will work in Linux -- and some never will. So be sure there's driver support before you buy that brand-new video card.
Checking Linux Hardware Compatibility
The best places to check for Linux hardware compatibility are the various message boards, forums, newsgroups, and databases that have sprung up around the issue. Some of these are pretty much distribution-neutral, such as:
- Linux-Friendly Hardware
- Linux Printer Compatibility Database
- Linux Hardware Compatibility HOWTO
- comp.os.linux.hardware (Usenet newsgroup)
In addition, most commercial Linux distributions maintain their own hardware compatibility lists, which tend to be more up-to-date and more exhaustive than the general resources available above. Here are the hardware compatibility pages for a few of the more popular distributions:
Building a Home-Made Linux Computer
There's absolutely no difference in the physical assembly process when building a Linux computer. Once in a while, you may have to change a motherboard jumper or a BIOS setting, but even that's unusual these days.
Most motherboards come pre-set with defaults that will work with Windows, and there's usually no need to change anything to make them work with Linux. Once in a while, though, you'll come across a mobo that has a special setting for Linux/UNIX. If so, then use that setting.
In addition, most motherboards have a CMOS option for PNP (plug-and-pray, eh, I mean plug-and-play) versus non-PNP operating systems. If the motherboard has a lot of integrated components, you may find that the non-PNP setting works better with Linux as it allows the BIOS to configure the internal devices.
Once again, checking the resources linked above will help you determine which setting is best for your particular situation. Ideally, you want to simply assemble the machine, install the OS, and use it. Increasingly, I'm finding this to be the case with Linux. The last five or six Linux installations I did (using Ubuntu) went more smoothly than most of the Windows installations I've done -- and I've done thousands of 'em.
Next: Dual-Booting Windows and Linux
- Getting Started
- Planning your PC
- Linux for your Homebuilt Computer
- Desktop Linux
- Planning a Linux Computer (this page)
- Dual-Booting Windows and Linux
- Planning your PC

