Frequently Asked Questions
GENERIC Video4Linux & Video4Linux2 Microdia-SN9CXXX DRIVER FOR LINUX
SN9C101, SN9C102, SN9C102P, SN9C103, SN9C105, SN9C110, SN9C120, SN9C201, SN9C202
Author & Final contact: Luca Risolia, homepage: http://www.linux-projects.org
-------------------------------------------------------------------------------
1. Q: I asked a question to the author of the driver but he has not answered
yet. Why?
A: Probably the answer is in the FAQ. Read it better or again, as it's being
updated all the time without notice.
2. Q. What hardware does this driver support?
A. This driver attempts to support all the webcams based on the Microdia
SN9C101, SN9C102, SN9C102P, SN9C103, SN9C105, SN9C110, SN9C120, SN9C201 and
SN9C202 video controllers ("SN9CXXX" for short) , which can be found in
a lot of many recent USB and/or USB2 webcams, embedded in laptops or sold
as stand-alone devices.
3. Q: Is the driver open-source or closed-source?
A: The driver is closed-source and provided as a binary-only kernel module.
4. Q: Will you release the source code one day?
A: It's likely I will never release the source code, unless I have
financial proposals. The best candidate is the manufacturer of these
controllers. If you would like to see this driver released under
the GPL to everyone, please send them a personal request.
The more requests they will see, the more they will consider this driver.
Another way is to collect the money once from all the potential
users, according to the principles of the ransom model:
"A publishing model where copyrighted works (such as books, software,
or music) remain proprietary until a total amount of money is
collected or a certain date arrives, at which point the work is
automatically freed to the public."
The terms of this approach will require a preliminary discussion
between me and a group of interested users. Contact me in this case.
Should a possible agreement go well, I am also available for submitting
the source code to the mainstream Linux kernel, maintaining and improving
the driver by supporting new hardware promptly and for free for an unlimited
period of time.
A special debugger (already developed) will also be available to the
community.
5. Q: Under which versions of the Linux kernel does the binary driver run?
A: The driver has been compiled for some kernels from the most important
free Linux distributions (i.e *Ubuntu). In some cases, the driver can be
installed with the help of pre-built packages, which are available for
free or as trial releases here
Each package usually corresponds to only one pair of kernel version and
Linux distribution.
6. Q: What is the COPYING LICENSE of the driver?
A: The LICENSE is Proprietary. The conditions are written in a file
contained in each pre-built package or archive (i.e. "copyright").
There should be nothing surprising for you there, but, you know, I have
to say that you must read and accept them every time you install the
driver. THE SOFTWARE IS PROVIDED WITHOUT ANY WARRANTY.
7. Q: Which SN9CXXX webcams does the driver support exactly?
A: I can't mention all the models and brands of devices with a SN9CXXX
inside. There are "zillions" of them. If you already have a webcam, the
simplest way to see if your webcam will be working with the driver is to
install the driver itself (choose the latest available free package for
your system). Once loaded, the driver automatically recognizes all the
SN9CXXX-based devices attached for sure, although not all of them might
be actually supported and ready to use. Kernel messages will always tell
you yes or no.
8. Q: My SN9CXXX webcam is not supported. What can I do?
A: - First of all, make sure it really is a SN9CXXX webcam. Kernel messages
from the driver will tell you.
- Make sure it really is not supported. Always install the latest version
of the driver and check again.
That said, the SN8CXX driver already supports a wide range of SN9CXXX
webcams. Support for the rest will be added under payment only and
through binary-only drivers. If interested, contact me.
9. Q: There are no free binaries of the driver available at
http://www.linux-projects.org matching my running Linux
distribution/kernel. Can you build one for me?
A: Why not, but first I ask your contribute with money:
a. 200 EU: one request for one custom kernel (you will have to provide
the kernel headers or the whole system if necessary). The best
here would be to provide an VMWare-player image of the system
including all the necessary tools for the building environment.
The price might not be acceptable for single users, but still
valid for companies.
b. 100 EU: one request for one version of the kernel present in a free
and downloadable major Linux distribution (i.e. Fedora, Gentoo,
Slackware, Suse and so on), in the only case I need to first
install the system from scratch to do the building, testing,
packaging. 50EU if you provide a vmware image of the installed
system, with all the necessary development tools to build the
driver.
c. 50 EU: one request for one version of the kernel if your system is
already installed on one of my machines, but no packages are
ready yet.
d. 5 EU: if the driver for your distribution has been already built.
IN EVERY CASE, THE CONTRIBUTION IS INTENDED TO BE A "REWARD" FOR
THE WORK ALREADY DONE (NOT ONLY ON THE CODE OF THIS DRIVER ITSELF) AND
ALL THE OTHER RESOURCES/MATERIAL INVESTED AND AVAILABLE FOR FREE.
I'LL DO MY BEST TO IMPROVE THE MATERIAL DAY BY DAY.
IN FACTS, BEFORE CONTRIBUTING WITH MONEY YOU HAVE TO BE SURE
THAT YOU **ALREADY** FOUND THE DRIVER USEFUL, LIKED IT TOTALLY AND WOULD
ALSO LIKE TO SEE A VERSION FOR YOUR _NEW_ KERNEL. IF YOU HAVE NEVER TRIED
THE SOFTWARE OR DID NOT LIKE IT, DO NOT MAKE ANY CONTRIBUTION OF MONEY.
ONCE AGAIN: NO WARRANTIES, THE SOFTWARE IS AND WILL ALWAYS BE PROVIDED
"AS IS"!
Would you like to have the SN9CXXX driver released under the terms of
the GPL? Okay, read question #4 and redirect your requests (or complaints)
to the appropriate persons.
Contact me for more informations about the exact amount of the
contribution and to known how/where to contribute with a secure
transaction through PayPal.
If possible, binaries for older kernels will appear on the homepage for
free after a period of time.
10.Q: Can you suggest at least one application to try the driver?
A: The short answer is: you can use whatever video application you
prefer, be it V4L1 or V4L2. Just hope it has not too many bugs.
Below is a list of applications which are known to work. If you know
one not listed or not working properly, let me know:
- videoview, its front-end is far from perfect, but has a good
back-end. It has a GUI. You can do video previewing, recording, playbacking
and control all the image properties. You can use some external applications
such as "alltray" to minimize videoview onto the system tray and use it as
"panel" application for changing the image properties while using another
preferred application for video streaming.
- Skype for Linux
Skype works perfectly. Make sure to use the SN9CXXX v. 2.11 or greater and
Skype BETA 2.0.0.27 or greater.
- WengoPhone
It's a multiprotocol (ICQ, MSN, AIM..) Istant Messanger and VoIP/SIP
client. It seems it works perfectly. However, make sure to use the
LATEST version available.
- Ekiga
Another VoIP client (working with V4L1 and V4L2).
At the moment of writing, in Ekiga the V4L2 plugin is
partially broken somewhere. Although ekiga can show the video, it does
not query and set the image controls (exposure, red, green, blue) as
expected - also, the interface for the controls when the V4L2 plugin is
used seems to be the old one used for the old V4l1.
- VideoLan VLC
Nice application, you can do about everything with this swiss knife,
from recording to real-time post-processing and streaming on the net,
even both at the same time, etc..
- xawtv
- mplayer and mencoder, for example, to show a 320x240 video run:
mplayer tv:// -tv driver=v4l:width=320:height=240:device=/dev/video0
To record (one line,replace , , with values):
mencoder tv:// -tv driver=v4l:width=:height=:\
device=/dev/video0 -nosound -ovc lavc -o .avi
- gqcam. For example:
gqcam -v /dev/video0 , I suggest that you disable the "Auto brightness"
option in the menu.
- camstream
- sn-webcam
- palantir
- aMSN (you must load the SN9CXXX driver with "force_v4lx=1" parameter,
as at the moment of writing, the V4L2 support in aMSN is not
complete yet)
- linphone
Another VoIP/SIP Client for Audio & Video Conferences.
- Kopete - Multiprotocol Istant Messanger for the KDE Desktop
- transcode
Useful for recording audio and video and do any sort of filtering and
processing on-the-fly. The v4l1 plugin is not flawless: just make sure
to record from a supported resolution (width, height must be multiple
of 16).
Example (on one line command):
transcode -z -M 2 -x v4l,v4l -i /dev/video0 --import_v4l 0,38 \
-p /dev/dsp -y xvid -o test.avi -w 1500 -e 32000 -E 44100 -b 96 -s 7 \
-c 0-250 -g 320x240 -j 0,4
- ttv
ttv displays TV/video on a terminal, rendering the images using aalib.
- ucview, from the unicap project
Partially working. Use the latest version available.
The V4L1 plugin of ucview prior to v0.17 does not seem to show
the video smoothly and only work with RGB32 bpp and GREY, while the V4L2
plugin does not support the formats from the webcam. Keep an eye
on this library, the situation may change in the near future.
- motion, a software motion detector.
- vgrabbj
It takes a v4l device as input to put it into an jpeg, pnm, or
png file.
You can add a timestamp into the image. You can also make it
automagically upload it to your website via ftp.
- Streamer is a versatile program that allows a capture from a
webcam or video device using only the command line. It may be
offered in your Linux distribution's Xawtv package, or may need
to be fetched separately as in Debian.
To make an .avi file with streamer:
streamer -q -c /dev/video0 -f rgb24 -r 3 -t 00:1:00 -o outfile.avi
- effectv
EffecTV is a real-time video effector. You can watch TV or video
through amazing effectors.
- freej
- Flash player 9. It works perfectly, try this page to test.
- camorama - works perfectly since SN9CXXX version 2.08
- fswebcam
- luvcview
- webcam-server
- camgrab
- wxcam (fixing planned)
- Picasa
- cheese
- motv
- vidcat
- v4l2ucp
- cameramonitor
- webcam
- dov4l - Set parameters on a video4linux1 device
- xsane, quiteinsane, xscanimage, gimp - Graphical scanning frontends
11. Q: What are the differences between the SN9C1XX driver and the generic
SN9CXXX driver?
A: The SN9CXXX supports all the SN9C1XX webcams, but not only, it also
supports the SN9C102P, SN9C110 and the USB2 SN9C201 and SN9C202.
The SN9CXXX is closed-source, while the SN9C1XX is opensource.
The SN9C1XX is included and maintained in the mainstream
Linux kernels, while the SN9CXXX lives outside the kernel.
The SN9C1XX is released under the terms of the GPL, while the SN9CXXX
license is proprietary. The SN9C1XX can only support the Video4Linux2
API, while the SN9CXXX also supports the old Video4Linux1 API and
works with every video application.
12. Q: Do I need to remove the default SN9C1XX kernel driver to install the
SN9CXXX ?
A: Unless you know what you are doing, yes. All the SN9C1XX's are
supported by the SN9CXXX with more features, so you won't lost any
functionalities. Whenever possible, the installation process will ask
you whether you wish to remove the SN9C1XX (sn9c102.ko module) to
avoid any possible conflicts with the SN9CXXX.
13. Q: Does the 64-bit version of the SN9CXXX kernel driver work with
32bit applications?
A: Yes.
14. Q: I have installed the package and loaded the driver, but no video
device appears at all.
A: Make sure you have unloaded all the kernel modules conflicting with the
"sn9cxxx" module, which are "sn9c102" and "gspca".
If no video dev is appearing, it's likely that either your webcam is not
supported by the latest release of the driver (see messages from the
kernel) or you have tried to force the installation, but things went wrong.
DO NOT FORCE THE INSTALLATION/LOADING OF THE DRIVER, as your system might
crash in the worst case. Remember that each package is specific for
only one building environment (one Linux distribution, one kernel
version 2.6.x.y-z, and one compiler, globally speaking)
15. Q: The image from my webcam is upside down. What can I do?
A: It happens with some webcams. The SN9CXXX driver has a module parameter
named "vflip". Try to load the driver with "vflip=1" to solve the problem.
16. Q: What are the features of the SN9CXXX driver?
A: Some of the features of the driver are:
- transparent and full compliance with both the Video4Linux1
and Video4Linux2 API;
- working with all the existing video applications under linux;
- multiple opens;
- available mmap or read/poll methods for video streaming;
- automatic detection of image sensor;
- support for built-in microphone interface;
- support for any window resolutions and optional panning within
the pixel area of the image sensor;
- image downscaling with arbitrary scaling factors from 1, 2 and 4
in both directions;
- two different video formats for uncompressed or compressed video data
in low or high compression quality;
- full support for the capabilities of many of the possible image sensors
that can be connected to the SN9Cxxx bridges, including, for instance,
red, green, blue and global gain adjustments, exposure, etc..;
- use of default color settings for sunlight conditions;
- dynamic I/O interface for both SN9Cxxx and image sensor control and
monitoring (only with source code);
- dynamic driver control thanks to various module parameters;
- up to 64 cameras can be handled at the same time;
- no known bugs.
You may contact me for claryfing this FAQ, if necessary.