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

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.


SourceForge.net Logo


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