public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Kernel module ethics.
@ 2002-02-27 21:11 Allo! Allo!
  2002-02-27 21:33 ` Cyrille Chepelov
                   ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: Allo! Allo! @ 2002-02-27 21:11 UTC (permalink / raw)
  To: linux-kernel

Hi,

The company for whom I work wants to make a linux driver for some of its 
hardware. On my side I would like the driver to be completely open sourced, 
and from a customer point of view, its a big plus (a real PITA to maintain 
closed sourced drivers). On the other hand, the company wants a clear way to 
make "profit" from the work while still catering to it's customers whish to 
recompile the driver for just about any kernel version.

Here is what they propose... I do not know if what they are proposing is 
"going too far" regarding kernel module ethics, but I thought I'd ask the 
question here and see what other people think.

The hardware needs a firmware to run. Since this firmware is under NDA, the 
first compromise is to write the main part of the driver GPL but keep the 
firmware of the card in binary format. The driver can then load the firmware 
separately and this should not infringe on the GPL and I'm quite ok with 
this requirement. Now the problem is that any of our competitor's cards will 
work with the same closed sourced firmware and GPL engine. In pure 
capitalist thinking, the company finds this particularly troublesome...

The other compromise is to write a closed source part that would not permit 
the driver to work with another card supporting the same chipset. Is this 
kind of practice generally accepted or is it frowned upon? The motive of the 
company is quite clear. If people want to "improve" the driver, they can 
only improve it for their hardware, not the competitors. There is also a big 
marketing sales pitch that goes like "we support linux, the others 
don’t..."

It's like if Nvidia did not have linux drivers and ASUS wanted to ship a 
card with a linux driver that only works with asus cards even though there 
is one from leadtek with the exact same chipset (assuming that ASUS cannot 
change the internals of the card).

Is the second compromise just "going too far"? Is this better than simply 
having a 100% closed source driver?

Thanks!
Daniel Shane



_________________________________________________________________
MSN Photos est le moyen le plus simple de partager, modifier et imprimer vos 
photos préférées. http://photos.msn.fr/Support/WorldWide.aspx


^ permalink raw reply	[flat|nested] 22+ messages in thread
* Re: Kernel module ethics.
@ 2002-02-27 21:57 Jesper Juhl
  0 siblings, 0 replies; 22+ messages in thread
From: Jesper Juhl @ 2002-02-27 21:57 UTC (permalink / raw)
  To: lachinois; +Cc: linux-kernel

 > The company for whom I work wants to make a linux driver for some of its
 > hardware. On my side I would like the driver to be completely open 
sourced,
 > and from a customer point of view, its a big plus (a real PITA to 
maintain
 > closed sourced drivers). On the other hand, the company wants a clear 
way to
 > make "profit" from the work while still catering to it's customers 
whish to
 > recompile the driver for just about any kernel version.

 > Here is what they propose... I do not know if what they are proposing is
 > "going too far" regarding kernel module ethics, but I thought I'd ask 
the
 > question here and see what other people think.

 > The hardware needs a firmware to run. Since this firmware is under 
NDA, the
 > first compromise is to write the main part of the driver GPL but keep 
the
 > firmware of the card in binary format. The driver can then load the 
firmware
 > separately and this should not infringe on the GPL and I'm quite ok with
 > this requirement. Now the problem is that any of our competitor's 
cards will
 > work with the same closed sourced firmware and GPL engine. In pure
 > capitalist thinking, the company finds this particularly troublesome...

 > The other compromise is to write a closed source part that would not 
permit
 > the driver to work with another card supporting the same chipset. Is 
this
 > kind of practice generally accepted or is it frowned upon?

I think you'll find that a lot of people will frawn upon that practice, 
since most people are just interrested in getting support for as much 
hardware as possible, and usually considers it a good thing if one 
driver works with different hardware. But, it's your choise, and it 
would certainly be better than not releasing a driver at all if you ask 
me personally :)

 >The motive of the
 > company is quite clear. If people want to "improve" the driver, they can
 > only improve it for their hardware, not the competitors. There is 
also a big
 > marketing sales pitch that goes like "we support linux, the others
 > don’t..."

 > It's like if Nvidia did not have linux drivers and ASUS wanted to ship a
 > card with a linux driver that only works with asus cards even though 
there
 > is one from leadtek with the exact same chipset (assuming that ASUS 
cannot
 > change the internals of the card).

 > Is the second compromise just "going too far"? Is this better than 
simply
 > having a 100% closed source driver?

 From my personal poing of view, having a Linux driver available in any 
form is a lot better than not having a Linux driver at all. Ofcourse a 
100% opensource driver (including firmware) would be the best and is (I 
think) the only thing that will have a chance of being included in the 
mainline kernel

Having Open Source driver and closed firmware is ofcourse not as good, 
but still a lot better for the users, since they can recompile the 
driver for different kernels. This is what NVidia does as far as I know. 
But you should probably expect to handle all support issues and 
bug-reports yourself, since if the full source is not available you'll 
be the only one who /can/ fix problems.

A completely closed source driver is in my personal oppinion only a good 
idea if the only other option is no driver at all. The Linux kernel is a 
fast moving target, and you'd have to release a new version of your 
driver everytime something in the kernel that affects your driver 
changes.  Since the users cannot even recompile it to match a new 
kernel. Ofcourse it's better than no driver, but consider the other 
options again.

Just my personal opinion ;)


- Jesper Juhl - jju@dif.dk





^ permalink raw reply	[flat|nested] 22+ messages in thread
* RE: Kernel module ethics.
@ 2002-02-28 12:05 Alexander Sandler
  2002-03-01  0:53 ` Erik Mouw
  0 siblings, 1 reply; 22+ messages in thread
