Linux Hardware Vendor Support: Is There a Cure?

Article by stoneforger (1,023 pts ) , published Sep 30, 2008

Linux still suffers from some infantile diseases: some say it's the GUI, others say it has no standards, and still others say it's hard to make it work. But maybe it's because you rarely see a sticker on a hardware product that says "Works with Linux". Why is that, and is it changing ?

How It All Started

Though Linux has come a really long way since its conception and early geek days, after 15 years it still shows signs of early puberty. But it's not its own fault. What has always plagued Linux from the very beginning; the very thing that had always hindered its more widespread adoption as a real, free, working alternative to Windows, was the hardware support. Or lack of it.

Unix had traditionally been a vendor based business. Vendors sold you the machine, the OS, the compilers, and almost everything else that you needed to run it. So no matter exactly what machine people were using, they had a Unix shell and system that ran on their hardware as advertised.

The PC explosion upset this whole model of doing business. While it created many new markets in the following years, it also decoupled hardware vendors from software, and particularly from operating systems. MS-DOS became king, and vendors that didn't switch either died out or consolidated and evolved to adapt to the changes. People started having their own computer at home, and another at work.

Vendors now, instead of having to maintain both machine and operating system, found all they had to do was support MS-DOS. Thus each and every piece of hardware that came out on the market, from the early AdLib sound cards, to the latest incredibly powerful GPUs, had to get close with Microsoft.

What's Wrong With That ?

And that's all fine if you "just want it to work", and you don't mind you have limited options. And are being more or less led around by this neat interdependence: vendors support Microsoft, and Microsoft makes sure they have customers waiting to buy anything they sell for a PC.

What if you don't want your options to be limited by corporate market agreements, and just want to work, but with a free, open source, operating system? Well, then write your own drivers.

And around the world, people embraced Linux as the first truly free piece of software that had potential to actually work rather than remain a cool idea or just a boot screen. So they started getting their hardware to work.

How Hard Could It Be?

Most kernel developers, if not all, are experienced (or had to become) system programmers. Being highly inquisitive in nature, and appropriately skilled in writing system code, reverse engineering hardware became almost a sport of sorts. Little by little more hardware was added to the supported list, and through a never ending circle of development, whatever started out as a broken and buggy driver ended up as a rock solid piece of code (with very few exceptions). Basic IT shop stuff like SCSI(Small Computer System Interface)/IDE(Integrated Drive Electronics) controllers and NICs(Network Interface Card) came first, and then little by little the list expanded to sound, video, modems, USB devices, etc..

But everything was written by volunteers, people that wanted and could make their own hardware work. People that wanted to make cheap affordable hardware work with Linux as well. They always asked some help from hardware vendors, some specs, some design notes, guidelines, anything that would describe the hardware's operation, so that they could write their own driver. But they seldom got anything.

So, for the vast majority of hardware, for the past 15 years, the Linux community has had little vendor support. Vendors didn't really care whether their hardware ran on Linux. With the exception of some networking vendors and some I/O controllers that were already in the Unix market, (Linux had early on qualified as a successor to Unix machines, making support both easy and a logical step for these vendors), Nvidia and then ATI. (I still don't know what made Nvidia provide drivers - I do know ATI followed suit just because Nvidia did it.) Every other hardware vendor has been oblivious to the fact that there exist Linux users who would buy their product (or bought it and can't use it).