Date: Mon, 11 Jan 2010 19:59:47 +0100 From: Henri Hennebert <hlh@restart.be> To: Hans Petter Selasky <hselasky@c2i.net>, freebsd-current@freebsd.org Subject: Re: [FreeBSD 8/9] USB webcamd and video4bsd: Call for testing Message-ID: <4B4B7523.6060409@restart.be> In-Reply-To: <201001101437.37269.hselasky@c2i.net> References: <201001101437.37269.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 01/10/2010 14:37, Hans Petter Selasky wrote: > Hi, > > During the last couple of days I've spent some time to finish my webcam > daemon. My webcam daemon is basically an application which consists of > userspace Video4Linux USB webcam drivers and some uLinux glue code which links > with libc, pthreads and libusb. The webcamd talks to /dev/video_daemonX which > is provided by the video4bsd kernel module. There is full support for > mmap/read/write/open/close. poll is not supported. > > Basic operation and idea: > > /dev/video_daemonX is the interface for the webcamd. /dev/videoX is the > interface for the V4L application. The video4bsd transports all data between > these two devices. In the case the V4L application is using mmap, no data is > copied due to shared kernel memory buffer! > > Licensing issues: > > Effectivly the webcamd userland program becomes GPL'ed due to the V4L USB > drivers which are GPL licensed. Some files inside the webcamd remains BSD > licensed which allows for building similar BSD licensed daemons. > > The rest of the code is BSD licensed. > > Source code: > > 1) FreeBSD 8-stable > > 2) Apply the patch below and re-install libusb in /usr/src/lib/libusb: > > http://p4web.freebsd.org/chv.cgi?CH=172876 > > http://perforce.freebsd.org/chv.cgi?CH=172876 > > 3) Compile ulinux (webcamd + libv4l + pwcview) and video4bsd (must be checked > out in the same folder due to dependencies) > > svn --username anonsvn --password anonsvn \ > checkout svn://svn.turbocat.net/i4b/trunk/usbcam/video4bsd > > make all install > kldload video4bsd > > svn --username anonsvn --password anonsvn \ > checkout svn://svn.turbocat.net/i4b/trunk/usbcam/ulinux > > make fetch > make patch > make all > make install > > # this will attach to the first detected webcam: > ./webcamd > > # this will try to attach to the given USB unit, interface and V4B unit. > ./webcamd -d ugen4.1 -i 0 -v 0 > > # this will display webcam contents from /dev/video0 by default. > ./pwcview/pwcview > > Feedback and bug reports are welcome. > I try on a Fujitsu M2010: FreeBSD meribel.restart.bel 8.0-RELEASE-p2 FreeBSD 8.0-RELEASE-p2 #0 r201748M: Thu Jan 7 16:23:56 CET 2010 root@meribel.restart.bel:/usr/obj/usr/src/sys/MERIBEL i386 [root@meribel ~]# usbconfig ugen0.1: <UHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON ugen1.1: <UHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON ugen2.1: <UHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON ugen3.1: <EHCI root HUB Intel> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON ugen3.2: <USB Webcam QCM> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON ugen0.2: <product 0x1133 vendor 0x04d9> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON ugen1.2: <product 0x6216 vendor 0x18e8> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON ugen3.3: <USB2.0-CRW Generic> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON [root@meribel ~]# /home/meribel/webcam/ulinux/webcamd -d ugen3.2 -i 0 -v 0 KrefGet: 0x34028404 = 1 KrefGet: 0x34028404 = 2 KrefGet: 0x3402860c = 1 KrefGet: 0x340286c8 = 1 Added device 0x33f18b04 KrefGet: 0x33f18b08 = 1 KrefGet: 0x33f18b08 = 2 [root@meribel ~]# chmod 666 /dev/video* /dev/usb/* [hlh@meribel ~]$ pwcview Webcam set to: 320x240 (sif) at 5 fps Give me a green window for some time and then this picture: http://verbier.restart.be/xfer/Screenshot-pwcview.png which stay still. I can't kill pwcview window. Thank you for your work! Henri
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B4B7523.6060409>