Half open source drivers

[Update] my apologies on the trackback/pingback spam. 33 of these. Given how people are attempting to influence Google et al.’s searching algorithm by initiating these pingbacks/trackbacks … This is what SEO buys us folks. It wastes our time and resources cleaning up after it, and it negatively impacts the quality of responses to queries. This is good … how? Trackbacks and pingbacks disabled for now.
I’d posted about NVidia issues with Ubuntu 10.04 recently. NVidia’s drivers aren’t open source, and I don’t expect them to make them so. This post isn’t about them.
We use a a variety of functionality enhancing cards. These cards often come with driver disk packs, which assume you are working with, usually, an aging Redhat or SuSE distribution version. Generally speaking, we can usually work around these issues, by doing our installation without the component, and then updating the driver later.
Not a problem.
Well … sort of not a problem.
Suppose, like us, you use an up to date kernel, with some patches, some tweaks, etc. Suppose you want to use this nice new-fangled hardware with your kernel. Suppose the driver in the kernel is old. It doesn’t support the new hardware. Even with an up to date kernel. The driver in the kernel actually is languishing behind their binary distribution (which forces a specific kernel choice upon you), or wrapped up in another project which means it has lots of additional baggage (and in this case, being a newer driver, far lower stability).

We have run into this with RAID cards, with Infiniband cards, etc.
What I want is something nice and simple. If your driver is open source, then, please, provide a tarball, or a repository where we can pull it from. Please try to keep it up to date relative to the kernel release, the better hardware manufacturers seem not to have trouble with this.
If your driver is closed source, please let me know. Place a note on your website about this, where it works, what it has been tested with, and what your roadmap plan looks like (roughly).
Hearing that we can’t use the nice stable kernel we have built with the features we need because the hardware drivers aren’t up to snuff doesn’t make us happy.
Or in more equation form, Redhat != Linux. They aren’t the only folks out there, and even if you think they are, you need to at minimum track their releases, including kernel updates. Watching a device go missing due to a driver non-update (and a module refusing to load … yeah … that doesn’t make anyone happy).
Lets try to encourage those with half-open drivers to either fully open them, or close and withdraw them. No half steps, either fully commit or fully remove. Please.

2 thoughts on “Half open source drivers”

  1. I’d suggest that if the driver is open source it would be best to push it up into the mainline kernel so it can pick up API changes, etc, automatically..

  2. @Chris
    Yes, this makes sense. But the problem with this is that many times, the driver is a drop into a specific kernel with minor tracking fixes, and most functionality into a private tree outside of the kernel. The Mellanox XRC bits are like this; if you build a ConnectX machine, and a modern kernel … pre 2.6.33 … you don’t get XRC support. Other things work, but anything that requires XRC (like ib_send_bw) fails with a kernel message.
    To be fair, their code is, in this case, in the Open Fabrics OFED stacks. But this still isn’t that great of a solution.
    We have similar problems with Qlogic and LSI among others. Marvel appears to release binary only drivers, not even source to rebuild a driver interface. This is more onerous than what NVidia and other binary driver folks do, in that, unless you are using exactly the kernel they support, you are toast.

Comments are closed.