Mihail Radu Solcan

  Hardware for GNU/Linux

2007-12-20

The point of this note is very simple. Don't buy first a computer and then try to install GNU/Linux on it. Build a computer for GNU/Linux. 

GNU/Linux is open source. In some cases, for various reasons, the producers of hardware do not offer an open specification for their products. They may even resist the idea of an open source driver for their products. Such pieces of hardware are clearly incompatible with a GNU/Linux system. That's why it is not a good idea to buy first a computer or even some other piece of hardware and then try to run GNU/Linux on that system. 

What I did when I changed my old computer? I have simply assembled a new one from pieces which are compatible with GNU/Linux. This note synthesizes this experience. It is distributed without any expressed or implied warranty. 

Case, motherboard and CPU

The first thing you need is a computer case. This should be the least problematic piece of hardware. However, I observed that it is important to have a case which is easy to open and close. I also definitely prefer a normal tower case, not some fancy case that might force you to use only specially designed hardware. 

The next thing you have to find is a motherboard and a CPU. Now, you have to use your judgment. There are some obvious things, such as the compatibility of the motherboard and the CPU. This is out of the topic of this note, but a simple idea is to buy them together and ask at the shop if they are compatible. 

How about the compatibility of the motherboard and the other pieces of hardware with GNU/Linux? Well, the best idea is to see on what kind of systems is a a GNU/Linux system running. For example, Fedora 6 or newer includes smolt, a hardware profiler. Smolt collects information from Fedora users. 

Another place to look at is Red Hat's hardware catalog. 

An even better idea is to search on the Internet. I live in Bucharest (Romania) and I am able to buy only some pieces of hardware. For example, I bought a P5B-Plus motherboard produced by Asus. It is easy to check on the Internet the compatibility with GNU/Linux. Is somebody selling a system with preinstalled Linux on it containing this motherboard? Are there too many complaints in the discussions on the Internet? 

The search on the Internet, in the case of P5B-Plus, led me to this page with tests. You can do a similar search for some other motherboard. 

Now, it is easy to see which are the CPUs that you can use with the motherboard. I was prudent and I chose an Intel(R) Pentium(R) 4 CPU at 3GHz. It has a 2048KB cache. The motherboard supports dual core. That's why probably I get sometimes the spurious information that I have two CPUs in the system. 

The hard disks

There is another experience from which one can learn. In my case, at the Department of Philosophy, some of the computers run Linux. I also use in my office a Linux box. 

However, the hardware changes rapidly. In the office, I do not have SATA in the system. The P5B-Plus has SATA connectors. 

Document yourself! What is SATA? I learned a lot from SATA org. For example, this page helped me to understand the SATA products naming conventions. 

I bought two SATA hard disks. A smaller, but faster (10000 RPM), disk and a larger, but slower (7200 RPM) disk. I put the home on the larger disk and the rest on the smaller, but faster disk. 

Linux works pretty well with the SATA disks. However, again use your judgment and read a lot before buying. 

With the P5B-Plus motherboard configure SATA as AHCI. 

How much memory?

GNU/Linux works better with a lot of memory. See the smolt statistics for RAM. At least 1024MB or more (until 2048MB) seems a reasonable choice. 

Study very well the motherboard before buying RAM. Fast RAM would be a good choice. 

The graphic card and the display

The graphic card is the most problematic piece of harware in the case of GNU/Linux. 

In Bucharest, most vendors would offer you only ATI and Nvidia. I chose GeForce 7300 GS with Nvidia. Nvidia offers drivers for Linux. In the case of Fedora, there is also the rpm repository livna.org. 

I also chose to buy a Fujitsu-Siemens LCD display. This display is recognized by the livna drivers for Nvidia. It is recognized as FUS B17-1. 

There is a large degree of compromise here. This is not an open source solution. At least, not a pure one. 

Why accept some drivers without source? I don't simply have the ambition to read or change the sources in the case of the graphic card. 

Make it work

The DVD-CDROM should not raise special problems. I just did not buy one which needs special or fancy drivers. 

I also chose a keyboard and a mouse without special or fancy traits. 

For the construction as such you need tools you can buy in many computer shops. You also have to read carefully the documentation of the various pieces of hardware. Remember that you should not use force! The connectors have forms which almost tell you what to insert where. 

There are a lot of nasty details. For example, do not forget the little cable for the audio connection between the DVD-CDROM and the motherboard. 

I installed Fedora 7 at the first attempt. Ubuntu 7.04 live CD also starts on this kind of configuration. Ubuntu did tell me that the Nvidia accelerated graphics driver is not in use. 

Knoppix 5.1 live CD did not work in graphics mode. 

Do not be afraid

Start with a minimal configuration. Study its characteristics. 

There were worse times. I tried once to put GNU/Linux on a laptop. The display was not destroyed, but its configuration was affected. I had to use for months an external monitor with the laptop. Now, I think that I have not used a conservative value for the LCD. I also suspect that there was no driver for the SiS graphic card. 

What if your family would not allow you to change the operating system to GNU/Linux? Use dual boot? I think there is a better solution, described in the section “Dual system unit computer”. 

Dual system unit computer

You can use two system units and one monitor, one keyboard and one mouse. How? 

Use a 2-port switch, for example TK-200 from Trendnet. With this switch you manage two system units with one monitor, keyboard and mouse. 

The dual system units is a far better solution than the dual boot. 

Local network

If you have at least two system units, connect them in a LAN. 

What do you need? You need ethernet (UTP) cables with 8 pin modular jacks. You also need a network hub. 

You can also connect a printer to the LAN. In this way you can print from both system units or from other computers in the LAN. 

Now you can use a ssh tunnel between the two system units for transfering files or working on the command line of the other system unit. And, of course, if you want, you can use a graphic system (either through SSH, Samba implementation of SMB or VNC).