Philips Webcam Driver Debate
Subjective and biosed statement from Kenneth Lavrsen as a starting point for debate.
This text was originally on the information page but I regretted the position and moved it here before Jeroen's posting because it is more natural and the information page should be ... information.
- 16 Oct 2004
The kernel maintainers have decided that the pwc/pwcx driver should no longer be in the kernel for what according to Kenneth Lavrsen is fanatic reasons (background reading
- First reason is relates to principles of not having hooks that can be used by closed source modules. I believe that it has been concluded that the driver was not removed by legal reasons (ie. GPL violation) but as a result of enforcing the policy given by Linus.
- Second reason is that they want to go back to the old days of DOS where for example Word Perfect had to have drivers built in for each and every printer available. Any new printer never worked with Word Perfect. When Windows and OS/2 came along the operating systems contained the drivers and provided a standard API to the programs.
Kernel developers now wants camera drivers to no longer contain the code that translates the raw data into a standard V4L
stream. They say that this belongs in "user space". This means that in principle Motion would have to have interfaces for all cameras that have any other feature than plain low resolution video stream. There is no way Motion will ever be able to do that.
I hope the developers of camera drivers will pull out their drivers from the kernel distribution and instead provide fully functional drivers as kernel modules you can install yourself and load during boot of the machine. I think that both Linux, the Linux kernel and the users are better off this way.
Long long songs have been song about this. The debates have had different quality. The one that I have read that I find was most informative and best covers all the sides of the debate is this osnews debate
. If you want to discuss it here create this new topic: PhilipsWebcamDriverDebate
(do not expect me to debate more than I have on misc. mailing lists). I want to keep this topic a resource for people to be able to find and install drivers to make their expensively purchased cameras working again after a kernel upgrade. I just wanted to tell you why I had to create this topic.
- 10 Oct 2004
I have followed the whole PWC debate with mixed feelings and tried to stay out of the debate.....
But I do have a few remarks about the two points on the information page:
- The driver was not removed because of Linus' policy but because NemoSoft asked for it. Since there wasn't a maintainer anymore he got his way. (Not because he had to but basicly because Linus wanted to be a nice guy)
- Conversion in userspace is better. You get all kinds of neat extras like floating point and MMX for free. Besides we already do.... Why is it strange to expect userspace to do it while we already have to convert between rgb and the different yuv types? The problem is that it shouldn't be motion itself that is aware of all the types but a general conversion library. This library doesn't exist. Also this is a thing the kernel guys would like to change, there isn't a jihad going on to force decompression out of the kernel immediatly.
A common topic in all the debating over this is the 'I don't care about binary only drivers, I just use Linux because its better'.
People saying this don't seem to be realising how Linux became better. Binary modules will never make Linux better.
- 15 Oct 2004
Formally the drivers were removed at the request of Nemosoft. I think most of us can agree this was a bit of an overreaction but from a human perspective I can understand him.
In my oppinion the pwc driver was removed when the kernel maintainer decided to remove the part of the pwc driver that was needed for the user to load the controversal pwcx module. Without decompression the pwc based webcams are in practical useless. pwc without pwcx (before 10.0) was of no practical use except for a small group of people that used it for generating random numbers. As a camera driver you cannot live with a max size of 160 x 120 (Philips Toucam Pro 740 without pwcx).
I have never supported binary modules. But in the case where a commercial company has invested big money in a software technology and has a competitive advantage you cannot blame them from wanting to protect this advantage - at least for a year or two. I'd rather see binary software then software patents.
My position in the debate was not to defend the presence of the "hook" for the pwcx module. It should have been rejected from the beginning. Now it has been there for at least 3 years. The only decent way to get it out would have been to give a minimum 6 month warning that the pwc driver would be removed unless someone provided a patch that made it fully GPL. Some said that "the distributions would put it back". I just updated my Fedora kernel. And no. There is no support for pwcx anymore. My Logitech and Philips webcams stopped working for the 2nd time in the history of kernel 2.6. This will have happened to 1000s of non-techies. They are all screwed now.
The only person that could not reveal the pwcx secrets is Nemosoft (because of the NDA). Someone else would have to reverse engineer the pwcx. With a 6 month warning this could have happened. It has already happened after 1 month. 90% of pwcx is reverse engineered now. There is a fully functional GPL pwc 10.0.4 driver. With a 6 month warning this could have replaced the controversal 8.X/9.X series. And the normal users would never have known the difference. This is basic technology change management. This is how responsible kermel maintainers should behave in my oppinion.
Everytime I have written in news groups people have attacked me back as if I was against GPL. Well. All software I have written is released as GPL. I support GPL - also in the kernel. But Linux does not get better by changing things so that it breaks without having a replacement.
So to summarize my first point. The decision to cripple the pwc driver was taken by the kernel maintainer. The reason was a policy given by Linus not to support the use of binary kernel modules. Not that the module was a GPL violation. The pwcx module was not part of the kernel distribution. People had to download and install this themselves. It is the way it was removed I find wrong and a result of a fanatic attitude and lack of respect of the normal user who is the true looser here.
On the 2nd subject I will be more brief. If it can be solved by a shared library I am OK. I just don't want a situation where we need unique code for 100 different cameras. That would be the old Word Perfect situation all over again. But let us get that shared library before we throw out more drivers from the kernel
- 16 Oct 2004