mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-21 19:42:24 +01:00
system/ov51x-jpeg: Added (kernel module for ov51x webcams)
Signed-off-by: Niels Horn <niels.horn@slackbuilds.org>
This commit is contained in:
parent
17904ae9c5
commit
9958df5cad
7 changed files with 419 additions and 0 deletions
5
system/ov51x-jpeg/README
Normal file
5
system/ov51x-jpeg/README
Normal file
|
@ -0,0 +1,5 @@
|
|||
A GPL-licensed kernel module with support for ov51x webcams,
|
||||
including Sony eyeToy
|
||||
|
||||
Because this installs a kernel module, you will need to
|
||||
rebuild the package if you change kernels.
|
12
system/ov51x-jpeg/README.SLACKWARE
Normal file
12
system/ov51x-jpeg/README.SLACKWARE
Normal file
|
@ -0,0 +1,12 @@
|
|||
README.SLACKWARE for ov51x-jpeg
|
||||
|
||||
You might want to adapt some files in /etc/modprobe.d/ accordingly:
|
||||
|
||||
blacklist.conf:
|
||||
# blacklisting these modules will allow the ov51x-jpeg module to load
|
||||
blacklist gspca_ov519
|
||||
blacklist ov511
|
||||
|
||||
ov51x-jpeg.conf:
|
||||
# I'm happy with these options, YMMV
|
||||
options ov51x-jpeg led=0 force_palette=15 autobright=1 autoexp=1
|
2
system/ov51x-jpeg/doinst.sh
Normal file
2
system/ov51x-jpeg/doinst.sh
Normal file
|
@ -0,0 +1,2 @@
|
|||
chroot . /sbin/depmod -a @KERNEL@
|
||||
|
73
system/ov51x-jpeg/ov51x-jpeg.SlackBuild
Normal file
73
system/ov51x-jpeg/ov51x-jpeg.SlackBuild
Normal file
|
@ -0,0 +1,73 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Slackware build script for ov51x-jpeg
|
||||
|
||||
# Copyright 2011 Markus Reichelt, Aachen, DE
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# markus reichelt, slackbuilds@mareichelt.de, 0xCCEEF115
|
||||
# 2011 Jun 25 - initial release
|
||||
|
||||
PRGNAM=ov51x-jpeg
|
||||
VERSION=1.5.9
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
ARCH=$(uname -m)
|
||||
KERNEL=${KERNEL:-"$(uname -r)"}
|
||||
|
||||
CWD=$(pwd)
|
||||
TMP=${TMP:-/tmp/SBo}
|
||||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
set -e
|
||||
|
||||
rm -rf $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf $PRGNAM-$VERSION
|
||||
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
|
||||
cd $PRGNAM-$VERSION
|
||||
chown -R root:root .
|
||||
find . \
|
||||
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||
-exec chmod 755 {} \; -o \
|
||||
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||
-exec chmod 644 {} \;
|
||||
|
||||
patch -p1 < $CWD/ov51x-jpeg.diff
|
||||
|
||||
make KDIR=/lib/modules/${KERNEL}/build
|
||||
|
||||
mkdir -p $PKG/lib/modules/${KERNEL}/extra
|
||||
install -m 0644 ov51x-jpeg.ko $PKG/lib/modules/${KERNEL}/extra
|
||||
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a ChangeLog $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a $CWD/README.SLACKWARE $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
sed "s%@KERNEL@%$KERNEL%" $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||
|
||||
cd $PKG
|
||||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
|
298
system/ov51x-jpeg/ov51x-jpeg.diff
Normal file
298
system/ov51x-jpeg/ov51x-jpeg.diff
Normal file
|
@ -0,0 +1,298 @@
|
|||
diff -Naur ov51x-jpeg-1.5.9.orig/ov511-decomp.c ov51x-jpeg-1.5.9/ov511-decomp.c
|
||||
--- ov51x-jpeg-1.5.9.orig/ov511-decomp.c 2008-09-28 12:58:09.000000000 +0200
|
||||
+++ ov51x-jpeg-1.5.9/ov511-decomp.c 2011-06-25 14:40:22.180000231 +0200
|
||||
@@ -22,7 +22,7 @@
|
||||
* Free Software Foundation; version 2 of the License.
|
||||
*/
|
||||
|
||||
-#include <linux/autoconf.h>
|
||||
+#include <generated/autoconf.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#include "ov51x-jpeg.h"
|
||||
@@ -508,6 +508,5 @@
|
||||
struct ov51x_decomp_ops ov511_decomp_ops = {
|
||||
.decomp_400 = Decompress400,
|
||||
.decomp_420 = Decompress420,
|
||||
- .owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
diff -Naur ov51x-jpeg-1.5.9.orig/ov518-decomp.c ov51x-jpeg-1.5.9/ov518-decomp.c
|
||||
--- ov51x-jpeg-1.5.9.orig/ov518-decomp.c 2008-09-28 12:58:09.000000000 +0200
|
||||
+++ ov51x-jpeg-1.5.9/ov518-decomp.c 2011-06-25 14:40:22.180000231 +0200
|
||||
@@ -25,7 +25,7 @@
|
||||
* Free Software Foundation; version 2 of the License.
|
||||
*/
|
||||
|
||||
-#include <linux/autoconf.h>
|
||||
+#include <generated/autoconf.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#include "ov51x-jpeg.h"
|
||||
@@ -1488,6 +1488,5 @@
|
||||
struct ov51x_decomp_ops ov518_decomp_ops = {
|
||||
.decomp_400 = Decompress400,
|
||||
.decomp_420 = Decompress420,
|
||||
- .owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
diff -Naur ov51x-jpeg-1.5.9.orig/ov519-decomp.c ov51x-jpeg-1.5.9/ov519-decomp.c
|
||||
--- ov51x-jpeg-1.5.9.orig/ov519-decomp.c 2008-09-28 12:58:09.000000000 +0200
|
||||
+++ ov51x-jpeg-1.5.9/ov519-decomp.c 2011-06-25 14:40:22.180000231 +0200
|
||||
@@ -24,7 +24,7 @@
|
||||
* See: http://zc0302.sourceforge.net/zc0302.php
|
||||
*/
|
||||
|
||||
-#include <linux/autoconf.h>
|
||||
+#include <generated/autoconf.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#include "ov51x-jpeg.h"
|
||||
@@ -1534,7 +1534,6 @@
|
||||
struct ov51x_decomp_ops ov519_decomp_ops = {
|
||||
.decomp_400 = Decompress400,
|
||||
.decomp_420 = Decompress420,
|
||||
- .owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
|
||||
diff -Naur ov51x-jpeg-1.5.9.orig/ov51x-jpeg-core.c ov51x-jpeg-1.5.9/ov51x-jpeg-core.c
|
||||
--- ov51x-jpeg-1.5.9.orig/ov51x-jpeg-core.c 2008-09-28 12:58:09.000000000 +0200
|
||||
+++ ov51x-jpeg-1.5.9/ov51x-jpeg-core.c 2011-06-25 14:40:48.720000244 +0200
|
||||
@@ -12,6 +12,9 @@
|
||||
* To support OV7670 sensors as found in Creative Live! Vista IM webcam
|
||||
* With reference to One Laptop Per Child sourced kernel patches in 2.6.20 kernel
|
||||
* contributed to kernel by Jonathan Corbet.
|
||||
+*
|
||||
+* Modified to work with 2.6.29 kernels by Onur Küçük <onur@pardus.org.tr>
|
||||
+*
|
||||
*/
|
||||
|
||||
|
||||
@@ -84,7 +87,7 @@
|
||||
* Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
-#include <linux/autoconf.h>
|
||||
+#include <generated/autoconf.h>
|
||||
|
||||
#define OV51x_JPEG_VERSION "1.5.9"
|
||||
|
||||
@@ -534,13 +537,13 @@
|
||||
static int sensor_get_picture(struct usb_ov511 *, struct video_picture *);
|
||||
static int sensor_get_exposure(struct usb_ov511 *, unsigned char *);
|
||||
static int ov51x_check_snapshot(struct usb_ov511 *);
|
||||
-static int ov51x_control_ioctl(struct inode *, struct file *, unsigned int,
|
||||
+static long ov51x_control_ioctl(struct inode *, struct file *, unsigned int,
|
||||
unsigned long);
|
||||
|
||||
static struct file_operations ov511_control_fops = {
|
||||
- .ioctl = ov51x_control_ioctl,
|
||||
+ .unlocked_ioctl = ov51x_control_ioctl,
|
||||
#ifdef CONFIG_COMPAT
|
||||
- .compat_ioctl = v4l_compat_ioctl32,
|
||||
+ .compat_ioctl = v4l2_compat_ioctl32,
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -678,7 +681,6 @@
|
||||
ov->proc_devdir = create_proc_entry(dirname, S_IFDIR, ov51x_jpeg_proc_entry);
|
||||
if (!ov->proc_devdir)
|
||||
return;
|
||||
- ov->proc_devdir->owner = THIS_MODULE;
|
||||
|
||||
/* Create "info" entry (human readable device information) */
|
||||
PDEBUG(4, "creating /proc/ov51x-jpeg/ov51x/%s/info", dirname);
|
||||
@@ -686,7 +688,6 @@
|
||||
ov->proc_devdir, ov511_read_proc_info, ov);
|
||||
if (!ov->proc_info)
|
||||
return;
|
||||
- ov->proc_info->owner = THIS_MODULE;
|
||||
|
||||
/* Don't create it if old snapshot mode on (would cause race cond.) */
|
||||
if (!snapshot) {
|
||||
@@ -697,7 +698,6 @@
|
||||
ov511_read_proc_button, ov);
|
||||
if (!ov->proc_button)
|
||||
return;
|
||||
- ov->proc_button->owner = THIS_MODULE;
|
||||
}
|
||||
|
||||
/* Create "control" entry (ioctl() interface) */
|
||||
@@ -709,7 +709,6 @@
|
||||
unlock_kernel();
|
||||
return;
|
||||
}
|
||||
- ov->proc_control->owner = THIS_MODULE;
|
||||
ov->proc_control->data = ov;
|
||||
ov->proc_control->proc_fops = &ov511_control_fops;
|
||||
unlock_kernel();
|
||||
@@ -762,9 +761,7 @@
|
||||
*/
|
||||
|
||||
ov51x_jpeg_proc_entry = create_proc_entry("ov51x-jpeg", S_IFDIR, &proc_root);
|
||||
- if (ov51x_jpeg_proc_entry)
|
||||
- ov51x_jpeg_proc_entry->owner = THIS_MODULE;
|
||||
- else
|
||||
+ if (!ov51x_jpeg_proc_entry)
|
||||
err("Unable to create /proc/ov51x-jpeg");
|
||||
|
||||
}
|
||||
@@ -5733,7 +5730,7 @@
|
||||
{
|
||||
#else
|
||||
static int
|
||||
-ov51x_v4l1_open(struct inode *inode, struct file *file)
|
||||
+ov51x_v4l1_open(struct file *file)
|
||||
{
|
||||
struct video_device *vdev = video_devdata(file);
|
||||
#endif
|
||||
@@ -5804,7 +5801,7 @@
|
||||
{
|
||||
#else
|
||||
static int
|
||||
-ov51x_v4l1_close(struct inode *inode, struct file *file)
|
||||
+ov51x_v4l1_close(struct file *file)
|
||||
{
|
||||
struct video_device *vdev = file->private_data;
|
||||
#endif
|
||||
@@ -5850,13 +5847,14 @@
|
||||
}
|
||||
|
||||
/* Do not call this function directly! */
|
||||
-static int
|
||||
#ifdef OV511_OLD_V4L
|
||||
+static long
|
||||
ov51x_v4l1_ioctl_internal(struct usb_ov511 *ov, unsigned int cmd,
|
||||
void *arg)
|
||||
{
|
||||
#else
|
||||
-ov51x_v4l1_ioctl_internal(struct inode *inode, struct file *file,
|
||||
+static long
|
||||
+ov51x_v4l1_ioctl_internal(struct file *file,
|
||||
unsigned int cmd, void *arg)
|
||||
{
|
||||
struct video_device *vdev = file->private_data;
|
||||
@@ -6355,7 +6353,7 @@
|
||||
return err;
|
||||
}
|
||||
|
||||
-static int
|
||||
+static long
|
||||
ov51x_v4l1_ioctl(struct video_device *vdev, unsigned int cmd, void *arg)
|
||||
{
|
||||
struct usb_ov511 *ov = vdev->priv;
|
||||
@@ -6372,8 +6370,8 @@
|
||||
|
||||
#else /* If new V4L API */
|
||||
|
||||
-static int
|
||||
-ov51x_v4l1_ioctl(struct inode *inode, struct file *file,
|
||||
+static long
|
||||
+ov51x_v4l1_ioctl(struct file *file,
|
||||
unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct video_device *vdev = file->private_data;
|
||||
@@ -6383,7 +6381,7 @@
|
||||
if (down_interruptible(&ov->lock))
|
||||
return -EINTR;
|
||||
|
||||
- rc = video_usercopy(inode, file, cmd, arg, ov51x_v4l1_ioctl_internal);
|
||||
+ rc = video_usercopy(file, cmd, arg, ov51x_v4l1_ioctl_internal);
|
||||
|
||||
up(&ov->lock);
|
||||
return rc;
|
||||
@@ -6609,7 +6607,6 @@
|
||||
|
||||
#ifdef OV511_OLD_V4L
|
||||
static struct video_device vdev_template = {
|
||||
- .owner = THIS_MODULE,
|
||||
.name = "OV511 USB Camera",
|
||||
.type = VID_TYPE_CAPTURE,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
|
||||
@@ -6624,22 +6621,19 @@
|
||||
|
||||
#else /* New V4L API */
|
||||
|
||||
-static struct file_operations ov511_fops = {
|
||||
- .owner = THIS_MODULE,
|
||||
+static struct v4l2_file_operations ov511_fops = {
|
||||
.open = ov51x_v4l1_open,
|
||||
.release = ov51x_v4l1_close,
|
||||
.read = ov51x_v4l1_read,
|
||||
.mmap = ov51x_v4l1_mmap,
|
||||
.ioctl = ov51x_v4l1_ioctl,
|
||||
-#ifdef CONFIG_COMPAT
|
||||
- .compat_ioctl = v4l_compat_ioctl32,
|
||||
-#endif
|
||||
- .llseek = no_llseek,
|
||||
+/*#ifdef CONFIG_COMPAT
|
||||
+ .compat_ioctl = v4l2_compat_ioctl32,
|
||||
+#endif*/
|
||||
};
|
||||
|
||||
static struct video_device vdev_template = {
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
|
||||
- .owner = THIS_MODULE,
|
||||
#endif
|
||||
.name = "OV51x USB Camera",
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
|
||||
@@ -6654,7 +6648,7 @@
|
||||
};
|
||||
#endif /* OV511_OLD_V4L */
|
||||
|
||||
-static int
|
||||
+static long
|
||||
ov51x_control_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
|
||||
unsigned long ularg)
|
||||
{
|
||||
@@ -8304,11 +8298,11 @@
|
||||
|
||||
init_waitqueue_head(&ov->wq);
|
||||
|
||||
- init_MUTEX(&ov->lock); /* to 1 == available */
|
||||
- init_MUTEX(&ov->buf_lock);
|
||||
- init_MUTEX(&ov->param_lock);
|
||||
- init_MUTEX(&ov->i2c_lock);
|
||||
- init_MUTEX(&ov->cbuf_lock);
|
||||
+ sema_init(&ov->lock,1); /* to 1 == available */
|
||||
+ sema_init(&ov->buf_lock,1);
|
||||
+ sema_init(&ov->param_lock,1);
|
||||
+ sema_init(&ov->i2c_lock,1);
|
||||
+ sema_init(&ov->cbuf_lock,1);
|
||||
|
||||
ov->buf_state = BUF_NOT_ALLOCATED;
|
||||
|
||||
@@ -8374,7 +8368,7 @@
|
||||
|
||||
memcpy(ov->vdev, &vdev_template, sizeof(*ov->vdev));
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
|
||||
- ov->vdev->dev = dev->dev;
|
||||
+ ov->vdev->parent = &dev->dev;
|
||||
#else
|
||||
ov->vdev->dev = &dev->dev;
|
||||
#endif
|
||||
diff -Naur ov51x-jpeg-1.5.9.orig/ov51x-jpeg.h ov51x-jpeg-1.5.9/ov51x-jpeg.h
|
||||
--- ov51x-jpeg-1.5.9.orig/ov51x-jpeg.h 2008-09-28 12:58:09.000000000 +0200
|
||||
+++ ov51x-jpeg-1.5.9/ov51x-jpeg.h 2011-06-25 14:40:15.801000231 +0200
|
||||
@@ -63,6 +63,12 @@
|
||||
#include <media/v4l2-ioctl.h>
|
||||
#endif
|
||||
|
||||
+/* Add missing info and warn macros by hand for new kernels */
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28)
|
||||
+#define info(args...) printk(KERN_INFO KBUILD_MODNAME args)
|
||||
+#define warn(args...) printk(KERN_WARNING KBUILD_MODNAME args)
|
||||
+#endif
|
||||
+
|
||||
/* --------------------------------- */
|
||||
/* DEFINES FOR OV511 AND OTHER CHIPS */
|
||||
/* --------------------------------- */
|
||||
@@ -582,7 +588,6 @@
|
||||
int, int, int);
|
||||
int (*decomp_422)(unsigned char *, unsigned char *, unsigned char *,
|
||||
int, int, int);
|
||||
- struct module *owner;
|
||||
};
|
||||
|
||||
extern struct ov51x_decomp_ops ov511_decomp_ops;
|
10
system/ov51x-jpeg/ov51x-jpeg.info
Normal file
10
system/ov51x-jpeg/ov51x-jpeg.info
Normal file
|
@ -0,0 +1,10 @@
|
|||
PRGNAM="ov51x-jpeg"
|
||||
VERSION="1.5.9"
|
||||
HOMEPAGE="http://www.rastageeks.org/ov51x-jpeg/index.php/Main_Page"
|
||||
DOWNLOAD="http://www.rastageeks.org/downloads/ov51x-jpeg/ov51x-jpeg-1.5.9.tar.gz"
|
||||
MD5SUM="95041de8e908f1548df3d4e1f6ed2a94"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
MAINTAINER="markus reichelt"
|
||||
EMAIL="slackbuilds@mareichelt.de"
|
||||
APPROVED="Niels Horn"
|
19
system/ov51x-jpeg/slack-desc
Normal file
19
system/ov51x-jpeg/slack-desc
Normal file
|
@ -0,0 +1,19 @@
|
|||
# HOW TO EDIT THIS FILE:
|
||||
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||
# up the first '|' above the ':' following the base package name, and the '|'
|
||||
# on the right side marks the last column you can put a character in. You must
|
||||
# make exactly 11 lines for the formatting to be correct. It's also
|
||||
# customary to leave one space after the ':'.
|
||||
|
||||
|-----handy-ruler------------------------------------------------------|
|
||||
ov51x-jpeg: ov51x-jpeg (a kernel module with support for ov51x webcams)
|
||||
ov51x-jpeg:
|
||||
ov51x-jpeg:
|
||||
ov51x-jpeg:
|
||||
ov51x-jpeg:
|
||||
ov51x-jpeg:
|
||||
ov51x-jpeg:
|
||||
ov51x-jpeg:
|
||||
ov51x-jpeg: Homepage: http://www.rastageeks.org/ov51x-jpeg/
|
||||
ov51x-jpeg:
|
||||
ov51x-jpeg:
|
Loading…
Reference in a new issue