You are not logged in.

#1 2005-03-09 05:24:09

sudman1
Member
From: Huntingdon, UK
Registered: 2005-02-18
Posts: 143

What about binary Device Drivers?

I know that the current view of the Linux devs is that you can't improve the kernel AND provide a stable binary interface for device drivers.  They have a valid point, but I think that there is a way to have the best of both worlds. The folks coding NDISwrapper have done some amazing work getting M$ drivers to work in linux through encapsulation.  The Uniform Driver Interface (project-udi) has some very interesting ideas on portable device drivers, but their scope is limited to providing an API only, not an ABI.

If there were a way to merge the 3 philosophies together by creating a kernel module that provided a stable API AND ABI to LINUX-specific binary drivers, the world of hardware could be opened up to Linux. Hardware manufacturers like Nvidia, ATI, and Thompson (Who are already somewhat Linux friendly) would be able to create binary drivers that actually WORK with Linux.  Hardcore coders would still be able to reverse engineer the device to build the kind of great Linux drivers we have today and still put preasure on the big guys to open their standards up to the world.  However, the Linux community as a whole would benifit from the compromise.

I feel confident that I will get flamed here, but a project like this has real potential.

PS: Does anyone know of any projects out there already with these goals in mind?


v/r
Suds

Offline

#2 2005-03-09 06:10:05

cactus
Taco Eater
From: t͈̫̹ͨa͖͕͎̱͈ͨ͆ć̥̖̝o̫̫̼s͈̭̱̞͍̃!̰
Registered: 2004-05-25
Posts: 4,615
Website

Re: What about binary Device Drivers?

Your poll seems to be a leading one. The "i am using one now" option only has a yes. What if you are using one now, but you think that should not be the case...
Also, your options do not seem to be parallel. Two are about the use of binary drivers, the third is about whether or not the linux kernel devs are right in their statement that underlying api rigidity is bad, and the third is flamebait..

Anyway, I do not pretend to know enough about developing the linux kernel from the inside to know what is and is not a reasonable external "box" to put the devs into. So, I cannot say whether or not your idea is good.

In general, I think binary only drivers are bad. There are plenty of hardware manufacturers that release specs enough to make open source drivers possible.
*shrug*
Likely this post comes too soon after the recent one about software patents in general for me to contribute anything reasonable to the discussion other than a little "sabre rattling".
*rattles sabre*


"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍

Offline

#3 2005-03-09 07:27:23

Snowman
Developer/Forum Fellow
From: Montreal, Canada
Registered: 2004-08-20
Posts: 5,212

Re: What about binary Device Drivers?

I am using a binary driver for my modem (ltmodem). I don't have much choice if I want to use my modem. sad  There is no open source version available (to my knowledge).  If there would be an open source version, I would probably use it.

Offline

#4 2005-03-09 08:13:58

iphitus
Forum Fellow
From: Melbourne, Australia
Registered: 2004-10-09
Posts: 4,927

Re: What about binary Device Drivers?

While I prefer open source drivers, I understand the fact that vendors don't want to open source their drivers.

Offline

#5 2005-03-09 23:56:36

puntmuts
Member
Registered: 2005-02-22
Posts: 138

Re: What about binary Device Drivers?

I prefer open source drivers. That is the reason why I bought a Matrox videocard instead of a much faster ATI/NVidia one ( I'm not a gamer). But if binary is the only option, I will use binary drivers as well. I try to buy hardware that is supported by OSS.


Out / Gone
Mirgrating all my machines off ArchLinux . No longer part of the ArchLinux community / users .
Done. Goodbye.

Offline

#6 2005-03-10 01:04:36

freakyc
Member
Registered: 2004-03-28
Posts: 89

Re: What about binary Device Drivers?

I have an Nvidia card, so I chose the first option.  But drivers are what I'd like most to be open sourced.  Companies could at least open the source once they stop selling the product.

Offline

#7 2005-03-10 01:21:13

Duke
Member
From: Montreal, Canada
Registered: 2004-06-22
Posts: 41

Re: What about binary Device Drivers?

No, no, no, and again no...  Seriously, one of the things I love about using arch (other linuces as well) is that you don't (usually) have to install drivers, the stock kernel has most everything compiled as a module and hotplug and whatnot auto probe and load all (well, most, I've never had any problems with it) the modules needed by the system on bootup.

