login
Header Space

 
 

Linux: Philips Webcam Driver Restored

May 2, 2005 - 9:04am
Submitted by Jeremy on May 2, 2005 - 9:04am.
Linux news

In August of 2004, the Philips Webcam Driver 'pwc' was removed from the Linux kernel, following a disgreement regarding a hook only used by that driver [story] A few days later, Alan Cox [interview] suggested he was willing to be the maintainer and plans to get the driver re-merged were underway [story]. A limited version of the pwc driver was merged into Alan's -ac patchset [forum] in 2.6.9-ac1. More recently, Alan submitted a patch for the mainline kernel that contained a new version of the pwc driver, merged in 2.6.12-rc1. Alan explained, "PWC has a new maintainer (Luc Saillard) and also the various contentious binary hooks removed and replaced with reverse engineering work. Please restore it to the kernel."

The previous maintainer of the pwc driver took exception, claiming that the decompressor code that's included in the new driver was not legally written. He suggested, "in case you hadn't noticed, that code has been reverse compiled (I would not even call it 'reverse engineered'), and is simply illegal. Maybe not in every country, but certainly in some. There are still some intellectual property rights being violated here, you know, and I'm surprised at the contempt you and Linux kernel maintainers show in this regard for a few lines of the law." He went on to note that he would be contacting Philips to make them aware. [Update: Find Alan's reply here.]

The new driver includes a comment that clearly states, "the decompression routines have been implemented by reverse-engineering the Nemosoft binary pwcx module. Caveat emptor." The last two words are latin for, "let the buyer beware." In late 1992, two court cases in US federal appeals courts determined that reverse engineering a program is "fair use" under certain circumstances within the United States. The first was Atari Games Corp. v. Nintendo of America Inc. in September of 1992. The second was Sega Enterprises Ltd. v. Accolade Inc. in October of 1992. Although both cases upheld reverse engineering as fair use, the former still concluded that Atari had infringed on Nintendo's copyright by using an unauthorized copy of the progam. Outside the US, different countries have different interpretations of whether reverse engineering is "fair use".


From: "Nemosoft Unv." [email blocked]
To: Greg Kroah [email blocked], luc [email blocked]
Subject: The return of PWC
Date: 	Mon, 2 May 2005 02:29:35 +0200

Hello Greg, Luc

I've been out of the loop for a while, but today I was informed that PWC is 
about to return to the main Linux kernel tree, in some form. In fact, it's 
already in 2.4.12rc3.

Unfortunately, the current implementation is not acceptable. First, there 
are still some references to the old website 
(http://www.smcc.demon.nl/webcam) en e-mail address. But that's no big 
deal. What's more of a problem, though, is the decompressor code that is 
being included.

In case you hadn't noticed, that code has been reverse compiled (I would not 
even call it "reverse engineered"), and is simply illegal. Maybe not in 
every country, but certainly in some. There are still some intellectual 
property rights being violated here, you know, and I'm surprised at the 
contempt you and Linux kernel maintainers show in this regard for a few 
lines of the law.

Now don't get started on "it was GPL code before you left bla bla" or "you 
should not have abonded the project bla bla blah" and "this court here has 
ruled reverse engineering is allowed and so on mumble mumble". 

I abandoned the project, true. But PWC was (and is) GPL, so if somebody  

wanted to do the maintenance, that's fine because that is the intent, after 
all. Even if that person grabbed the pre-compiled binaries and started 
maintaining with that, that would have been borderline, but okay. But 
you're crossing the line here with PWCX (the decompressor). If it was 
truely reverse engineered, by studying the bitstream and trying to figure 
out the algorithms, then that would have been a remarkable feat. But how 
dare you decompile binary code, slap a GPL header on it and try to return 
it to the kernel as if everything's alright now?

Anyway, I'll inform my contacts at Philips tomorrow. I don't know how they 
will react; maybe they'll go nuts, maybe they'll let it pass quitely; it's 
hard to tell. Either way, you're putting yourself in a precarious situation 
here. Clearly, this code was not intended to be included in the kernel 
source, it has been obtained by rather dubious means and, above all, I 
don't think the GPL was ever intended for this kind of "relabelling". I 
call it theft.

So I seriously suggest you do not put the module back into the kernel in 
this form.

Regards,

 - Nemosoft Unv.


