NW802 kernel module


Frequently Asked Questions :

What is NW802 ?

The NW802 chip is a Divio product which is used in some webcam. The purpose of this kernel module is to allow camera based on this chipset to be used in linux as V4L devices.

How to use/compile this module ?

First, download the sources. Then type make. It should produce nw802.o and usbvideo.o . Then modprobe videodev, insmod usbvideo.o & insmod nw802.o . Now the module is loaded. usbvideo.c & usbvideo.h are included in the CVS tree & in the packages but these files are actually part of the kernel tree. I included them because they may have not been built with your kernel. If you wish, you can copy these from /usr/src/linux/drivers/usb/ (eg. to get newer versions. The one I use are the one used in the 2.4.18 kernel ).

I you have some trouble building the modules, check the Makefile, may be some path on my box are different than the ones on you box. All comments are welcome !

Where to get sources ?

cfr Downloads section

My camera is NW802 based but it doesn't work ...

Well, I can't test the code on EVERY camera ... But I may be able to help you. Email me, I will provide you instructions so you can send me debug info about the module. But if it doesn't work, you can send me a sample camera so I can do deeper test on it to see what's wrong.

And also, don't forget that it's still alpha driver ...

Which camera does work with this module ?

Currently the module has been successfully used for "BTC SurfCam CMOS300k" and for a "Mustek WCam 300". But it should work for any NW802 ( or even NW801 ) based webcam.

Where can I get tech doc about this chip ?

Well, you can't ;) There is no documentation about the chip. This driver is based on reverse engeenering. Actually, not much has been decrypted, I only send an exact copy of what a Windows box send to the camera ... And it works ;) I'm trying to figure out what all these bytes means but it's not easy ... The compression used by the webcam is documented. Yeah, since the Jpeg-lite is patented (compression is, decompression is not !), there is a document describing it. Basically, it's 4x4 jpeg ...

I have don't have a 2.4 kernel, what can I do ?

If you have a 2.2 or a 2.0 kernel, you can upgrade to 2.4 ;) Sorry but I don't support those kernels.

If you have a 2.5 kernel : First, use the usbvideo.h and usbvideo.c from your kernel tree. Then try to compile, and at each error look what is wrong ;) I know that the usbvideo_register call need one more parameters, the usb ids list. Look at the code there is indication of what to add. Some others usb call may require one more parameters ... I'll try to release a 2.5 version soon. But if you use a 2.5 kernel, you should be able to hack it yourself.



Maintained by Munaut Sylvain. Tanx to source forge : SourceForge Logo