Reviving your old PC with Linux, Part II: Hardware Compatibility and Prep
Welcome to part II of this series on “Reviving your old computer with Linux”.
In the last article, we classified your computer’s hardware broadly by age or processor type, but there is a lot more to Linux compatibility, performance, and suitability for different tasks than just age or processor speed. So this time, we’ll go over the major hardware components in a computer and what kind of problems you might encounter with them on Linux; as well as some general notes about preparing older hardware for an OS refit.
Memory, also known as RAM, is an operating system’s workspace. Whenever you launch programs or open documents, the OS is putting these things into RAM. When it runs out of RAM, its only options are to start killing processes or start using swap space. “Swap” (sometimes called a “paging file”) is a partition or file on the hard disk which is set aside for the operating system to treat as extra RAM. When the system needs more memory space than it actually has, data in memory is shuffled in and out of the swap space to make room. Since reading from- and writing to- a disk is an order of magnitude slower than reading and writing to solid state memory (especially on older drives), over-using swap will slow the computer to a crawl. For that reason, we want to make sure we have an adequate amount of RAM in the computer.
In my honest opinion, most desktop systems are RAM-poor. They’re generally sold with the minimum requirement for the operating system of the day in the hopes that the consumer will spring for a RAM upgrade when they get tired of the system being slow; so unless your old computer was owned by a gamer, power-user, or computer-savvy buyer, it probably doesn’t have all the RAM it could (or should). Upgrading RAM in an older computer may take a little research, but it is well worth the effort — you just cannot put too much RAM in a Linux box.
The amount of RAM in your computer is likely to be a limiting factor in what distributions you can use, especially if you intend to run a graphical desktop. Based on the roles we defined in Part I, here are some rough guidelines for the minimum amount of RAM you want to have:
- “Look Ma, I installed Linux”: 32 MB (though you get more geek cred if it’s lower)
- Light server: 64 MB
- Heavy server/command-line desktop: 128 MB
- Light Desktop: 256 MB
- Medium Desktop: 512 MB
Those are ballpark-averages. Speed is a highly subjective thing, and RAM usage depends heavily on the actualy software you choose to run. Of course, if you want things to run at a comfortable speed, doubling those amounts wouldn’t hurt.
These days, just about every desktop computer comes with an Intel, AMD/ATI, or Nvidia graphics chip, any of which will usually give you at least acceptable performance under Linux. Not too long ago, however, names like Via, S3, SiS, and Matrox were just as likely to be emblazoned on your video hardware. Fortunately, most of those brands have some kind of driver for Linux, and with maybe an exception or two those drivers are built right in to Linux (some may have additional non-open-source drivers which have to be downloaded separately, notably Via). Unfortunately, a few of the drivers for these older chips suffer from bugs and neglect, and getting a driver to take full advantage of the hardware is sometimes an exercise in futility.
If all else fails, the generic VESA driver can give you at least basic video support. This is usually limited to something like 1024×768 resolution, 16 bit color, and 60Hz refresh rate, but for some millennial or older systems this is about all you can expect anyway. I’ve run into a few situations where VESA drivers actually performed better than the official driver!
If you’re going to tinker around with old computers much, it never hurts to have a spare PCI or AGP video card around, especially if you know that it plays nicely with Linux. Although it’s rare with a modern kernel and modern versions of Xorg, I’ve still found a few video chips that just won’t work; I’ve even run into a particular PCI video card that would crash the kernel and prevent booting!
Video cards have their own RAM, sometimes called VRAM. With very old computers, it’s not uncommon to have cards with 1 to 8 MB of VRAM, and this can be a limiting factor for video resolutions. If we consider 1280×1024 at 32 bits of color an optimal resolution for a regular desktop, anything below about 16 MB is probably going to have trouble with that.
With more modern video cards, the big question is whether you can get hardware acceleration going or not. Hardware acceleration allows you to do things like run a composited desktop (with transparency and animation effects) or play 3D games. Outside of ATI, Nvidia, and Intel, few video chips will do this under Linux.
Hard drive space shouldn’t be an issue with “Middle Aged” computers, but depending on what you plan to do with the machine and what distro you hope to use, “Senior Citizen” and in some cases “Distinguished” computers can have problematically small hard drives. Hard drive sizes of less than 2 GB were not uncommon in the mid-1990s. Hard drives of this vintage tend to be agonizingly slow (and usually have a few bad sectors by this age), so minimizing the amount of disk usage is essential — not just for lack of space, but so that less data has to be read from the drive overall.
Sometimes putting an extra hard drive or two in the computer and mounting them at different places in the filesystem (such as /home or /usr) can be a good way around small drive size. Of course, the simplest approach is to just replace the tiny hard drive with a bigger one.
Exactly how much space you need will depend on the distribution you choose, the applications you want to run, and how much data you want to store on the computer; thus, it’s difficult to give solid requirements. A 20 GB disk should be sufficient for any of the purposes I’ve outlined previously, but if your drive is down in the 8 GB or less territory you may want to keep an eye on the space requirements of the Linux distributions you’re looking at. A very minimal Linux stripped-to-the-bone installation of Linux can be just a few megabytes, but a full-blown general purpose distro with several common applications installed can easily soar above 10 gigabytes or more (not including your data or swap space).
Hard drive technologies have changed over the years, though for the time frame of about 1995-2005 pretty much all systems used EIDE drives (sometimes called ATA or PATA, or just IDE). These drives use a forty-pin connector, and are compatible with even older pre-1995 drives. The upshot is that any hard drive you dig out of a system from that decade should be mostly compatible with other systems of the same period (The only snag is that older computers may not be able to recognize the full size of newer drives, or may require special settings in the system BIOS to work properly).
It’s been a long time since I’ve seen a wired network adapter that couldn’t be made to work with Linux. Good thing, too, considering that Linux isn’t a lot of fun to maintain without a network connection. Now, you may find that some super-light distributions ship without the necessary kernel modules for your network card, or that non-free (as in freedom) firmware files have to be loaded separately to make the card work. Most of the time, though, it won’t be a problem.
Wireless is another matter. In the early to mid aughts, getting wireless to work with Linux was a major headache, but nowadays things are a lot smoother thanks to some major wireless manufacturers getting on board with Linux. Still, if wireless is an important concern, pay close attention to the age of the kernel included with the Linux distributions you’re looking at (newer would be better).
Thanks to the AC ’97 standard, most post-1997 soundcards will “just work” in Linux much the way VESA makes Video “just work” (at least minimally). Prior to that, most sound cards were clones of the Soundblaster/Ad-lib family, which is also well-supported under Linux. Even a lot of older obscure cards work pretty well.
That’s not to say you don’t occasionally run into trouble with odd cards, but when we’re dealing with computers a few years out, sound is rarely an issue.
Other Hardware Preparation
At this point, you should make sure you know the following facts about the computer you intend to install Linux on:
- Processor speed and type
- Amount of RAM
- Amount of Hard disk space
- Video card make and model
Most of those things can be determined by watching closely during the boot-up process, or by using the system information tools in currently-installed OS (assuming it works).
Since we’re dealing with older hardware, and proposing to completely replace the software on it, there are a few more things I’d recommend doing before you move on to the install:
For a device that just sits under a desk not moving, computers get insanely dirty and dusty — especially on the inside. Dust can block electrical contacts, short circuits, and release static electricity which can damage electronics. It also prevents air flow around components, potentially causing them to overheat (I’ve saved a few “unbootable” laptops by just blowing dust out of the CPU fan, believe it or not). If your computer has seen more than a few years of use in an average home or office, it’s probably pretty dusty inside.
Get a can of compressed air and a small paint brush, put on a dust mask, and find a well-ventilated area in which to work (I like to clean computers in the back yard on dry, breezy days). Open the case, and carefully brush away and blow out as much dust as you can.
By the way, DON’T use a regular vacuum cleaner to clean out a computer. They tend to generate a lot of static electricity. Unless you have a specially-designed computer vacuum, a can of air and a good breeze are probably a better choice.
Old, rusting electrical devices can be a safety hazard. Check for signs of danger:
- Corroded areas on the mainboard
- Burn marks around the electrical connections
- Leaky capacitors (the things that look like little soda-pop cans) on the mainboard
- signs of water damage
- Smoky or burnt smells
Replace any questionable hardware, or just recycle the whole computer if you’re seriously in doubt. It’s not worth the risk!
If the computer can still boot (still has a working operating system on it), start it up.
- See what works and what doesn’t. That incompatible sound card may just be broken, after all.
- Double check for things you might want to save. Once you reformat the hard drive, there’s no getting anything back.
- See what sort of video resolutions it offers you, or how fast the network works. Get a feel for how it runs its original operating system so you can decide if Linux is really an improvement.
- Collect any hardware information you didn’t have before, like video card make or RAM amount.
RAM, hard disk, and optical drive defects are three of the most common hardware faults on older computers, and any one of them can wreak havoc on a Linux install.
Before beginning, it’s a good idea to test these components. If your computer doesn’t have diagnostic tools, most Linux installer CDs have them built in. (If your chosen distro doesn’t, several “utility CD” distros exist for this purpose. I recommend partedmagic from http://www.partedmagic.com).
- For RAM, most Linux discs have an option to boot to “Memtest86″, a utility for scanning RAM for errors. Run this for a few minutes or hours to check for faulty RAM chips.
- For the hard disk(s), most Live Linux discs have a program called “badblocks” which can scan the disk for damaged sectors. Run this once through.
- For the optical drive, booting a live CD is usually a good test. If it spits out ATA errors over and over while booting, you probably have a bad optical drive.
Ready to roll
Hopefully your hardware passes muster and you’re ready to move on. In the next installment, we’ll move on to the software portion of this series, and talk about what makes a Linux installation lightweight.
Until then, happy tinkering!