When dealing with binary device drivers, they are not part of the kernel and need to be installed seperately, and often are not part of distributions due to legality of redistributing them, therefore they must be fetched and installed afterwards, often a pain.  Also, I use an ATi video card, the open source ati drivers suit me just fine, although for others I see how this could be a problem, since their performance isn't as good as binary drivers (or I think, never tried them) and there are compatibility issues (never could get aa working, oh well).

But the thing is, hardware manufacturers don't have to opensource their drivers, and shouldn't, but instead specs should be released so that open source drivers can be made.  If binary drivers are released it may also prevent open source drivers to be developed since, well, there are already working drivers, and even if they're binary many people consider them "good enough".  This presents the same problem wine does, why develop native linux applications if windows apps can be run under wine?  Why develop open source drivers if there are binary drivers the work "ok"?

This same problem arises when you can use windows binary drivers under linux (as wifi lan drivers can now be used under FreeBSD with Project Evil).  Open source drivers are GOOD, since they can be ported to different operating systems and knowledge can be SHARED.  What it all comes down to is the closed source vs open source debate, and since this is an archlinux forum, I gather you all use linux and therefore prefer Open Source to closed source...  So why are we even having this conversation?  Prefer closed source drivers?  Use windows, that OS has got alot of them...

Offline

#8 2005-03-10 01:23:23

i3839
Member
Registered: 2004-02-04
Posts: 1,185

Re: What about binary Device Drivers?

I'm so tired of binary drivers, if only of the rather good nvidia one, so now I'm using the nv driver instead of the nvidia one.

All the binary drivers must be handled as a black box. So if there's some bug in the kernel, but it's unknown where it is exactly and by what it's caused, the bug must be reproduced without any closed source driver to exclude that as the source of the problem. But if there are too many binary only drivers so that a system can't run without them, then it's starting to become impossible to do proper debugging on such systems. Another point is that the Linux kernel has no stable ABI, and it's progressing rather fast. That means that if the kernel changes often the binary drivers must be changed too, but that will always lag behind and may cause instability until it's fixed. In contrast, all the open source drivers are fixed globally when a change is made in the kernel.

It's not only unpractical and unstable, but also very illegal what you want to do. The kernel is GPL, so all the drivers you write for it must be GPL too. Only reason nvidia and co get away with their closed driver is because it is a Windows one with a GPL'ed wrapper around it to make it work in Linux, and thus arguably not derived from the Linux kernel. But even that is very shady and close to illegal, if not totally. It's tolerated, but there it ends. The NDIS wrappers only work because they work with Windows drivers. They can't work with closed source Linux drivers thanks to the GPL. You could try some BSD though.

To lessen your fear: most hardware is already supported by Linux, so there is no big need for your horrible cludge anyway.

Offline

#9 2005-03-10 03:22:34

sudman1
Member
From: Huntingdon, UK
Registered: 2005-02-18
Posts: 143

Re: What about binary Device Drivers?

I think some of you are missing the point.  Of course we all use Linux - and we think it's great - and that open source in general is great.

Duke said:
When dealing with binary device drivers, they are not part of the kernel and need to be installed seperately, and often are not part of distributions due to legality of redistributing them, therefore they must be fetched and installed afterwards, often a pain.

You are completely correct on this point.  However, providing a stable platform for binary drivers would allow vendors to distribute their Linux drivers in their retail packaging.  I tend to keep all my driver disks for M$ use. If a vendor had Linux drivers on those cds as well, I personally wouldn't be maintaining anything extra.  Plus, you could always archive the retail drivers on your internal FTP server or USB HD.

Duke said:
If binary drivers are released it may also prevent open source drivers to be developed since, well, there are already working drivers, and even if they're binary many people consider them "good enough". [...] Why develop open source drivers if there are binary drivers the work "ok"?

There are at least 4 reasons to keep developing OSS drivers. Firstly, there would be a bit of latency involved with adding an interface to the kernel - so a built-in module would always be preferable. Second, the kernel developers would not be content to let manufacturers drive their creative processes - and so would make their own way through. Thirdly, Linus Torvalds started Linux as a hobby (although it has evolved since then) to learn more about OS programming.  A lot of people use the kernel as a learning ground - and could continue doing so for the shear fun of it!  big_smile  and Fouthly:

