Hi,
Please make sure you use the svn version:
"svn checkout http://svn.quickcamteam.net/svn/qct/Linux/";

You will also need uvcvideo.h header from the linux-uvc driver:
" 
http://linuxtv.org/hg/~pinchartl/uvcvideo/file/26d3049cb825/linux/drivers/media/video/uvc/uvcvideo.h
"

this file must be patched (around line 59):

--------------------//---------------------
struct uvc_xu_control {
 __u8 unit;
 __u8 selector;
 __u16 size;
 //__u8 __user *data;  //<------remove __user
 __u8 *data;
 };
--------------------//---------------------

now some more patches to libwebcam so that udev scripts work wit the
latest udev version:
modify "./ Apps/uvcdynctrl/udev/rules/80-uvcdynctrl.rules" to:

--------------------//---------------------
###############################################################################
# Rules for adding dynamic UVC extension unit controls to UVC devices
###############################################################################
ACTION=="add", SUBSYSTEM=="video4linux", DRIVERS=="uvcvideo",
RUN+="/lib/udev/uvcdynctrl"
--------------------//---------------------

and "./Apps/uvcdynctrl/udev/scripts/uvcdynctrl" to:

--------------------//---------------------
#!/bin/sh
###############################################################################
# udev helper script for UVC devices to support dynamic controls.
#
# Version: 0.1
###############################################################################

xmlpath=/etc/udev/data
logfile=/tmp/uvcdynctrl-udev.log
#logfile=/dev/null
uvcdynctrlpath=uvcdynctrl

echo 
"\n===========================================================================
=== " >> $logfile
echo "Triggered at `date`\n" >> $logfile
set >> $logfile
echo >> $logfile

# Extract the VID and PID
vid=$ID_VENDOR
pid=$ID_MODEL
echo "VID of new device: '$vid'" >> $logfile
echo "PID of new device: '$pid'" >> $logfile
if [ -z $vid ]; then
echo "ERROR: Unable to extract USB VID from '$DEVPATH'" >> $logfile
exit 2
fi

# Make sure the vendor directory ($xmlpath/VID) exists
vendordir="$xmlpath/$vid"
if [ ! -d "$vendordir" ]; then
echo "ERROR: Vendor directory '$vendordir' not found." >> $logfile
exit 5
fi

# Look for device specific XML files ($xmlpath/VID/PID/*.xml)
if [ ! -z $pid ]; then
productdir="$xmlpath/$vid/$pid"
if [ -d "$productdir" ]; then
for file in $productdir/*.xml; do
if [ -f "$file" ]; then
echo "Found product XML file: $file" >> $logfile
cmd="$uvcdynctrlpath -d $DEVNAME -i $file"
echo "Executing command: '$cmd'" >> $logfile
$cmd >> $logfile 2>&1
fi
done
fi
fi

# Look for vendor specific XML files ($xmlpath/VID/*.xml)
for file in $vendordir/*.xml; do
if [ -f "$file" ]; then
echo "Found vendor XML file: $file" >> $logfile
cmd="$uvcdynctrlpath -d $DEVNAME -i $file"
echo "Executing command: '$cmd'" >> $logfile
$cmd >> $logfile 2>&1
fi
done



echo 
"==============================================================================\n
" >> $logfile
--------------------//---------------------

This should be enough to make everything work :D

Best regards,
Paulo
_______________________________________________
Linux-uvc-devel mailing list
Linux-uvc-devel@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to