LWN.net Logo

Linux driver model

Linux driver model

Posted Aug 27, 2004 19:55 UTC (Fri) by subhasroy (subscriber, #325)
Parent article: Linux loses the Philips webcam driver

Isn't it possible to make the Linux's driver interface more plugin-friendly?

I think the peripheral device vendors have rights to keep their drivers proprietary and binary. I think the Linux users should be able to enjoy products from such vendors.

If the Linux kernel is designed such that:
- no per-product hook is required
- highly generic but rich hooks (API) are provided
- binaries containing proprietary device drivers can make use
of the hooks and make effective functioning of the devices possible.

I see the device drivers as part of the device rather than part of the kernel. The kernel should avoid including in itself device drivers for every product that the kernel intends to permit the users to use.


(Log in to post comments)

Linux driver model

Posted Aug 27, 2004 20:09 UTC (Fri) by piman (subscriber, #8957) [Link]

Such "generic hooks" can be provided by free kernel space drivers as device files, and then userspace tools can manage those devices.

The problem is not that someone wants to make a binary driver for Linux (this is unfortunately common, and has a slew of other issues, but it's not the problem here). The problem is that someone wants to make a binary driver for Linux, and keep it in the kernel tree, which claims to be free.

Or do you think that Linus shouldn't have the right to say what goes in the tarballs he releases?

Linux driver model

Posted Aug 28, 2004 0:05 UTC (Sat) by subhasroy (subscriber, #325) [Link]

Of course I also believe Linus has right to keep "binary crap" out of his kernel.

I just hope for a good technical solution and I don't know why it should be impossible to come to come up with such a solution.

The vendor-supplied proprietary stuff should make use of the user-space as much as possible. Loading third party binaries to kernel makes it vulnerable to instability.

Linux driver model

Posted Aug 28, 2004 17:28 UTC (Sat) by piman (subscriber, #8957) [Link]

Well, the one fellow with the technical know-how and specs from Philips has refused to develop the driver anymore. If someone else wanted to pick up the userspace decoding project, they'd have to convince Philips, and also sign another NDA. The first part is often difficult, and few people would agree to the latter.

A good solution would be for owners of the camera to write Philips and ask them to make the specs freely available.

Reverse engineering is an alternative to signing an NDA

Posted Aug 29, 2004 18:05 UTC (Sun) by hamjudo (subscriber, #363) [Link]

The existing not quite free drivers discouraged work on a truly free driver. Now that they're out of the way, we can start working on a free driver.

It's been done before. In November 5th, 1995 Russell Nelson set up a website and mailing list for reverse engineering another camera that lacked free documentation. Here is the announcement. I remember testing camera code with a baby in my lap.

Reverse engineering just the decompressor is a smaller task than reverse engineering the whole camera.

I haven't read all the referenced postings yet. Has anyone started on such a project? I can help test, but I'm no project manager.

Linux driver model

Posted Aug 28, 2004 9:14 UTC (Sat) by qubes (subscriber, #2562) [Link]

Hardware manufatures can fsck them selves if it _requires_ a binary blob
to make it work. If that's all the manufature provides I don't buy their
hardware. I've got a Nvidia chipset, but only because there is a free
GPL'ed version in X; if there wasn't I would have spent my _cash_ on other
hardware. At the time, ATI didn't have even 2d support for thier cards;
hopefully, even marketing will be able to understand that.

Now, I just wish a well read author would write about the dangers using
un-peer reviewed source code; much like using junk science (even if junk
science is so much quicker to produce.)

Thomas

Linux driver model

Posted Aug 30, 2004 15:36 UTC (Mon) by raymond (guest, #5200) [Link]

I think the kernel should be pure open source. This is essential for it to be high quality and stable.

Still I think we should find a way to promote binary driver. Is it possible to make the kernel a layered structure that we can keep the core open source while at same time make binary driver "compatible" across minor version?

I wish I am more knowledgable before I comment. I always think that only people who know details are suitable to comment. But I really wish that the driver support of Linux could be improved.

Linux driver model

Posted Aug 27, 2004 20:54 UTC (Fri) by Los__D (subscriber, #15263) [Link]

Hmmmm... I'm not completely sure, but I think that the firmware loading part of hotplug is a little like what you are looking for... Of course it's not completely free of a GPL part (AFAIK, at least Intel's Centrino wireless drivers still has a real kernel module), but it does seperate the binary version from the kernel module...

Dennis

Linux driver model

Posted Aug 29, 2004 11:36 UTC (Sun) by mbp (guest, #2737) [Link]

> Isn't it possible to make the Linux's driver interface more
> plugin-friendly?

It might be technically possible, although it would come at a performance and technical cost: you can no longer update anything that's depended on by binary drivers, even in a source-compatible way. It would also be practically impossible to support a kernel with random binary drivers installed. But it's not primarily a technical decision.

> I think the peripheral device vendors have rights to keep their
> drivers proprietary and binary.

That's your opinion. Most of the core kernel developers have the opposite opinion: binary drivers are not something they wish to encourage. See akpm's OLS keynote http://www.groklaw.net/article.php?story=20040802115731932 for example. So, until you do your own kernel, it's not likely to happen.

> The kernel should avoid including in itself device drivers for every
> product that the kernel intends to permit the users to use.

This is also the opposite of the stated policy. It's fine that you think that would be better, but it's not likely to happen.

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds