Thursday, May 22, 2008

Build Your Own PC: Episode I

I grew up in an era in which kids learned basic car maintenance so that they knew how to fix problems on the road. I have worked with computers daily for decades, and I found it more and more vexing that I did not have the slightest idea of what was going on inside them. I could not even point out the vital parts of the creature, once the abdomen was uncovered. One day four years ago, I decided that the best way to find out was to construct one from parts. Below, I summarize this experience.

The process was actually fun. The computer cost about $1,500.- including the extras. These days, a turn-key PC sells for as low as $200.-. Of course, that version does not come close to the performance of the computer I built and a bare-bones PC with a comparable performance would cost at least $500.-. I can only speculate whether that system would be equipped with the same quality parts. The consideration is similar to buying a home in a new development. The base price for the home may be economic, but the quality of the piping, the fixtures, the flooring, you name it, will be poor. You may look at early and costly repairs. Of course, you are offered pricey upgrades. I opted for quality parts. To keep the running costs low, I originally chose a 350 W power supply, but upgraded to 430 W after I switched to a more powerful graphics card and increased the memory. Assuming that the computer is consuming half that wattage on average, the monthly expense for electricity is about $11.- in our utility district. We have got three computers in our household that essentially run 24/7. The expenses add up accordingly.

It may seem dated to describe my first experience with computer assembly four years after the fact. Earlier this year, I build my second computer incorporating the lessons I learned from the first. Hence, I sum up the earlier experience in a first installment and will post important aspects of the most recent experience in a second installment.

I wanted a machine that could process great amounts of imaging data fast. I chose an MSI K8T MASTER2-FAR motherboard that accommodated two 64-bit AMD Opteron 242 central processing units (CPUs). I opted for this architecture at the time because it is compatible with Sun Microsystem's Solaris 10 operating system and I needed to run an application that was specifically compiled for Solaris. The latter is doubtlessly an advanced operating system geared toward servers supporting large networks and by far exceeds my small purpose. I found it more appropriate eventually to run the machine with Ubuntu's Linux-based operating system (currently version 8.04). The latter provides up-to-date Gnome and KDE desktops and the recent upgrades have proved flawless in execution and very stable.

Unfortunately, my CPUs are not yet the type that is enabled for virtualization. Thus, running virtual machines is not as efficient as with more recent AMD CPUs (look for "-V" in the name). Despite this shortcoming, I am running Microsoft's Windows XP on QEMU with satisfactory results.

