Linux and hardware still have trouble getting along

Older desktops fare well in tests, but newer equipment reveals compatibility shortcomings

A major hurdle for any Linux desktop rollout is hardware compatibility, or lack thereof. Whether leveraging older hardware or rolling out new systems, ensuring that every component in the desktop works as it should is key.

Linux’s compatibility shortcomings were apparent as I tested these four Linux desktop solutions. For the desktop-class tests, I used four Hewlett-Packard Kayak XU800 workstations with a single Pentium III 866MHz CPU. These systems are a bit long in the tooth, but they did provide a good representation of corporate desktop systems late in the replacement cycle. None of the distributions had any substantial problems with the hardware on the XU800s, although SuSE did not automatically discover the sound card.

I experienced significant compatibility issues in my laptop tests. I used an HP nx5000 series laptop with a Pentium-M 1.4GHz CPU and an IBM ThinkPad T40 with a Pentium-M 1.6GHz CPU, each of which was equipped with an Intel Centrino wireless chip set. I also used a Dell Latitude D800 with a Pentium-M 1.8GHz CPU, Broadcom Gigabit Ethernet, and the Dell Wireless 1350 NIC.

The distributions did not detect the laptops boasting the Centrino wireless chip sets nor did they detect the Broadcom-based Dell wireless chip set. Furthermore, only Xandros detected and supported the Conexant 56Kbps modems in the laptops. (Xandros includes some Conexant Winmodem drivers.)

The biggest problem I encountered was with the Broadcom 4400 Ethernet controller in the HP nx5000; none of the distributions would properly load the b44 module, rendering the interface inaccessible. A test installation of Fedora Core 2, running kernel v2.6.5 had no problems with this NIC.

Overall, power management features such as suspend-to-RAM, newer wireless chip sets, and Winmodems are the problem areas for Linux on laptops. These are not insurmountable, but solid function will take some elbow grease. On the flip side, a fresh installation of Windows XP on the same lab hardware generally required more manual driver installations than any of the Linux distributions.

The ndiswrapper project addressed the wireless problem well, allowing the Centrino and Broadcom wireless cards to be used by wrapping the appropriate Microsoft Windows XP driver and presenting a native Linux device. Using ndiswrapper, which is not included with any of the distributions, all integrated wireless cards worked without a problem. For the modems, LinuxAnt’s commercial drivers may be the answer.

Other hardware issues cropped up with the default installation of all distributions. I plugged a USB flash drive into a system running each distribution. Although the each OS detected and assigned the device, none of them presented the drive anywhere in the UI, with the exception of Xandros, which auto-mounts USB devices in the same way Windows does.

Mounting and accessing the drive wasn’t a problem from the command line, but to a casual user, the device was not available. Conversely, all distributions handled CD burning with aplomb. When a blank CD was inserted, each automatically ran a default CD-burning package.

It’s rare to encounter completely unsupported hardware, but expect to be tweaking kernels and compiling modules for some of the more esoteric, older peripherals and to be fighting with somewhat immature drivers for newer hardware. As desktop Linux picks up speed, hardware vendors will be forced to release drivers for Linux. Many vendors do this well already, such as Nvidia, and others allow the open source community to do the work. Unfortunately, some vendors release binary-only drivers that require a specific kernel to function rather than code that can be compiled into modules for most kernels. With some major system vendors offering Linux distributions preinstalled on new systems and Linux OS vendors moving to the v2.6 kernel, I expect this to change -- and sooner than you might think.

Copyright © 2004 IDG Communications, Inc.

How to choose a low-code development platform