Duke said:
Open source drivers are GOOD, since they can be ported to different operating systems and knowledge can be SHARED

i3839 said:
Another point is that the Linux kernel has no stable ABI, and it's progressing rather fast. That means that if the kernel changes often the binary drivers must be changed too, but that will always lag behind and may cause instability until it's fixed.

That is exactly why, if binary drivers are to be used, an interface should be created to facilitate this usage.

i3839 said:
Only reason nvidia and co get away with their closed driver is because it is a Windows one with a GPL'ed wrapper around it to make it work in Linux, and thus arguably not derived from the Linux kernel

That's not true. the Official Nvidia drivers have to be compiled against your running kernel. You need the kernel source if Nvidia has not already built a binary for that kernel version.

i3839 said:
The NDIS wrappers only work because they work with Windows drivers. They can't work with closed source Linux drivers thanks to the GPL.

How do you figure? Whether it's closed source windows code or Linux code, it doesn't modify the kernel's code one bit. Plus the wrapper is OSS, it just provides an interface to the binary driver. One major difference in what I propose is that the Linux drivers would be linux binaries, not Windows binaries, and therefore allow for one less layer of abstraction..


v/r
Suds

Offline

#10 2005-03-10 03:47:33

Duke
Member
From: Montreal, Canada
Registered: 2004-06-22
Posts: 41

Re: What about binary Device Drivers?

Well, I agree with i3839 on most of his remarks, and while I don't want to start a fight with sudman (really) I just want to explain my views...

A stable platform for binary drivers is not what I want, now I don't know better than the kernel developers, but if the ABI keeps changing, well, I gather it's because they think it should.   What I mean is that if the ABI is being changed, it's for the better.  That's what makes Linux based OSs so amazing, they have no need for backwards compatibility, such as XP being able to run 95 apps, or even dos programs.  You have to be able to let go of the old to embrace and create the new.

As for delivering the drivers with the hardware, that's what I don't want, I like installing my OS and having everything Just Work, having to install drivers after, from a CD just complicates the affair.