From: Alexander Sandler @ 2002-02-28 12:05 UTC (permalink / raw)
  To: Allo! Allo!, linux-kernel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="x-user-defined", Size: 3428 bytes --]

Hi.

My company developing some comercial product and one sunny day smart guys from our company decided to make Linux to support it. 
I am the guy who had to do it. And I had almost exactly the same problems as you have. 
What I did was following. First, we do not distribute sources. We distribute binary only. It was quite a problem because of version information on modules symbols. So, we asked from our clients to disable it when using our driver. As a result loading precompiled driver became possible. Currently I have to maintain two versions of the driver (UP and MP), but things can't be too perfect. 
Another sunny day, one of our clients asked for a driver for Linux running on quad IA64 machine. Since we don't have such machine here, we had to give this client the sources, but before doing this, I scrambled the sources so it become completely impossible to read them and to modify them. The scrabler I used called cmunge. It was quite hard to use it for a driver since it's built for userland apps. but it is possible and I did managed to scramble the sources. And if you are afraid that it doesn't do it's job well anough, Well... trust me. It does!

This two ideas may help you with your problems as they did with mine.

Alexandr Sandler.

> Hi,
> 
> The company for whom I work wants to make a linux driver for 
> some of its 
> hardware. On my side I would like the driver to be completely 
> open sourced, 
> and from a customer point of view, its a big plus (a real 
> PITA to maintain 
> closed sourced drivers). On the other hand, the company wants 
> a clear way to 
> make "profit" from the work while still catering to it's 
> customers whish to 
> recompile the driver for just about any kernel version.
> 
> Here is what they propose... I do not know if what they are 
> proposing is 
> "going too far" regarding kernel module ethics, but I thought 
> I'd ask the 
> question here and see what other people think.
> 
> The hardware needs a firmware to run. Since this firmware is 
> under NDA, the 
> first compromise is to write the main part of the driver GPL 
> but keep the 
> firmware of the card in binary format. The driver can then 
> load the firmware 
> separately and this should not infringe on the GPL and I'm 
> quite ok with 
> this requirement. Now the problem is that any of our 
> competitor's cards will 
> work with the same closed sourced firmware and GPL engine. In pure 
> capitalist thinking, the company finds this particularly 
> troublesome...
> 
> The other compromise is to write a closed source part that 
> would not permit 
> the driver to work with another card supporting the same 
> chipset. Is this 
> kind of practice generally accepted or is it frowned upon? 
> The motive of the 
> company is quite clear. If people want to "improve" the 
> driver, they can 
> only improve it for their hardware, not the competitors. 
> There is also a big 
> marketing sales pitch that goes like "we support linux, the others 
> don’t..."
> 
> It's like if Nvidia did not have linux drivers and ASUS 
> wanted to ship a 
> card with a linux driver that only works with asus cards even 
> though there 
> is one from leadtek with the exact same chipset (assuming 
> that ASUS cannot 
> change the internals of the card).
> 
> Is the second compromise just "going too far"? Is this better 
> than simply 
> having a 100% closed source driver?
> 
> Thanks!
> Daniel Shane

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2002-03-04 14:08 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-02-27 21:11 Kernel module ethics Allo! Allo!
2002-02-27 21:33 ` Cyrille Chepelov
2002-02-27 22:23 ` Richard B. Johnson
2002-02-28  0:51   ` Erik Mouw
2002-02-28  1:03     ` Karl
2002-02-28  2:03       ` Erik Mouw
2002-02-28  2:13       ` Larry McVoy
2002-02-28  1:38         ` Karl
2002-03-04 14:07         ` Rogier Wolff
2002-02-28  2:37       ` John Jasen
2002-02-28  3:59     ` Richard Thrapp
2002-02-28 17:52       ` Jeff V. Merkey
2002-03-01  0:22       ` Alan Cox
2002-02-28  1:20   ` Rik van Riel
2002-02-27 22:37 ` Greg KH
2002-02-28  9:42 ` Helge Hafting
2002-02-28 13:55   ` Reid Hekman
2002-02-28 16:04   ` Mark H. Wood
2002-02-28 18:31     ` David Lang
  -- strict thread matches above, loose matches on Subject: below --
2002-02-27 21:57 Jesper Juhl
2002-02-28 12:05 Alexander Sandler
2002-03-01  0:53 ` Erik Mouw

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox