Shopping and Linux hardware support

I was recently looking to buy a scanner with a good or complete support in Linux: I quickly discovered that it was an exercise in frustration control.

Linux hardware: an ongoing headache

One of the ongoing problems when using Linux is that hardware manufacturers do not provide their full specifications to driver developers, much less do they develop and provide Linux drivers themselves. There are well known exceptions but by and large, it is a state of affair that has given headaches to more than one Linux users.

All common hardware are well supported: CPUs, hard drives, most mother boards, etc. But when shopping for more specialized hardware, we are often facing a more difficult situation.

As I needed a scanner, I did what I had to do. First I had a look at the list of scanners supported by the SANE (Scanner Access Now Easy) project, but it contains close to 1500 scanners 1.

So I tried to operate the other way around: I went to the computer hardware shops and made a list of all the scanners available on the market today. I came back home with a list of manufacturers, product reference numbers and prices. (I didn't write down the specs since I knew I could check them online.) But then, I soon found out that it was close to impossible to compare the list I brought back from the shops to that of the SANE supported devices: scanners on one list are mostly not on the other list and vice-versa.

How am I supposed to chose a scanner, then?

I am certainly not blaming the SANE developers, who do what they can in their spare time according to the hardware they have access to. The situation is nonetheless vexing. We can do something about it.

A positive approach

Far from me the idea to rant on a known problem just for the sake of venting my frustration. I am posting this to assess the current situation and suggest possible courses of action. The objective of this very web site (http://linux.overshoot.tv/ ) is to contribute something positive so that the situation improves over time.

What follows are more specific observations and practical action points.

Catalogues of hardware with support status

As noted above, it can be sometimes difficult to choose a specific hardware when there is almost no overlap between the list of devices available on the market place and the lists found on the internet with devices supported by Linux.

Over the years, I have heard of several schemes to manually or automatically repertory the hardware owned by Linux users together with the availability and quality of Linux drivers. In some places, users are invited to manually modify a wiki to list their hardware 2. Elsewhere, people are invited to download and run a script that will automatically list and submit their computer hardware into a central database 3.

It is one of the main mission of this site to repertory and list all the best resources and documentation available on the internet. If you know of any good project, you may list them on the hardware home page here: http://linux.overshoot.tv/wiki/hardware .

Requests for testing: connecting driver developers to end users

While looking for my elusive, ideal scanner, I browsed the SANE mailing list and noticed a few threads where driver developers were asking specific device owners to help by testing and providing feedback 4.

In the most ideal situation, hardware manufacturers would provide the full specs for each of their devices. The Linux community has many, many talented driver developers. However, those developers obviously do not own the full range of hardware available on the market, nor do they have the money to purchase all the newest, most popular hardware entering the market. For them to be able to do their job, they need to have access, directly or remotely to the devices that need to be tested.

In the example above of SANE developers asking scanner owners to volunteer, the developers are obviously pooling their (hardware) resources via the SANE development mailing list. The obvious limitation is that even the whole membership of the said mailing list may not own the full range of devices to test.

So, the question now is: how do we help open source driver developers get in touch with Linux users who own a device to be tested?

I do not have a ready answer to this question, but it is an important one if we want to improve the range of Linux open source drivers in the future.

Here is the ticket to discuss this question: #96: connecting driver developers and hardware owners
Here is the corresponding wiki page:
http://linux.overshoot.tv/wiki/hardware/hardware_owners_help_linux_drive...

Manufacturer Hall of (Linux) Honour

Again and again, the open source driver developers remind us that we should blame the manufacturers for any lack of proper Linux drivers. And they are right.

I think it is about time there were a coordinated effort for the Linux community to lobby the manufacturers and pressure them with our wallet whenever we go out and purchase some hardware.

Currently, Linux consumers can only proceed using hearsays. For example, I have personally heard a lot of good about HP's friendliness towards Linux. (Yet, I was not able to find a HP scanner on the market today that is on the SANE list of supported hardware. But I did find some in the shops that were officially not supported.)

We need to quantify and substantiate such claims so as to build an authoritative list of the most Linux-friendly manufacturers. We need to build a list of objective criteria and measure every manufacturer with the same stick.

We can discuss this specific issue here:
#99: Criteria to measure manufacturers linux-friendliness.
and document what we find here:
http://linux.overshoot.tv/wiki/hardware/most_linux_friendly_hardware_man...

Conclusion

Obviously, the projects and ideas highlighted above will not happen on their own. Neither is it me alone who will make a difference. I am simply hoping that the Linux user community will shine and be at its best: let everyone contribute a little something and soon the situation we're facing when hardware shopping might be different.