I bought most parts from internet vendors. At the time, I did not feel confident enough to mount the CPUs myself and had that done for a small fee by Spartan Technologies from whom I purchased the motherboard, the processors and coolers. Everything else I put together. The assembly did not require a great level of experience and was straight forward. Following the instructions provided in MSI's motherboard manual was a safe route to success. An important rule to obey is ensuring that you are not statically charged by electrically grounding yourself before you touch any parts. That is, tape the exposed end of a copper cable to the skin of your arm with medical tape and wrap the other exposed end tightly around a water faucet in your kitchen or bathroom. Waterlines provide the best connection with the ground. At first, I was confused by the great variety of power supply connectors and the many different adapters. Closely studying the drawings and photographs in the MSI manual straightened out the misunderstandings. My choice of hard drives, the memory, the CD/DVD writer and the graphics card was guided by the list on the motherboard retailer's website of items that other customers bought with the motherboard. In the meantime, I have developed a few own preferences:
  • I prefer Kingston Technology memory for RAM. I purchased HyperX DDR400 PC3200R memory (KRX3200AK2/1G) for this machine when I built it, but expanded with Kingston HyperX 2048MB PC3200when the price fell. Before you order the memory modules, validate the specifications with the recommendations on the manufacturer's site. The safest way for selecting RAM modules that work with your CPU/motherboard combination is to visit the support sites of your CPU and motherboard manufacturers and choose from their lists of verified products. In addition, I learned the basics about DDR memory here and found the MSI user's forum informative. 
  • After three years, I decided to increase RAM since prices have fallen considerably. MSI provides conflicting information about the maximum RAM size. After studying the MSI forum ad nauseam, I came to the conclusion that between my Opteron 242 CPUs and the motherboard, the largest memory I could install was 4 x 1-Gb. I eventually settled on Corsair 1GB 184 DIMM PC3200 ECC DDR RAM (CM72SD1024RLP-3200). The motherboard requires that the modules are registered and unbuffered. Corsair support was very helpful in choosing the correct kind.  The installation, seemingly straight forward, turned into an ardourous journey. My first idea was to add two Corsair modules to the two 512 MB Kingston modules I already had. Mixing different brands, types and sizes did not go down well at all. The machine would not boot and stuck with emanating regular beeps of distress. Removing the Kingston modules solved this problem. However, when I filled the now vacant slots with two more 1-Gb Corsair modules, the bios post hung at the memory check. My bios version is 1.3b5. I first thought I needed an upgrade. After reading a number of harrowing stories about the possible consequences of flashing your bios (one guy ended up taking a kitchen knife to the motherboard), I decided to keep this option as the very last resort. I spent a whole week on shopping for solutions, trying to change all sorts of bios settings. In the end, I actually did not need an upgrade.  The solution was (i) to re-install the old Kingston modules, (ii) set the AGP aperture in the bios as low as possible for the system to work (64M),  (iii) shut the computer down, (iv) swap the Kingston modules with the four new 1-Gb modules, and (v) restart the computer. Voila, the memory check finally worked. With further experimentation, I found that the AGP aperture setting dictates the size of RAM the bios is willing to check. 256M AGP aperture permits 2Gb; 128M 4Gb. So my final AGP aperture setting is 128M. The RAM size count stops about 500 Mb short of 4 Gb. Again searching the MSI forum, I learned that the mismatch between physically available memory and bios count is buried in the design of the bios. I decided to content with what I gained.  
  • I prefer hard drives manufactured by Seagate Technology. They really served me well over the years. One is 15 years old and still works without fail. I decided to use two Barracuda 160GB SATA drivesmirrored in a RAID for user data. Both drives could be connected directly to the motherboard. A 400GB ATA drivestores the operating system.
  • Unfortunately, the motherboard does not provide on-board firewire connectors. If firewire connectivity is desired, a PCI card needs to be installed, taking up one slot. Because I needed an internal recepticle on the card, I used StarTech's PCI1394_4 4-Port FireWire PCI Card.
  • I prefer the more expensive flexible rounded cables to connect the ATA hard drive and the DVD/CD writer to the motherboard over the conventional flat cables. An example is shown below:
    The cables are sold in lengths that match the distances in the case and are more flexible and thus easier to bend. A rounded ATA cable came with the motherboard. However, it was too long and stiff. I bought an extra set from directron.com.
  • The motherboard provides two SATA connectors for storage devices. I used them to configure two harddrives in a raid. I found the SATA connectors to be flimsy. While moving the computer to another room, the cables shook lose on the motherboard side, resulting in BIOS errors at boot time. I felt tempted to glue them in place with Silicon glue, but refrained.
  • The MSI motherboard has four slots for PCI cards and one for an AGP graphics card. I chose a ATI Radeon 9600 PRO card.This card provides excellent support for a 19" LCD at 1024 x 768. I recommend to use a more upscale card for larger screens and higher resolutions. Moreover, I strongly recommend to ensure that the card of choice fits in the case before it is ordered. The Radeon 9600 card is comparably short. Upscale graphic cards can be quite long and the available space in the case must be shared with the thick cables connecting the hard drives and other peripherals to the motherboard. Room may run out even in a standard case for ATX-size motherboards. I eventually upgraded to a ATI Radeon 9800 SE.
  • The heat sink on the Radeon 9600 graphics card processor and the fan are small. I decided to replace them with a copper heat sink and a larger fan I found at CompUSA (VGA Cooling Kit SKU 336044). The heat sink slightly egged on a capacitor on the card. I ground an indentation into the sink large enough for the components not to touch. Though rough, the solution improved cooling remarkably. Before mounting the heat sink on the processor, it is important to apply a thin layer of the thermal grease provided with the kit evenly on the chips surface. The kit came with a number of additional small heat sinks that can be glued on various integrated circuits on the board. I mounted them all, thinking that every little bit helps. The kit cost less than $20.- and visibly stabilized the cards performance. The screen does not flicker anymore when its hot. Finally, leaving the PCI slot next to the graphics card open considerably boosts heat dissipation.
  • Running a wireless internet adapter PCI card on Linux is problematic. Before you order, ascertain that the manufacturer supports your operating system or, at least, that the drivers are available for the card of your choice. I have had satisfactory experience with D-Link's DWL-G520.Instructions for the installation and the configuration of the driver can be found here. By contrast, NETGEAR does not provide any support for Linux. An open source project develops Linux drivers for ACX-111 chipset-based cards (e.g. NETGEAR's WG311 PCI Wireless Network Adapter.However, compiling and inserting kernel modules is needed, potentially interfering with your next kernel upgrade. You may be facing a new install instead of an upgrade.
  • Finally, I can give some advice on fans. My computer houses seven fans, two in the case's front, one in the rear, one in the power supply, one on each CPU and one on the graphics card. As a result the machine vacuums up air-borne dust with remarkable efficiency. Once we had construction in the house several rooms away. An old wall was broken down. I forgot to turn off the computer on that day. The fine, invisible dust from the construction ruined the bearings of the spinners on the CPUs and the graphics card as well as the large fan in the case's rear. The fans did not stop spinning, but could not maintain the required speeds to cool the CPUs effectively. Temperatures reach more than 100° F (38° C) outside for several weeks over the summer where we live. It does not cool down much during the night and attempting to save on the electric bill exposed the CPUs to the risk of overheating. In this situation, the Cooler Master's Aerogate II fan and temperature control unit I had installed in one of the external bays in the case's front warned me of the impending disaster and saved the CPUs.
  • I installed magnetic levitation fans and one of Y.S. Tech's tip magnetic driving (TMD) fans as replacements. I used teflon screws to mount the TMD fan. It is fabulous. A good demonstration of these fans can be found here.
    You may wish to check out this book, if you seek more advice. I own a few books in this series and found them helpful.