I respect others opinions, but I feel that there is no place for binary drivers in a Linux based OS, just as there is no place for comercial software...  Remember the move from libc to glibc?  Many of you might now, but that broke most (if not all, can't remember) binaries compiled for libc5, and all programs had to be recompiled.  That wouldn't work to well these days with all the comercial software for linux, now would it?

Anything binary or comercial, just holds linux back.  I have nothing against making money off linux, but if you keep your code closed it defeats the entire point.

Sorry for the rant, but while I agree with everyone having their own opinions, I seriously can't see why anyone would WANT binary drivers.

Offline

#11 2005-03-10 04:10:07

sudman1
Member
From: Huntingdon, UK
Registered: 2005-02-18
Posts: 143

Re: What about binary Device Drivers?

Just to clarify:

The concept I'm proposing here is not intended to become part of the kernel tree, just an additional and optional module - similar to NDISwrapper in functionality, but larger in scope. Most distros would not offer it out of the box - nor would I expect them to.  The idea is more to extend an olive branch to hardware companies and maybe offer them a way into the linux world until they can see that their intelectual property won't be hijacked by allowing OSS drivers.

It's kind of like giving a child toys to play with at the dentist: The child is afraid of the drills and the masks. They need an incentive not to just run out of the office screaming.  And in the end, they feel good and leave with a smile. We can slowly bring the vendors into the fold and start changing their ideas from the inside out and they would thank us in the end.

I hope that even if most people don't agree with me on this, that they can at least give it some genuine thought.


v/r
Suds

Offline

#12 2005-03-10 04:16:34

cactus
Taco Eater
From: t͈̫̹ͨa͖͕͎̱͈ͨ͆ć̥̖̝o̫̫̼s͈̭̱̞͍̃!̰
Registered: 2004-05-25
Posts: 4,615
Website

Re: What about binary Device Drivers?

sudman1 wrote:

That's not true. the Official Nvidia drivers have to be compiled against your running kernel. You need the kernel source if Nvidia has not already built a binary for that kernel version.

You compile the interface, not the driver itself.

How do you figure? Whether it's closed source windows code or Linux code, it doesn't modify the kernel's code one bit. Plus the wrapper is OSS, it just provides an interface to the binary driver. One major difference in what I propose is that the Linux drivers would be linux binaries, not Windows binaries, and therefore allow for one less layer of abstraction..

If it uses the kernel apis, and kernel include libs, then it is derived from kernel code. Thus it must comply with the gpl.
http://www.riseforth.com/ossLicensingPrimer.htm


"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍

Offline

#13 2005-03-10 04:16:54

sudman1
Member
From: Huntingdon, UK
Registered: 2005-02-18
Posts: 143

Re: What about binary Device Drivers?

Duke wrote:

[...] I don't want to start a fight with sudman (really) I just want to explain my views [...]

That's what the poll is for - to facilitate discussion. I know that many people feel strongly about this subject, and I'm as interested in hearing what everyone else has to say just as much as I want people to hear what I have to say.


v/r
Suds

Offline

#14 2005-03-10 04:22:28

sudman1
Member
From: Huntingdon, UK
Registered: 2005-02-18
Posts: 143

Re: What about binary Device Drivers?

cactus wrote:

...If it uses the kernel apis, and kernel include libs, then it is derived from kernel code. Thus it must comply with the gpl...

The wrapper would be GPL because it would have to use those APIs and libs, but the drivers coded by the vendors would necessarily be ignorant of internal kernel mechanisms and would use those provided by the wrapper.


v/r
Suds

Offline

#15 2005-03-10 05:00:04

cactus
Taco Eater
From: t͈̫̹ͨa͖͕͎̱͈ͨ͆ć̥̖̝o̫̫̼s͈̭̱̞͍̃!̰
Registered: 2004-05-25
Posts: 4,615
Website

Re: What about binary Device Drivers?

but if they code specifically to the wrapper, then they run into the same problem. They have to code the driver completely independently, then code the wrapper to talk to both...
Kinda nutty, and still a grey area.


"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍

Offline

#16 2005-03-10 05:30:03

Duke
Member
From: Montreal, Canada
Registered: 2004-06-22
Posts: 41

Re: What about binary Device Drivers?

But, there shouldn't BE a wrapper.  It all just seems like a hack to me.  Some people might like that, but I personally don't.

I didn't vote that closed source is evil, for I was more inclined to vote that the kernel devs were doing a good job, since I really find that they are.  I've had no problems with in-kernel drivers in quite some time (just my experience, everyone has a different system).

I'm not an open source fanatic, I just think that mixing closed source and open source (well, GPL that is) just doesn't work out.

Offline

#17 2005-03-10 05:31:18

sudman1
Member
From: Huntingdon, UK
Registered: 2005-02-18
Posts: 143

Re: What about binary Device Drivers?

cactus wrote:

but if they code specifically to the wrapper, then they run into the same problem. They have to code the driver completely independently, then code the wrapper to talk to both...
Kinda nutty, and still a grey area.

Food for thought - and point taken. However, based on the info below, I feel that I should not give up on the idea and just read the whole GPL.  Legaleese is not my forte, but if OJ can be acquitted, surely there's a way to make this work.  smile

From http://www.riseforth.com/ossLicensingPrimer.htm :
Potential exceptions to the GPL are generic drivers, and standalone binary modules (which don't modify the kernel). Dynamic modules, (including drivers), are loaded and unloaded at runtime: dynamically linked. They extend the Linux kernel without recompiling and rebooting. There is a strong argument that dynamically linked binary modules are not Linux derivatives.

One caveat however: Binary-only distributions running in either the User Space, or running in the Kernel Space that appear to be outside the scope of the GPL, could still be considered GPL derived works if they are contrived to circumvent the GPL by leveraging minor coincidental changes to the kernel.

BTW: A bit off topic maybe, but last I heard, the GPL hadn't been contested in court yet. So I don't think I could find any courtroom precedents to research.  And, no, I don't want to breach the GPL, I'm just not willing to chuck an idea so quickly. wink


v/r
Suds

Offline

#18 2005-03-10 07:49:59

cactus
Taco Eater
From: t͈̫̹ͨa͖͕͎̱͈ͨ͆ć̥̖̝o̫̫̼s͈̭̱̞͍̃!̰
Registered: 2004-05-25
Posts: 4,615
Website

Re: What about binary Device Drivers?

sudman1, there is lots of good documentation on understanding the gpl at gnu.org, and at groklaw.net
wink


"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍

Offline

#19 2005-03-10 08:50:52

iphitus
Forum Fellow
From: Melbourne, Australia
Registered: 2004-10-09
Posts: 4,927

Re: What about binary Device Drivers?

the reason we have closed drivers, nvidia for example, is to hide the workings of their hardware and secrets of their hardware.

A lot more of the graphics card's functions are performed by the driver and not the card as you may realise. The drivers now do a lot of the work of a graphics card. Thats why you see such an improvement/drop in performance between driver versions.

The driver is closed source because they dont want the code exposed. This code is what does a lot of the cool stuff, not the card itself.

Offline

#20 2005-03-10 19:46:00

iBertus
Member
From: Greenville, NC
Registered: 2004-11-04
Posts: 2,228

Re: What about binary Device Drivers?

I've used both the ATI and nVidia binary drivers and haven't had any problems. I use the system that works best for my needs, and I require fast graphics. I use linux not because it's open source but because it work better, is faster and constantly in development. Closed vs. Open source really doesn't matter to me. I don't expect a company to give away it's secrets just to maintain totally open source systems anytime soon.

Offline

#21 2005-03-10 21:52:57

filoktetes
Member
From: Skien, Norway
Registered: 2003-12-29
Posts: 286

Re: What about binary Device Drivers?

Even though closed source is the devil, I had to, very reluctantly, vote yes, I'm using one now.
Although Richard Stallman seems to be of another opinion, I think that not only software, but also hardware should be free as in Freedom, not as in beer. I find that hiding information about products from the customers is just as immoral as preventing people from sharing or fixing software.
I really wish I had the patience to always search for hardware made by people who don't want to hide what they're selling. But I don't. Recently I bought a wireless card, and I have to use an ugly binary driver for it.
Still, untill I have no choice, I refuse to install the binary nvidia drivers. The xorg driver is good enough for me, even if that doesn't make Nvidia and their ensnaring driver any better. I woud have bought a Matrox card, but this computer was given to me, so I had no choice.

Offline

#22 2005-03-10 23:26:40

i3839
Member
Registered: 2004-02-04
Posts: 1,185

Re: What about binary Device Drivers?

The wrapper must be GPL, and thus must the binaries using that wrapper too, because they're made for that wrapper. The point is that if there's a binary driver that's made for another API, then it can use the GPL wrapper because it isn't derived from it. Even this is shady because the wrapper is on a very thin edge by including non-GPL code. If you want legal closed source drivers move them to userspace.

Offline

#23 2005-03-11 01:33:02

sudman1
Member
From: Huntingdon, UK
Registered: 2005-02-18
Posts: 143

Re: What about binary Device Drivers?

i3839 wrote:

The point is that if there's a binary driver that's made for another API, then it can use the GPL wrapper because it isn't derived from it.

Maybe the wrapper could be written to the ProjectUDI drivers then? It makes sense to me, as there are already vendors that at least supported UDI at one time.


v/r
Suds

Offline

#24 2005-03-11 06:27:28

skoal
Member
From: Frequent Flyer Underworld
Registered: 2004-03-23
Posts: 612
Website

Re: What about binary Device Drivers?

Well, sudman...

Whether you realized it or not, I think you touched upon an ideological discussion you may not have considered.  First, let me say absolutely there should be a stable kernel ABI for Linux drivers, for many obvious reasons (none of which are phillosophical).

Now on to the ideological...

One of the biggest reasons Unix was so fractured in Industry usage was this very reason, lack of a common ABI amongst the various *NIX flavours.  Remember SCO?  It was their efforts with Intel some time ago to accomplish just that, and it's currently the thrust behind the lawsuit.

And for the practical...

I don't think it will ever happen.  Mainly because Linux is so divergent and in constant flux.  I beleive Project Utopia is trying to address this very issue.  With what success is beyond me...

By the way, I wrote a parallel NIC driver a while back for my company on the 2.2 kernel.  When the 2.4 kernel came out shortly thereafter, our company basically said, "fuck it, we're changing back to the Solaris platform."  Lack of an ABI really hurts in such a case.  Unless you're Intel (who has several OSS projects including drivers currently out there), most companies will continue to shy away from Linux development if maintenance > return on investment.

Offline

Board footer

Powered by FluxBB