From: Alan Cox To: "Nemosoft Unv." Subject: Re: The return of PWC Date: Mon, 05/02/2005 - 13:45 On Llu, 2005-05-02 at 01:29, Nemosoft Unv. wrote: > In case you hadn't noticed, that code has been reverse compiled (I would not > even call it "reverse engineered"), and is simply illegal. Maybe not in > every country, but certainly in some. There are still some intellectual > property rights being violated here, you know, and I'm surprised at the > contempt you and Linux kernel maintainers show in this regard for a few > lines of the law. Reverse engineering in the EU for compatibility is legal. It was done in the EU. Linux exists because the law is sensible and allows such actions, its the same reason you aren't still buying all your flush toilets from Thomas Crapper & Son. > Now don't get started on "it was GPL code before you left bla bla" or "you > should not have abonded the project bla bla blah" and "this court here has > ruled reverse engineering is allowed and so on mumble mumble". Don't like facts ? The legal position on reverse engineering is in general fairly clear. What you describe might not be. If so then we need to find someone who hasn't read the code to rewrite it from the algorithm description of the current code. Shouldn't take more than a week. [Its the difference between disassembling the code and publishing a form of the disassembly and writing a new implementation of the algorithm. One is copyright violation the other is reverse engineering] > Anyway, I'll inform my contacts at Philips tomorrow. I don't know how they > will react; maybe they'll go nuts, maybe they'll let it pass quitely; it's I *am* concerned by your comments about how the reverse work may have been done, and whether proper process was followed. I'd be greatful if you would forward me your contact at Philips too. You are considered as having an axe to grind and I'd rather discussion occurred between Philips and the Linux community than via yourself. You've also said yourself that the NDA you had was expired so the previous lack of a GPL module is your personal agenda and nothing to do with anyone else. That makes me wonder what your real goal is. Alan



Related Links:

It's a good and bad thing

May 2, 2005 - 10:22am

First of all, I haven't been seeing much of a support for web cameras in Linux, so having this one back is certainly a good thing. However, I'm a bit surprised about the late development in the licensing debate. It'd appear the open source community is going in two different directions. One side's like "I don't give a f*** about licenses, I'll just release it and hope no one's going to sue me" while the other side is even more interested in licenses than before. The interesting thing is to see, for how long these two directions can go on with one source tree.

Nemosoft is overstating their case...

May 2, 2005 - 12:45pm
Anonymous (not verified)

Nemosoft withdrew webcam from the kernel because Linus and the crew decided not to give kernel hooks to drivers composed of a GPL part and a prorprietary part. That decision made you mad, and like a petulant child you took your ball and went home, bawling to mommie. As a parting shot you called the kernel coders "fundamentalistic turds". http://www.smcc.demon.nl/webcam/ How juvenile.

