Sunday, 16 March 2008

Souping up an old Celeron

As my candidate for Linux I've used an old PC circa 2001. It had only 128MB of memory, and an 800MHz Celeron processor on an Intel i810 motherboard with internal graphics. It ran XP Home like an absolute dog, even with no anti-virus installed. On top of this the mouse port was working intermittently. I initially assumed that it would not be a suitable candidate for one of the major distributions, so I started playing with some smaller distributions suitable for older machines, before realising that it would run Ubuntu.

Sure enough Ubuntu ran fine on the machine, and recognised the USB mouse. For office use with Open Office it would be fine. But for an 8 year old girl it really didn't meet the mark. It wouldn't run any of the fun Linux games with 3D graphics (2 frames a second is unplayable) and couldn't do all the 3D eye candy tricks that her brother's 1 year old dual core machine would. So without spending a fortune how far could I push this machine? So after sorting out some wireless networking it was time to hit eBay for some second hand kit.
  • Pink light up in the dark, optical USB mouse (new) £4.94
  • 256mb PC133 Memory £8.97
  • Asylum FX5200 256 MB PCI nVidia graphics card £28.01
The mouse was just ideal for an 8 year old girl. The memory took the machine from marginal to adequate (Linux just isn't as memory hungry as XP or Vista). The graphics card is perhaps more than strictly necessary.

The internal graphics capability of the Intel 810 chipset on the motherboard was awful and probably the main flaw with the machine. My old 300MHz P3 machine in 1999, which had a modest 3d card was faster, so I knew that a proper graphics card could deliver some real performance improvement. There was no AGP graphic slot in the machine, and its way too old to take a later PCI-Express graphics card, this meant a PCI card would have to do. So I set to reading the forums, to judge what older 3d graphics cards were likely to work with Linux. This is a generalisation but seems that an ATI card works if you are lucky, but can cause a lot of grief and may not work at all. Most of the forum posts regarding Linux and nVidia cards seem to end in the cards working and there's plenty of advice as to how to achieve that. So it was to be an nVidia card.

Upgrades went fine up to the point of installing the graphics card, but given the amount of advice around the topic this was not a big surprise. After installing the card the machine booted Ubuntu showing the nice logo and progress bar during startup at the expected resolution. However the desktop failed to appear. This meant that the BIOS on the motherboard had detected the card and the card was working fine, but the X11/Xwindows server was failing to pick it up.

If this happens you can boot Linux in recovery mode by pressing [esc] at the boot menu, then use the command console to modify the settings and sort things out. Recovery mode starts up Linux in the command console. The first thing was to re run the configuration for Xwindows to select a sensible driver for the card, and set an 800x600 screen resolution.

: dpkg-reconfigure xserver-xorg

This re-ran the setup routine and enabled me to select the 'nv' driver (Linux community Nvidia driver) and set the lower resolution. After restarting the machine it still was not working. Advice suggested that the Xserver software was not being configured to talk to the new card and was most likely trying to talk to the now disabled motherboard graphics device. The answer was to determine the new card's identity and its PCI bus reference, then update the configuration files to reflect that. The configuration for X11 was in the file '/etc/X11/xorg.conf', which indeed was still pointing to the internal graphics card. To find the information about the card, I ran the 'lspci' (list the devices on the PCI bus) command to get the bus address and device name, then replaced the references to the on-board graphics in the xorg.conf file with this information.

After these changes, the GUI was restored. Using the admin tools in the GUI I managed to select a suitable Nvidia legacy driver to get back to 1280x1024 resolution.

The machine was now upgraded, but to get the full benefit from the card, it would require the manufacturer's driver which is one of the 'restricted' drivers. You can make this happen automatically by selecting the 'advanced desktop effects' in the 'Appearance Preferences' dialogue. After selecting this it asks if you wish to use the restricted driver, on saying yes to this, you have to reboot, then the nVidia driver is installed and you can get the full potential out of the graphics card.

After this I installed the Compiz Fusion 3d desktop effects, more of which in a later post. Its amazing, the crappy 7 year old PC will now play 3d games (penguins sliding down hills etc.) and has desktop eye candy that makes Vista look tame. Well worth £28 of anyone's money.

In conclusion, yes with Linux you can add a few more years useful life to an old PC. However adding high end graphics to an old Intel 810 based PC running Linux is not for the faint hearted or the novice to computing, but once again the community support offered on the Ubuntu forums had all the answers required to make this happen. Perhaps later releases of Ubuntu will sort this out too, they do seem to be getting this distribution more robust and usable every release.

No comments: