Kernel Maintainer Kills Philips USB Camera Support
outanowhere writes "The author of the Philips webcams kernel module has thrown in the towel and quit providing the pwc and pwcx kernel modules which make using Philips-based USB cameras such as those from Logitech and Philips possible with Linux.
According to the author, the last straw was when a kernel maintainer changed his pwc module to make using the binary-only pwcx compression module impossible.
It is a victory for obsessive kernel-purists but a major loss for all Linux users."
For all of you who wonder what we mean when we say "zealots make it hard for businesses to take F/OSS seriously", this is what we mean.
Yes, all Linux users who care about that particular module.
Itt's not like everyone in the world own a Philips USB camera.
Yes, yes. I know what's the point. Making it harder to include binary carbage in the kernel makes it harder to provide modules for proprietary hardware solutions.
But in the long run, do you want to have third party binary carbage in YOUR KERNEL?
No way to check out what's in there. Except perhaps reverse engineering, which isn't an option to everyone. Programming is hard. Reverse engineering is harder.
Bot Assisted Blogging
turning on my computer this morning, i was looking at my webcam (which is phillips based) thinking of the interesting stuff i might do with it.
I write code.
I met the maintainer once (although he lives relativly close), nice guy, but I kinda think this is just a useless move to annoy him, there are many fully binary only modules out there and he makes the effort to make opensource what he can (NDA) but provides a binary only module (on his own website) to add some more functionality (larger image/higher fps).
Well, that's about enough for me. I've had a good run. Someone tell my parents I'll miss them, and that they can get a replacement for the rat poison missing with the money in my wallet.
I totally understand kernel developers, the closed source third party module may as well be a huge security risk through some leaks or badly handled events which may cause instability and insecurity of the whole kernel. When a hacker should find it out, he could easilly attack the systems which have the webcam attached to it and do whatever they want.
:S ), but when enabled, it includes the possible binary data into the kernel. By default it should be disabled.
But how about this, give the kernel a configuration flag that describes itself as a possible security/stability leak (advises not to activate it
So usual people who don't need the special binary submodule can use their cams and go on without worries about security, and serious cam fanatics (i still don't get why would anyone attach a cam to their machines) can enable the binary module. the binary module itself should be downloadble separatly from the kernel, just to avoid any unwanted enabling without any external tasks.
so , any comments ?
I'd tell you the chances of this story being a dupe, but you wouldn't like it.
Sad, really sad. It's a lose-lose situation, and the biggest losers are linux users [who have pwc-based webcams].
Anyway, the last release files can still be found online, backup fast (e.g. gentoo distfiles : pwcx-8.4.tar.gz, usb-pwcx-8.2.2.tar.gz).
#include "coucou.h"
I wasn't aware that "zealotry" and "obsessive" meant "trying to meet the minimum requires to remain legal", but obviously I'm in a minority here...
You are not alone. This is not normal. None of this is normal.
Can anybody with real knowledge explain this in more detail?
The Linux kernel certainly does allow a "hook to load a binary module". How about "load module"? Or "exec" for that matter. There are dozens of binary closed modules that work "out of the box" (NVidea for instance? All those NT wireless cards? And I personally am employeed selling an evil closed-source application for Linux and the kernel maintainers have not removed exec() to stop me!
So my first reaction is that this guy is trying to raise flames by blaming a technical decision he dislikes on GPL zealotry.
Conversely, it is quite possible that it is physically impossible to make the webcam work using the available kernel interfaces, in which case the kernel maintainers are in the wrong by removing this and not at least coming up with an alternative.
So will somebody in the know, without flaming for either side, explain the exact technical details, so we can really judge who is wrong here?
Talk about flagrantly showing your bias. How about we rephrase that last sentence as...
This is only a loss to those silly people who think that their $50 web cam is so damn important that all of the kernel developers should support binary interfaces to cater for undocumented video hardware. The USB hook for binary modules was a real detriment to the USB subsystem. It was taken out for technical reasons.
As for this..
Talk about immature. He could leave it there until a new maintainer stepped forward but he'd rather have a dummy spit and stamp his feet.
What a wanker.
While the Philips binary seems to be stable, if an exception to it were made other binary modules could be argued for. In fact, that's what is happening now; more and more kernel patches are being made available with binary-only parts.
There are two solutions to this;
Converting USB kernel modules into user space tools happens regularly. Not as easily done as said, and it's less prestigious, though as a technical solution it does solve the kernel dispute.
Not having the source for these devices is silly, though. Do they intend to sell hardware or drivers? By releasing the source or the specs (at a minimum), Philips would gain much and loose little. Someone else can go on a rant to fill in the details...I'm done!
A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
-grin-
Kernel maintainers see linux as a server platform... and that seems to be that... webcams don't really make headway in the Apache-server linux arena which is what Linux is really mainly being used for apart from embedded stuff.
Sure, perhaps they have a point? A kernel-hook here and a direct access there, and next thing you will have something like DirectX under linux! The Horror! A Security Nightmare!
But then there is also the practical approach... if they remove these things, then there *should* be alternatives!
Otherwise I will stop using Linux as my development platform as it's not consistent...
-sigh-
I've been using the pxc.o driver of Allesondro Rubini for some time now, and even that is a bit of a pain to install... One has to modify gub configs with kernel params etc...
The decompression part of this driver is in the kernel. This allows applications to get at the uncompressed (or "decoded") videostream through the v4l (video4linux) programming interface.
That's all fine and dandy, you may think. Not so. Nowadays applications shouldn't use these kernel interfaces at all. They should use media frameworks like GStreamer. If they did, the driver core could remain in the kernel, while the decompressor would be a special video-source plugin for GStreamer that talks to the kernel driver through some private interface.
The decompressor code could remain in userspace, where no one gives a flying fsck about its license. Applications would be more portable, and could use any video source instead of only v4l devices. Plus, it would be much easier to reverse engineer that damn decompressor, put it under the GPL, and be done with it.
Wenn ist das Nunstruck git und Slotermeyer? Ja!... Beiherhund das Oder die Flipperwaldt gersput!
This reminds me of when I downloaded a Mozilla version that refused to let me open certain files like .exe files after downloading (you could just tell it to open most files after they dl, but not the exe ones). I looked around for a way to turn this off, couldn't find it, and immediately changed browsers. OK, it's more secure, but what the f*ck? It's my machine, I want to make the decision about running an exe. Most of the time I was getting the file off a trusted site, so zero need to check for viruses and what not, and just had to go freaking start the file from the OS.
Apparently once any software gets big enough the maintainers start feeling like arrogant assholes. Same with this, there's no legal problem with including a hook to load the binary part here. Some asshat just thinks the concept it's impure and may cause bugs...wth? It's my decision. You don't want, then don't run it and says it's not recommended! Hopefully someone with a little respect for the whole concept of computers being general purpose tools will step in and fix this. It's tougher to switch OSes than it is to switch browsers, but if they keep crippling the thing "for my own good" like Mozilla started to do I certainly will.
So what can you do about it? Not much, unless the kernel maintainers ease up a little, and stop being such fundamentalistic turds.
I spittled my cereal all over my desk!! thanks a lot!
I love the misguided comments in this story. In particular, I like the "most users don't care what is in their kernel, so we shouldn't care that we're taking away freedoms from all (including those who do care)".
Some comments from the guy who actually did this (http://www.uwsg.iu.edu/hypermail/linux/kernel/040 8.3/0270.html):
So, just to summarise, a) removing the hook doesn't stop the driver working, b) there isn't really anything stopping him publishing the code as free software. Basically, he just wants to take his ball home because he thinks he should be allowed to put hooks for proprietary modules into the kernel.
Is it the first time he's threatened to do this? No (http://www.uwsg.iu.edu/hypermail/linux/kernel/010 5.3/0365.html):
Linux doesn't need proprietary drivers, it doesn't need to compromise freedom, and it certainly doesn't need people to try to press the issue by holding code hostage. And, aside from all the facts that this guy is acting an arse, there are also questions over whether or not the hook is legal (Linus' point of view of derivative works of the Linux kernel is quite clear - they must be GPL'd), and the decision to remove the hook was partially a technical one anyway (only one driver is using it).
Yet, we are still going to get people holding this up as an example of the GPL preventing Linux from "going enterprise" or whatever. Guys; shove it - for Linux to be "accepted by business" doesn't mean that developers should bend over for whatever perversion proprietary companies want. Jeesh.
"Elmo knows where you live!" - The Simpsons
So what's going to happen next? Well, I'm pulling the plug completely. I'm cleaning up this website, removing the downloads, documentation, FAQs, etc. I'm discontinuing the webcam@ mailbox, and I'm going to request (well, demand) that PWC will be removed from the kernel tree. I do not want a crippled driver in the kernel with my name attached to it. Last, I'm going to remove the entries in the bugtracker.
It's fine to lose interest due to political reasons and want to stop maintaining it. But this is pretty lame. Demanding that his code be removed from the kernel? (I expect the license will make it impossible to really "demand" that.) Getting rid of all the existing downloads, documentation and FAQs? It sounds more like a tantrum to me.
this happened - in todays wonderful world of lawsuits and patents I don't think I want the kernel to load a module that was provided by a person who signed an nda. thanks kernel developers. second my logitech webcam pro 4000 works just fine. I always had problems getting the pwcx to work and when I did I didn't notice a big difference - but that just may be me. I hope they don't remove the pwc module because of this person's request. It's GPL - so they don't have to - can't they put in this guys rant from the website in the source code and say the maintainer is now someone else. that would explain to everyone what is going on with support for the module and would clear his name like he is worried about. I think this will be good for the kernel overall - the less proprietary crap and nda's the better.
It's tougher to switch OSes [...], but [...] I certainly will.
... refused to let me open certain files like .exe files ...
This doesn't seem like much of a threat against linux since you seem to be using Windows.
After reading the rant^H^H^H^Hexplaination, it seems like the current two-part design is a product of Phillips still wanting to protect it's IP. There's enough open source code to get the cams working, but if you realy want all the wiz-bang you'll need their proprietary binary module.
If I were Phillips, I'd be pretty pissed. They have a product whos inner workings they, understandably, don't want to fully release just yet. There's enough code out there to drive the cams with pure open-source, but they've also been kind enough to provide a binary only interface to take advantage of more features.
It's kinda like:
Phillips: "We want to provide you with functionality, but we also have obligations to our internals and share holders, so we'll do what we can and meet you half way."
Kernel team: "Yeah, all that time we talk about wanting better hardware support? We were just fucking with you. Go home and die."
I understand the reason the hook was taken out of the kernel, and I can fully appreciate the intentions of doing so, but regardless of the technicalities, what kind of message does this send to Phillips, and, more importantly, other companies like it now and in the future?
I'm against picketing, but I don't know how to show it.
It *is* a tantrum.
He can't demand back what he has already GPL-licensed. He can request it to be evicted of the kernel, and his request will probably be granted... Then someone else will take pwc and maintain it as a kernel patch. The interesting thing is that it seems not to exist any license information for pwcx.
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
The actual quote is:
l dr fo113300.html
A government big enough to give you everything you want is a government big enough to take from you everything you have.
It was made by Gerald Ford.
http://www.brainyquote.com/quotes/quotes/g/gera
You can tell a great deal about the character of a man by observing those who hate him.
3 years ago, when he was asked to take its image format conversion out of the kernel:
here's the message
I have to say that I'm very disappointed with what has happened. I think it's reasonable to have a lower-version open-source version, and then a binary-only higher-quality version. Because of the stance of the kernel developers in removing the hook to allow the higher-quality version, they've forced the author to pull the plug on the lower-quality driver as well. I was very impressed by the quality (640x480 with very high framerate) provided by my webcam (Logitech Zoom) under Linux using the PWCX module. `
Since the Philips webcams work so well (I have half a dozen myself in various applications, most with the 9.0 beta 2 driver), I'm surprised nobody has ever attempted to reverse-engineer the USB traffic and create a completely open, non-tainted-by-NDA decompression module.
It wouldn't be the first time Linux developers had ignored an uncooperative device manufacturer.
...laura
If open source is about choice, I've just lost the choice to use both Phillips-based webcams and linux. Now my choice is one or the other.
Open Source is not about *that* choice though. In general Open Source is obviously not about your choice to use any hardware you want, otherwise you might have noticed that you still don't have the choice to run hardware for which no F/OSS drivers exist.
One ironic twist is that LavaRnd used only the PWC (open source) module. We did NOT use the PWCX (binary-only) module. Our hotplug script did an rmmod of the pwcx module. We discovered that the PWCX module reduced the entropy that the webcams provided. The PWCX module, when loaded, made webcams a poorer entropy source.
LavaRnd used the entropy provided by the actual hardware. Our analysis showed that PWCX was in effect "faking" the larger image sizes by taking, say the true 160x120 pixel CCD output and expanding it to something like 640x480. The expansion was as if a 2D smoothing function (such as a 2D spline?) filled in the pixels in between. Each of the original 160x120 hardware pixels was turned into a 4x4 pixel grid where the edges of the grid were adjusted to fit better with neighboring 4x4 pixel grids. The PWCX appeared to support a higher frame rate because the PWCX module "decompressed" the true hardware pixels and filled in the pseudo-pixels on the other side of the USB wire.
We discovered the PWCX effect while taking entropy measurements of webcam frames. Using PWC alone in 160x120 mode, the webcam produced slightly more entropy than 640x480 PWCX mode. The PWCX module was not adding real image data to webcam frames, it was just smoothing and filling in data that looked good enough to a human. However, PWCX could not fool the math ... :-)
The PWC maintainer says on his web site:
The PWC maintainer's position appears to be that if you cannot use PWCX, then PWC is worthless. From LavaRnd's point of view, PWCX (the binary only module) adds no value and in some ways reduces the Logitech QuickCam's value as an entropy source.
We (LavaRnd) do not want to take sides in this PWC/PWCX kernel dispute. If this posting appears that way, then we apologize. The PWC folks have been mostly patient with our unusual use of their webcam modules. The Linux kernel folks have provided us with a wonderful platform for LavaRnd. As for ourselves, we put a lot of time into helping end users use the PWC module in older kernels.
Here is our advice request:
The LavaRnd project would like to see the PWC (open source) module remain in the Linux Kernel. We would like the Linux kernel folk to not honor the maintainer's request to remove everything. We want the support of PWC without PWCX to continue in the Linux Kernel. What is the best was to make this position / request known to the key Kernel people in the hopes they will PWC as part of Linux?
And does every chunk of the Linux Kernel need an active maintainer? Could PWC remain in the Linux Kernel without the original maintainer's support or would someone such as ourselves need to step up and offer to maintain it?
chongo (was here)
PCW is *not* a binary module, it's GPL. What the kernel mainteners removed is a hook which could allow to load a decompressor.
This decompressor could have been anything,GPL or not. It just happens that the developper had had acces through a DNA to informations from phillips, which made it possible to make a decompressor, and vastly improve the cam's performance and capacities. Because of the DNA, he had to ship this in binary form only, but it wasn't inside the kernel, it was cleanly separated from the pcw module.
Removing the hook is stupid, since if some people didn't want to load a binary only thing they could still try to make a GPL decompressor, and if some others wanted to load a binary only decompressor using this hook well it was their own choice !
It didn't taint the kernel, only offered to load something into it, whatever it was...
On the other hand, the author states somewhere on the LKML that his DNA with philips expired more than a year ago, but he still doesn't want to release the source because he feels he would loose the thurst phillips gave him.
If the DNA is over well it's over, they didn't put a date on it just because... Sounds like he likes to keep the source for himself to me...
Futhermore the pcw module could still be used without this hook, the cam still worked, but wasn't 100% exploited that's all. Or he could simply have chosen to go userspace and call it a day. But he got pissed and decided to just remove everything.
So if you ask me, both side don't want to listen to each other, act childish and just look dumb. They should both get a life and do something else sometimes...
If you have on of these webcams and still want to use the drivers, you can download them (pwc-9.0.2.tar.gz and pwcx-9.0.tar.gz) at http://www.superhomepage.com/pwc/.
They work with my pcvc740k model and linux 2.6.8.1.
"Philips, not the various Linux contributors, has made the decision not to allow the free flow of information about how their devices work. It is Philips who are responsible for this, not the Linux contributors. They are the people who are restricting your freedoms. Address your complaints to them."
Two words: Nvidia and ATI. Maybe Phillips can borrow their excuses. "There's super-secret figure-it-all-out IP in the driver and we can't tell you." Now can we have into the kernel?
"If Linus doesn't recognise this reality I suspect it may eventually fork."
I believe it's called BSD.
Some people actually want to share programs with complete corresponding source code. Therefore, they don't like to have proprietary code on their system. There are (as other posters have described) practical problems with non-free programs too.
I hope people don't frame this issue in terms of practical utility (because down that road lies giving up software freedom for whatever is convenient to proprietors) but instead, frame the issue in terms of our ability to do what made the systems we cherish -- preserve our freedom to share and modify software.
Digital Citizen
It is interesting that so many people slam the pwc & pwcx modules author for not putting up with what he feels is excessive idealism with regard to kernel purity.
Seems that people fail to realize that the author VOLUNTEERED his work. As such he has no obligation to continue VOLUNTEERING and putting up with crap.
He also claims copyrights on the modules and is free to demand their removal regardless of the GPL. The GPL does not override someone's copyrights, contrary to some ignorant folk's notions.
A lot of commentators seem to make assumptions about the GPL. It's pretty clear from the comments that they have either not read it or do not understand it.
And then there are the vast amount of other ignorant comments which, unfortunately, overshadow the few intelligent ones...
Okay, I've just ordered one of the webcams this module supports, and now I find that I can't use it with my primary desktop. That annoys me. I made my decision to buy it based on the fact that it was supported.
/never/ make inroads onto the desktop market if it doesn't work out of the box, and deliberately removing support for a common piece of hardware does not help that.
Okay, I understand why some people want to have a 'pure' kernel, and I understand the technical advantages. But this module is actively maintained and he would try to sort out any problems.
Linux will
People do not want to have to patch their kernels.
It is Philip's right to ask him to sign an NDA, it is their technology. You may not agree, but the right they exercise is what makes the GPL a valid license.
I also think that he's throwing something of a tantrum by demanding the removal of the code from the kernel. That's a pointless move and seeks to alienate the users even more.
I just wish all the zealots on every side would just get over themselves and realise that people want to use the best software for the job. For the first time in my computing life, Windows has won as the best platform for something. This is a sad day...
I am glad that I have kept a Windows computer around. I never thought I'd say that.
And I was just about to buy one of these cameras :(
So, can anyone suggest some webcams which are well supported by Linux? I'd taken a look at several drivers, but the PWC/PWCX ones seemed to be the best.
With some of the others it seemed to be a lottery whether you'd be able to get a webcam with a compatible chipset (no matter what model number the manufacturer might use on the box).
This post is strictly my own opinion and not necessarily that of my employer.
screw him. there are other ways to do it. he's just cranky that it wasn't done his way.
The hardware companies are still are not taking Linux seriously despite it have a marketshare relative to the Mac, and so we still have to rely on the efforts of people like this guy. The kernel team is annoyed, the developer is annoyed, the users are annoyed, and still the corporations are either too lazy or too stupid to port drivers for their products, as if the porting of those drivers would seriously inconvenience them. What's it going to take before they get on the bandwagon? Linux is not just going to go away. It's not shrinking in marketshare, it's growing. It has the backing of many corporations and even gets contributions from the likes of the NSA. What's it going to take for them to stop pretending Linux doesn't exist?
And you're capable of doing better?
And willing?
No?
Then I don't see how you have any grounds to complain about him being "lazy". He's an unpaid volunteer giving his work to you.
May we never see th
Some asshat just thinks the concept it's impure and may cause bugs...wth? It's my decision
Damn straight it is. You want the hook? Use the old kernels that still have it. Or download the kernel source, and stick the hook back in yourself. One of the nice things about Open Source software is if you don't like a decision the developers have made, you can fix it yourself if you are sufficiently motivated.
Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
Can anyone recommend new feasible choices for low-cost video cameras for Linux use? I've been wanting to pick one up for a bit, and the camera I was looking at was an affected model. :-(
I'd really like to get a camera that has an all-GPL driver, if possible.
May we never see th
*shrug* If you like to play the latest games having a Windows boot is a neccesity. Sorry to say it, but it's still true. For programming I use Linux, and my file server. I hate the GUI (using KDE currently), though. If I copy something, close the app, and then go to paste, for example..gah.
;p So in other words, I'd find someone with only Linux to be the weird one, not the one you'd assume when criticising someone.
I'd like to see a survey on how many people run both OSes, I'd suspect many more than run Linux alone.
necessity...criticizing...oh, my, we're going to get spelling Nazis as well as Linux purists now ^^
Libusb is cool, and lets you do lots of stuff that would otherwise be in kernelspace, but was changing not long ago -- I was going to write an X10 libusb controlling program a while back, but the libusb software shipped by Red Hat at the time was missing necessary functionality.
May we never see th
I have to agree with the other respondant. I understand how irritating it is for you -- after all, there are no code style constraints on Windows drivers -- but the only software that makes it into the mainstream Linux kernel (or bundled with the Windows distribution) is the very good stuff, and unlike on Windows, on Linux the code, not just the binary, is a factor in the quality.
I *do* realize that this could cause major problems if there are internal reasons for using a particular style or -- God forbid -- if you are trying to get a driver into both Linux and BSD or something similar. I'm not sure that there is a good solution, for trying to get open source drivers included in a kernel. That's an interesting point, though.
May we never see th
Third choice is rewrite the drive to use libusb instead. Which I would do if I had a Phillips camera.
IRL, I'd rather have an Ethernet-connected camera and get decent distance out of the sucker.
If Phillips choose to make their gear hard to work with, they can't expect free support for it. Evolution in action.
Got time? Spend some of it coding or testing
This is only a loss to those silly people who think that their $50 web cam is so damn important that all of the kernel developers should support binary interfaces to cater for undocumented video hardware
I own this "$50 web cam" and I love it. Never worked in linux until lately but hey, can't complain the kernel (thus whole OS) is free.
The point is that linux was created as a free alternative to other software (minix). It was written for x86 systems for god sakes, not huge expensive machines.
I see this as a huge step back in term of usability. Linux was made to run on cheap hardware (x86) and now that it's gone somewhat-mainstream and entered the coporate marketshare there is too many problems in supporting *silly* stuff like this.
Maybe this will get Philips to support us, maybe not. I don't care. Personally I find end-user linux (webcam/video) apps lacking. I'm not a programmer so most are useless to me.
But when you complain about "undocumented" anything you forget that much of the hardware supported by the kernel and it's modules are undocumented. Hell, most kernel options are undocumented. There is always going to be a fight between supporting hardware that doesn't want to be anywhere but on Windows systems and people who need it supported.
Let's say I had this camera for security, monitoring a server room. Nothing fancy, just a live picture. Well there goes a shot at $150 system (PC+Camera) that does the job of a $1500 camera. Point is, you can make this camera anything you want once it's plugged into a linux box - the point was supposed to be that I could do anything I want. Now it seems restrictive.
I don't know (and that is a problem too, it's early and I'm just typing.)
Get your Unix fortune now!
In case the answer is "No", then I will:
- demand that the PWC driver is removed from any further Linux kernel releases; Open source or not, it's still _my_ work.
His work that he licensed under GPL (the GPL'ed portion at least). Can he do that?
Even if it's a limited-functionality driver with secrets stuffed into a binary-only module it'll probably help other developers perhaps to develop libusb-based alternative, or to maintain the binary-free subset.
why this is such a big issue and using so many propietary (closed source) kernel modules isn't. I know my nvidia drivers are closed source.. and ATI's are also. Yeah I know this works in a little bit different manner.. but really.. it's the same result: the kernel is linking to closed source code.
In order for Linux to be a viable platform corporations will need to be able to produce drivers for their products (not just volunteers). Of course, many times those drivers will need to closed source. It's hard to fault a company for trying to protect their IP. Sure, it's better for us to have the driver as open source.. but if it's not good for the company gues what? No linux drivers. In the end, Linux is giving the same companies it's trying to prove its product to the big middle finger. The end result will be purely CLOSED source platforms. If open source is unwilling to allow people to create closed source applications for it's platform, then those people will just keep doing things they way they've always done it. It's not like we're giving them motivation to change!