This page is optimized for viewing with Lynx ;-)

Here's a nickel, kid. Get yourself a better computer.
-- Dilbert.


The Cheap /Linux/ Box

How to build a cheap reliable x86 box suitable for Linux.
The latest version of this page lives at http://www.math.sunysb.edu/~comech/tools/CheapBox.html

This document is originally created by Andrew Comech.
The page has not been maintained since the last century.

Contents


Most parts in a preassembled computer are not the right ones: non-ECC memory and a bad motherboard, a two-button mouse (many standard applications use three buttons), a winmodem, and non-supported or poorly supported (but definitely the worst quality, although not necessarily the cheapest) videocard, soundcard, and a printer. Included monitors usually have .28mm dot pitch, often -- small 15'' diagonal, and poor bandwidth (which leads to flickering at higher resolutions).


CPU and motherboard

You need to decide on the chipset/processor combination and then to pick a motherboard with the layout you need. I would like to be impartial, but it is always a good idea to stay away from Intel: From Fall 1997 to Spring 2000, people witnessed recalls of pentiums due to "F0 0F" pentium bug, dropped L2 cache on original Celerons (and dropped ECC support on "low-end" chipsets, to emphasize that those are "low-end" components), locked multipliers (to fight overclockers), notorious "processor serial number", locked 133MHz bus frequency of Pentium III (to force incompatibility with 440BX chipset), various chipset problems which ended with the recall of motherboards with 820 chipsets (all this resulted from a failed attempt to move the market to RAMBUS memory), recall of 1.13GHz processors... It is not that Intel is particularly bad, but its processors and chipsets are definitely not worth more than others.

Currently, a reasonable choice is probably Socket A motherboard with a Duron 800(?) processor. For the ECC support, you need a motherboard with AMD 760 chipset or VIA266 chipset. Make sure the motherboard takes enough memory... KT133, SiS 735, and ALi MAGiK 1 chipsets do not support ECC (contrary to several advertisings on PriceWatch).
If an Intel solution is required, i815 boards are beginning to show up at more reasonable rates, coupled with a newer model Celeron. The i815 does particularly well with IDE hard drives under Linux, almost doubling cached rates over a Socket A based system.

The chipset on the motherboard determines the main specifications of the system:


Chipset specifications are usually dubbed in the specifications of a motherboard.

In the specifications of a particular motherboard one pays attention to

Here is a sketchy list of different families of motherboards and the corresponding CPUs. For more details and links to the manufacturers' sites, Build A PC - Chipsets. Other links are processor specifications at Abit and ugeek.com/procspec.

Hints:


Memory

Newer Socket-A motherboards support faster DDR memory. There are PC1600 and faster PC2100 flavors of DDR memory: for 200MHz and 266MHz bus frequencies, respectively. On Athlon motherboards, the memory and FSB have to be synchronous for use of DDR, and in order to run a processor at 133MHz bus speed you need more expensive 266MHz DDR memory.

