Consider Dennis Bolay of Bolay Mobilecom, who successfully moved his business from Microsoft Office to open source OpenOffice 2.0 on Windows XP, but failed in his attempt to switch his business desktops to Linux. He tried a couple of distributions, and Ubuntu, in particular, worked well. But Ubuntu didn't work with his Linksys wireless cards. He's had to stick with XP.
Bolay and other IT pros and Linux advocates constantly tell us about the negative impact of driver shortages on Linux PC adoption. In this column, we join those separate voices into a chorus, first outlining the reasons why driver support is so abysmal and then sharing ways IT managers work around the problem. Check out the sidebar, too, for Linux evangelists' action list for promoting change.
Laying the blame
Device drivers were invented because it was too hard for operating system (OS) vendors to support hardware that was developed after the OS shipped to customers, according to Peter van der Linden, author of Peter van der Linden's Guide to Linux: "The solution? A layer of 'glue' software that knows all the foibles of the peculiar hardware and presents a standard interface to the OS above. That is the definition of a device driver." So, the burden for making devices and operating systems play well together falls on device manufacturers.
To lighten that load, many hardware vendors only make their devices play well with Microsoft products. They consider Linux an insignificant revenue generator and have little awareness of or interest in the problems they cause users, said van der Linden.
The classic case of this disregard happened way back when PC phone modem functionality was moved from a $4 card into a combination of a $1 digital signal processing chip and driver software. "Motherboard manufacturers pounced with glee on this $3 unit cost saving," van der Linden said. They provided new Windows device drivers, but left Linux users high and dry.
Besides utter disregard, the clash between proprietary and open source software communities contributes to the problem.
Many manufacturers view drivers as proprietary intellectual property that others shouldn't be allowed to access freely, said Bernard Golden, CEO of Navica Inc., an IT consulting firm in San Carlos, Calif. "The driver issues persist because driver manufacturers release their drivers only in binary form," he said. Also, some closed-source vendors don't provide hardware specifications so open source developers can create drivers.
Even closed-source drivers that do support Linux often do not appear in a form that can be easily adapted by common tools, like Red Hat Package Manager (RPM), Debian/GNU Linux's Advanced Package Tool (APT) and Yellowdog Updater, Modified (yum).
A good driver for Linux would have both a command-line interface (CLI) and a GUI for the different user types, says Miles O'Neal, IT Manager of Intrinsity, Inc., an Austin, Texas-based provider of Fast14 technology. That's hard to find. So is documentation. "We waste a lot of time trying to find the right settings for new video drivers, for instance," O'Neal said.
Overall, driver standardization is lacking, but -- everyone admits -- standards are hard to set when so many flavors of devices exist.
"There is no standardization whatsoever for the interface that hardware presents to software," said van der Linden. "Furthermore, it keeps changing even within families of hardware products, let alone within groups of products that do the same thing -- such as 802.11 WiFi networking -- from different manufacturers."
Sharing the blame
On the flip side, the overabundance of Linux distros baffles hardware vendors. How are they supposed to choose which Linux to support? Another problem is that some Linux distributions' open source driver support is not kept up to date.
The distribution glut causes other problems. "Different Linux distros require different install packages for software and drivers," said Richard Seager, an IT consultant for Opc, a computer consultancy in Weston-super-Mare, North Somerset, U.K. "It is difficult for the newbie to work out how to add a driver to his system to get widget X working, even if he can find the relevant driver."
Look inside Linux, and you won't find a stable application binary interface (ABI) in the kernel, said Jono Bacon, Ubuntu community manager and co-author of Linux Desktop Hacks. Lacking the stable ABI, he explained, a driver needs to be compiled for a user's specific kernel version, and this makes it more difficult to provide a driver on a disk and install it on any system.
"The philosophy behind Linux is that drivers should be open source and part of the kernel itself," Bacon said. So, if a device's driver is open source and supported in the kernel, you're on easy street. "If the device is not supported in the kernel, it is a little trickier," he said. "Luckily, the latter is happening less and less with modern Linux distributions."
Golden notes that many Linux distributors don't include binary/non-open source software (e.g., these drivers) in their distributions, which means end users have to do the work to get the wrapping to work properly. "Forcing end users to do this is a problem, since many people can't or won't figure out how to achieve this wrapping," he said.
Some helpful developments
Some Linux evangelists believe in the utopian idea that hardware device makers and Linux distributors can work together. In a collaborative atmosphere, device vendors would make more specifications available and create more open source drivers. Some, we editors included, think that market pressure is more likely to drive positive results. So, watch for the ripple effect caused by recent releases of high-level open source drivers from big shots like Intel.
It's helpful that Linux is being preinstalled on PCs these days. Hey, you can even buy consumer Linux PCs at WalMart, thanks to the efforts of Linux desktop vendor Linspire. On the business front, Dell is preloading the Mandriva Linux distro on Dell Latitude PCs for the SMB market. HP is also preloading Mandriva on PCs sold outside the U.S. The good news about this trend, Bacon said, is that vendors who preinstall Linux have already obtained and qualified the necessary device drivers on Linux PCs.
Generally, the bestselling, mainstream PC peripherals now support Linux. "I don't expect Linux to support the odder peripherals I use such as slide scanners, VoIP phones," said Seager. "I install Linux on machines with relatively standard components."
Finally, good IT practices will take away most driver hassles and open the door to Linux desktop adoption, our sources say. Test and retest before making changes, stick to your specs when buying hardware and make sure your vendors respect and support your decision to use Linux desktops.
What are your adoption woes? What would you like to hear more about? Send us an email and let us know.