Your decision (or that of Phillips, if it wasn't yours) effectively said that even though folks purchased Webcams powered by Phillips engine they weren't allowed to use it on Linux, only on Windows. I was planning at the time to purchase a phillips compatible webcam. I don't know about other folks but that decision cost Phillips what I would have paid for their technology. Because Linux is now BOOMING in popularity I suspect that the income that Phillips will continue to LOSE will only increase significantly.

Now, concerning your claim that the Linux kernel coders are compiling in PCWX into the 2.6.x kernel... If I read the following website correctly, http://www.saillard.org/linux/pwc/, it seems that it is the individual user, NOT THE KERNEL CODER, who can either compile their 2.6 kernel to include a patch downloaded from Saillard's site, or they can download the whole tarball and run their webcame as a NON-KERNEL process:
This is a fork of the discontinuity pwc driver made by Nemosoft Unv. You don't need binary module with this driver, however decompression is supported for big resolution (640x480). The driver is designed for Linux 2.6, patches for 2.4 is not tested. I'll try to produce update for the 2.4 kernel.

If you don't want to patches your kernel, just grab the tarball, and do a make to build the module (or better read the INSTALL.en). The module is ~80kbytes long, and allocate ~60kbytes of kernel memory for decompressor. Add some bits for buffering images and you will have a idea of the kernel size.


It doesn't look to me like it is Linus and the crew who are doing what you claim. Perhaps you're trying to blow this up into another anti-Linux crusade? It seems to me that after all these years you are still pouting because you didn't get special kernel hooks. Still so juvenile.

Philips has not refused anything

May 16, 2005 - 11:35pm

I have contacted Philips but there seems to be general confusion as to who is responsible for these decisions. The people I talked to don't seem very eager to find out who decides and forward me his/her coordinates.

I'm sure it's an easy case as soon as somebody finds out who to talk to... But Nemosoft does not want to give the name for his contact. I have a feeling Nemosoft could have worked for Philips and perhaps wasn't completely allowed to just pass everything on. It's possible he's afraid for his own neck.

Note that Philips has not refused providing a linux driver or allowing specs to be used to make one. Neither have they protested at the whole situation -- if they would know about that.

I guess I should push a bit more, but I don't want to piss anybody off there and then spoil it for everyone.

And don't forget the Philips-type driver is one of the only drivers that are functional enough for decent usage. There are few alternatives.

Derivative works?

May 2, 2005 - 1:59pm
Dogma (not verified)

"Nemosoft Unv." is claiming that a binary only kernel module is not a derivative work of the Linux Kernel but that a reversed engineered (decompiled with a few modifications) clone of that binary only module is a derivative work under copyright law. It seems to me that even if the reverse engineered module was considered to be derivative, he would still have to prove that the original binary only module was *not* a derivative work of the Linux kernel in order to claim copyright infringement.

Precedent

May 2, 2005 - 3:38pm
Anonymous (not verified)

The two court cases cited in the summary above (Atari Games Corp. v. Nintendo of America Inc., Sega Enterprises Ltd. v. Accolade Inc.) are, of course, only applicable to US law.

Alan Cox and many other developers (and users) live and work outside the jurisdiction of the United States where the above cases are irrelevant.

However..

May 3, 2005 - 10:15am
Anonymous (not verified)

Since Linus is the final person approving and commit the patches it could also fall under US law.

- Ben

unlikely

May 16, 2005 - 11:45pm

I'm not sure that's how it works. There's always somebody from outside the US who can stand up and proclaim responsability. Whatever to keep it out of the hands of US law, heh...

Note that Philips is an European company (on the Dutch-Belgium border in Eindhoven, about 100km from here) and it wouldn't make much sense to sue somebody in the US. In fact, in Europe, it wouldn't even make much sense to sue for something like this.

AFAIK (by reading the portugu

May 2, 2005 - 4:20pm
Anonymous (not verified)

AFAIK (by reading the portuguese law, which is based on a EU directive), decompilation as means to reverse-engineering is allowed in the EU.

Of course this doesn't mean direct transcription through decompilation is permitted, but it means that we can use decompilation to infer certain algorithms with interoperability purposes. IANAL.

Whoa!

May 2, 2005 - 5:32pm
Andrew (not verified)

Things are heating up in Linux kernel land. First, there's the tiff about Bitkeeper, now this!

thats what we are about

May 3, 2005 - 3:03am
Anonymous (not verified)

We have problems that have to be solved. We dont just avoid them. Open collabration is so great.

Unfortunately

May 3, 2005 - 8:18am

Many people think a great way to solves problems is with blatant copyright violation, which no one seems to mind as long as it isn't the GPL that's being violated. Funny how that works...

Law violation ?

May 3, 2005 - 10:01am
Anonymous (not verified)

What law exactly was violated ?
When ? Where ? By whom ?
Which court say that ?
None ? I thought so.

in-kernel image decompression

May 3, 2005 - 12:50pm
Bertrik (not verified)

Regardless of whether including the decompiled code is legal or ethical, I thought that the kernel developers already agreed that things like video decompression, interpolation or color space conversion do not really belong in the kernel in the first place.
Instead of doing it in-kernel, you can just let the driver send the compressed video via the V4L2 API to user-space where it is decompressed using a user-space lib (gstreamer for example). On the other hand, applications may not be ready yet to talk to anything else but a raw V4L device file.

Need pwcx binary for my architecture

July 2, 2005 - 10:54am
ganesan (not verified)

Hi

I am using linux 2.4.16 & 2.4.22 MIPS architecture kernel with lx4189-uclibc-gcc tool chain. The binary pwcx.o is available only for standard linux architectures.

I need the pwcx.o( decompressor binary) for my kernel. Can you compile and give the binary of decompressor for my kernel?

Kernel Informations:
======================

Kernel = 2.4.16 and 2.4.22
Tool chain = lx4189-uclibc-gcc
Architecture = MIPS
Format = BIG ENDIAN format

Kindly send me the compiled decompressor binary file as per the requirement given above pls.

Excellent point!!

August 27, 2005 - 10:45pm
CodePoet (not verified)

Excellent point!!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
speck-geostationary