If you choose memory for an earlier Socket-A ("Thunderbird") or Super-7 ("pentium" with 100MHz bus speed) motherboard, the key words you want to hear from the vendor are probably SDRAM DIMM (a long 168 pin card), ECC (with error checking and correction; you better go for it if the motherboard's chipset has ECC support), and PC133 (for 133MHz bus speed). You do not save much buying older PC100 memory (for 100MHz bus speed). Two more attributes are unbuffered and 3.3V; probably all current PC100 and PC133 modules are of this kind. Please compare all this with the on-line manual of "your" motherboard and do not hesitate to ask the vendor.

  • If the memory module contacts and the motherboard memory sockets are coated with dissimilar metals (specifically gold, Au, and tin, Sn), then corrosion will be inevitable. This typically results in memory errors which appear in about a year's time. Mueller's "Upgrading and Repairing PCs" recommends using gold DIMMS with gold sockets, or tin DIMMS with tin sockets; never mix them. Additionally, he recommends using a product called "Stabilant" when installing all cards / modules. (I am grateful to someone who pointed this information to me.)

    Thoughts:

    I experienced some weird problem with my memory module (ECC PC100 128MB). It worked fine for around a year, but then I started getting the following messages in the /var/log/kern.log file (about once a day):

    
    Jun 11 13:58:25 Port kernel: Uhhuh. NMI received. Dazed and confused, but trying to continue
    Jun 11 13:58:25 Port kernel: You probably have a hardware problem with your RAM chips
    
    
    NMI means non-maskable interrupt. This problem might be related to corrosion due to different coating of the memory module contacts and the motherboard memory sockets; I did not look yet which material is used in my computer. In a while, I started getting more NMI messages (two-three times a day), and the system crashed several times. In twenty days, there were 22 NMI messages and 4 crashes (which sometimes occurred right after NMI). The crash was accompanied by the messages
    
    Oct 29 15:44:01 Port kernel: Unable to handle kernel paging request at virtual address d55a973c
    Oct 29 15:44:01 Port kernel: current->tss.cr3 = 049d6000, %%cr3 = 049d6000
    Oct 29 15:44:01 Port kernel: *pde = 00000000
    Oct 29 15:44:01 Port kernel: Oops: 0000
    Oct 29 15:44:01 Port kernel: CPU:    0
    
    
    or
    
    Nov 11 20:41:57 Port kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000000
    ...
    
    
    At this point, everything would freeze. Finally, I changed the memory setting from 100MHz ("PC100 memory") to 66MHz ("non-PC100 memory"), which you can do with jumpers on MVP3-based Super-7 motherboard, and this healed the problem completely.
    I can not figure out whether this was a problem with the memory or with the motherboard (FIC VA-503+, MVP3 chipset) until I receive a new memory module. It seems more likely that the problem was caused by, for example, dried capacitors on the motherboard. It is hard to imagine what could go wrong with the memory.


    Hard drive

    Usually, the main question is SCSI vs. EIDE. As it turns out, a single user will almost always fare better using EIDE stuff than they will for SCSI. EIDE is faster for single (or light multi-tasking), and loses that edge when put in a more stressful environment (ala networked as a server). As a home user, there is no real reason to pay the price premium, unless you can justify using it heavily enough to get a return. Forget SCSI and you have one thing less to worry about.

    There has been trouble with some Western Digital hard drives not performing the required error checking; see here and here for a summary. Apart from that, all EIDE disks are Linux-compatible, and all recent drives have quite similar performance. Any latest model around 20GB shouldn't set you back much. 7200 RPM drives are usually faster, but this may be at the expense of acoustics (more noise), temperature, and power consumption. You may want to compare the specifications of particular models.
    I wonder whether IBM DeskStar 40GV is the right choice: 20GB drive, 5400 RPM, media transfer rate 372 Mbits/sec, noise level 3.0 Bel, idle power consumption 4.9 W. Seems to be not only UDMA/66, but also UDMA/100-compatible. Cache is only 512k, but I am not sure whether this is bad, or whether this matters at all. Around $100.

    A few hints:


    CD-ROM

    See also CDROM HOWTO


    CD burner

    IDE CD-ROM burners don't cost much now and they generally work well under Linux. An Acer 8x4x32 with an 8MB buffer may set you back less than $150. My priorities when choosing it were these: time, because waiting around for my old 2X burner to do its job was really a drag (basically 40 minutes to burn a full CD - the new one is under 10 minutes), and two, buffer underrun is a *big* problem for a lot of people when burning CDs, especially on marginal hardware. When you are burning a CD, buffer underrun happens when your system can't feed data to the burner fast enough to keep data in the buffer - if your buffer doesn't have something in it, there's nothing to write, and the disc write fails. To avoid that problem, I purchased the model with the largest buffer I could find (8MB). Probably a bit overboard, but I haven't lost a CD yet.

    Many people really need to use a CD burner frequently, while others won't do much with it, or maybe won't use it very often. For the former, $100-150 on a good burner is a worthwhile investment (still on the lower end). The latter would likely be perfectly happy with a 2X burner sitting on a cheap SCSI controller. (That $20 SCSI card takes up a slot in your machine, and if you are really on the cheap, you'll likely wind up with a motherboard with fewer expansion slots than a higher quality board. That $20 SCSI card supporting one item becomes a pain when you really need that slot for something else.)

    See also CD-Writing HOWTO.


    Monitor

    A monitor is the most expensive and important part, which is to outlive a few generations of your computers. It is the monitor, not the dusty scratched case, that sits on your table. To ask the least:

    This imposes certain requirements on the bandwidth of the monitor. Very briefly, the highest physically possible resolution on a 16'' viewable monitor with .25mm dot pitch is only 1152x864 (if everything is perfect, then 1280x1024). The bandwidth for this resolution at 80Hz refresh rate should be well above 1152x864x80Hz=79.6MHz (the beam of electrons needs some time margin); 160MHz would be enough. E.g., in the specs of Acer 79g (16'' viewable with .25mm dot pitch) shameless guys wrote that it runs 1600x1200 at 75Hz refresh rate. This apparently means that the bandwidth is above 1600x1200x75Hz=144MHz (in fact it is 160MHz), although the resolution 1600x1200 does not make sense on a 16'' monitor (even with .25mm dot pitch): the picture will be non-sharp. There is a short nice guide Snake Oil, Miracle Cures, and Monitors.

    I can not suggest much; I think the best is to go for one of the ViewSonic monitors, like PS775, PT775 (16'' viewable), or PS790, G790 (18'' viewable), with huge bandwidth of 200MHz. Look up the prices at both PriceWatch and Shopper. As of April 2000, you can find PS790 for below $500, including shipping.


    Cases

    Just a solid ATX case with good cooling and enough drive bays. I prefer rackmount, but not everyone has that kind of facility space or money.

    A good case (with power supply) should have low noise and good cooling, and an appealing style. There are middle tower case, full tower case, and rackmount chassis. Power supply should be adequate to power the CPU and devices. It is a good idea to reckon how much power your complete system actually needs. Do not buy the case with razer sharp edges, your finger will not last long if the the case with sharp edges.
    If you have problems with the power supply, have a look at ATX power supply frequently asked questions.
    From Compute Aid, Inc., you can select different styled cases and power supply. If you are getting a 1U or 2U rackmount chassis from them, mentioning the Cheap /Linux/ Box page will get you $10 off from the order (rackmount chassis only). Their 1U rackmount is identical to $300+ from others, but at much lower price.


    Videocard

    Keep in mind that certain chipsets are not supported by Linux, or there are known difficulties. One first needs to find out whether the card is already supported by Xfree86 (a freely redistributable implementation of the X Window System; that runs on UNIX(R) and UNIX-like operating systems; this is the standard graphical user interface in Linux and FreeBSD). See XFree86-3.3.6 documentation, and in particular the list of supported chipsets.

    Hints:

    A few videocards for Linux:


    Modem

    Times change: you can try search PriceWatch for `linux' `modem'.


    Printer

    Beware: there are many printers which require special software only available for Windows. Their common feature is the lack of Postscript support. This is probably true for most cheap printers.

    Grant Taylor maintains a list of suggested printers known to work well with Linux. It's perhaps easiest to buy one of these.

    For more information on printer compatibility, see the LinuxPrinting.org database. Price comparisons can be found in those listings, or at PriceWatch.

    Hewlett Packard inkjet 600 series (ala 648, 692, etc). $99. Most HP inkjets work nicely with Linux, as well as do the mainstream HP LaserJets.


    Sound card

    In Sound HOWTO, most Creative Lab's Sound Blaster cards (e.g. 16, ..., 128, AWE32, AWE64) are said to work under Linux, and are probably best supported. The quality of these cards is said to be very close. The price is as low as $20. PCI card is faster to configure than ISA PNP, and also PCI interface is preferred (for cheap cards, the interface does not really matter, but there are fewer and fewer ISA slots on newer motherboards). Sound HOWTO explains how to recompile the kernel. Most people would not need a high end card in a cheap box, so the quality does not seem to matter. In any case, if there are some particularly good sound cards worth mentioning here, please let me know.

    I prefer Ensoniq (like "es1370") AudioPCI cards on the low end ($20), and SB Live value on the high side ($50). I don't use much else, simply because of past experience.


    Ethernet card

    The best advice here is to consider how you expect a network card to be used. For single users under a light traffic load, most any card with the right connector (and support under Linux) will work. Others might need to have a fairly heavy load file-sharing (Samba) box on the cheap, or a cheap FTP server servicing a fair amount of traffic. For those situations, a 100Mbit card might be dictated, and possibly a higher quality card with a sizable buffer to improve performance. As with all things, consider the situation in which you expect your Linux box to perform.

    A second consideration would be to consider what type of network you would be plugging into. Having a 100Mbit network card is great, but it does nothing for you when plugged into a 10Mbit hub (your 100Mbit card would then auto-negotiate down to 10Mbit, negating your speed increase).

    Lastly, make sure the card you choose is supported under Linux. While great strides have been made in this area, and most any card is supported, some are easier to set up than others.

    Cables/connectors (from Ethernet-HOWTO, Section 2.6):

    Other guidelines: