This week's article was going to be a review of the Matrox G450 Dualhead. That article will be published next week because, thanks to various problems with Linux drivers, I was unable to get the hardware working in time. Instead, this week's article will focus on Linux hardware detection/installation methods, and why there is a vast amount of room for improvement.
The lack of unity between Linux distributions has the potential to cause fracturing in the Linux community, and to an extent it has. Especially in hardware support, the distributions differ greatly in functionality.
The problem is that nearly every distribution has a different method of detecting what hardware is installed and loading the appropriate kernel modules/XFree86 drivers. This becomes a big issue when, say, you are installing a video board under Mandrake or Debian and the drivers installation script expects Red Hat, which is a common occurence. This was the problem I had last night, trying to get the Matrox G450 to work under a freshly compiled XFree 4.0.1. The problem I had was that when upgrading Mandrake's build of X to 4.0.1, something conflicted and wackiness ensued. This led to a late night of fighting with hardware drivers and all sorts of other fun bits of software until I gave up and started downloading Mandrake's 7.2 beta version, which comes preinstalled with XFree 4.0.1. Perhaps I was going about it the wrong way, or just had bad luck, but this process should still be more uniform, and certainly much easier.
Mandrake has a particularly nice hardware detection interface, where it will probe for hardware, find what it thinks it is, and configures its build of X accordingly. However, this mechanism seems to die if you use anything but a Mandrake-made build of X; once you upgrade to XFree 4.0.1, it will cease to work. Even if this can be remedied fairly easily for your average Linux user, end users expect for things to just work. If Linux ever wants to be a haven for end users as well as advanced users, this process must be seamless.
Imagine, for one terrifying moment, that you are on a Windows machine (or, for that matter, a Mac). You want to install a new video card, so what do you do? You remove the old one, install the new one, boot up, and insert an installation CD. Most of the time, this process works fairly well, and drivers are included for the various popular versions of Windows (9x, 2k, etc.). On Linux, at present, it is a different story. The first problem comes from the fact most hardware doesn't include Linux drivers by default, and if your hardware is newer than your distribution, chances are it won't have it either. So in order to use your shiny new video card, you need to download drivers.
Now you go to the manufacturer's Web site and find the Linux driver page, and find out it requires XFree 4.0.1, even though most people use 3.3.6. Next, in order to install your new video card, you must upgrade X and the video driver, something that isn't a very user-friendly process. This is due to video drivers that don't support earlier versions of X (even though, on Windows, you still get Win95 support in most drivers, and it's 5 years old) and the lack of a standard driver interface/codebase for X.
VA/Precision Insight is working on something of this nature right now, though it has yet to receive enough manufacturer support to make a large difference. (Disclosure: VA Linux owns NewsForge.) The hope is that it will be ready for primetime soon which would make a standard for drivers between video cards and (hopefully) different versions of X. With all the development focused right now on Linux hardware support, these issues will, with any luck, disappear.