Fujifilm FinePix (PC-CAM / Webcam mode)
Video4Linux and Video4Linux2 driver
Warning: Not all Finepix
cameras
are supported by this driver.
Project hosted on
sourceforge
User space test program
This simple program grabs and saves one image from the camera. It's
based on libusb, so no special driver is necessary. If it
works with another finepix (modulo the usb ids), then the
driver should work too.
Download the userspace test program
Linux 2.6 kernel driver
Status
The driver supports a subset of both the V4L and V4L2 APIs. The V4L
part integrates a JPEG decoder (written by Michael Schroeder and
adapted by Luc Willems) and outputs a raw RGB image. The V4L2 part
outputs the native JPEG returned by the camera.
Limitations
- Snapshots are not yet taken at regular intervals.
- Regarding V4l2, this driver will only work with applications that
support a
JPEG input (ie not a lot). It should work with
any applications that are using gstreamer version 0.8+ (0.6 does not
support JPEG output).
- After streaming, the red light on my 4800Z stays on. I
think it's
because the camera status is not read (maybe I need to add interrupt
pipe
support).
- Only for linux 2.6. It probably needs some porting for Linux 2.4.
Cameras status
| USB
vendor ID |
USB
product ID |
Camera name |
Status
|
04cb
|
0104
|
Fujifilm FinePix 2600 / 4800Zoom
/ 6800Zoom / A101 |
works
|
04cb
|
0109
|
Fujifilm FinePix F601Zoom |
works |
04cb
|
010b
|
Fujifilm FinePix S602Zoom
|
works |
| 04cb |
010f
|
Fujifilm FinePix F402
|
untested
|
04cb
|
0111 |
Fujifilm FinePix M603 |
works |
| 04cb |
0113
|
Fujifilm FinePix A202
|
works |
| 04cb |
0115
|
Fujifilm FinePix F401
|
untested |
| 04cb |
0117
|
Fujifilm FinePix A203
|
untested |
| 04cb |
0119
|
Fujifilm FinePix S303
|
untested |
| 04cb |
011b
|
Fujifilm FinePix S304
|
untested |
| 04cb |
011d
|
Fujifilm FinePix A204
|
untested |
04cb
|
0121
|
Fujifilm FinePix F700 |
works |
| 04cb |
0123
|
Fujifilm FinePix F410
|
untested |
04cb
|
0125
|
Fujifilm FinePix A310
|
works |
| 04cb |
0127
|
Fujifilm FinePix A210
|
untested |
| 04cb |
0129
|
Fujifilm FinePix A205
|
works |
| 04cb |
012b
|
Fujifilm FinePix ????
|
untested |
04cb
|
012d
|
Fujifilm FinePix S7000
|
works |
| 04cb |
012f
|
Fujifilm FinePix ????
|
untested |
| 04cb |
0131
|
Fujifilm FinePix S5000
|
works
|
| 04cb |
013b
|
Fujifilm FinePix ????
|
untested |
04cb
|
013d
|
Fujifilm FinePix S3000
|
works |
| 04cb |
013f
|
Fujifilm FinePix F420
|
works |
04cb
|
0149
|
Fujifilm FinePix A330
|
does
not work (1)
|
04cb
|
016f
|
Fujifilm FinePix S5500
|
does
not work (1)
|
This driver seems to support Finepix cameras released until summer
2004. After that it seems that Fujifilm switched to use the
new USB video class protocol. See the following references for more
information:
http://kerneltrap.org/node/4437
http://www.usb.org/developers/devclass_docs/video_class_040605.zip
http://www.mail-archive.com/linux-usb-devel@lists.sourceforge.net/msg31753.html
The driver should support your camera if the output from /proc/bus/usb/devices is similar to:
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02
Dev#= 6 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc
) Sub=00 Prot=00 MxPS=64
#Cfgs= 1
P: Vendor=04cb ProdID=0121 Rev= 1.00
S: Product=USB PC Camera
S: SerialNumber=xxxxxxxxxxxxxxxxxxxxxxxxx
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 50mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=21 Prot=ff Driver=finepix
E: Ad=81(I) Atr=02(Bulk) MxPS=
64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS=
64 Ivl=0ms
E: Ad=83(I) Atr=03(Int.) MxPS=
8 Ivl=1ms
It will not work if it is similar to:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01
Dev#= 2 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ef(unk.
) Sub=02 Prot=01 MxPS=64
#Cfgs= 1
P: Vendor=04cb ProdID=0149 Rev= 1.00
S: Product=USB Web Camera
S: SerialNumber=xxxxxxxxxxxxxxxxxxxxxxxxx
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr= 50mA
I: If#= 0 Alt= 0 #EPs= 0
Cls=0e(unk. ) Sub=01 Prot=00 Driver=(none)
I: If#= 1 Alt= 0 #EPs= 1
Cls=0e(unk. ) Sub=02 Prot=00 Driver=(none)
E: Ad=81(I) Atr=02(Bulk) MxPS=
64 Ivl=0ms
The difference is that the unsupported cameras have only
an USB bulk endpoint (one line E:), while the supported ones have 2
bulks and an
interrupt endpoints (three lines E:).
(2006/2/2) There is now a project that could support
these cameras at http://linux-uvc.berlios.de
Applications status
Application
|
V4L
Status
|
V4L2
status
|
MPlayer 1.0pre5
|
Works (mplayer -tv
driver=v4l:outfmt=bgr24 -flip tv://).
|
Does not work. JPEG intput is
not supported by the V4L2 plugin of MPlayer. |
xawtv 3.91
|
does not work.
|
Has V4L2 supports, but it does
not support JPEG output. |
gnomemeeting
|
Works
|
Apparently does not support
V4L2. |
gstreamer 0.8.4
|
untested
|
gst-player does not support it.
Needs a patch. See testing for
a couple command lines that work. |
Testing
My dev platform is Open SUSE 10.0 (SUSE kernel 2.6.13).
Extracts images to nothing:
gst-launch v4l2src ! fakesink
Creates a movie:
gst-launch v4l2src ! asfmux ! filesink
location=test.asf
Download
The prefered way is to use the CVS tree to get the code. Alternatively
you can download an older version of the driver on the source forge page.
Build the driver by typing make.
As root, type make install.
Load it with modprobe finepix.ko.
The tarball also contains fpixtest that reads a single
frame using the driver and saves it under frame.jpg.

Frank Zago - finepix at zago dot net
Speaking French and English.