To jest moja poropozycja na rozwiązanie pwcxa w kernelu:
Moduł pwc ten z linusowego kernela niech zostanie nietknięty
(i wyrzucić z config-{up,smp} CONFIG_USB_PWCX=m bo to trochę zmienia moduł pwc.ko)
A pwc zdolnego do używania pwcx kompilować w pakiecie, potem przed instalacją
będzie on zastępował starego pwc.ko a po odinstalowaniu będzie go spowrotem 
dawał na miejsce.
Ewentualnie można też kompilować już w kernelu pwc.ko z obsługą pwcxa
(CONFIG_USB_PWCX=m w config) a moduł pwcx w osobnym pakiecie,
tylko należy pamiętać żeby pwc w ketnelu był >= 9.0 bo inne
nie są kompatybilne w kernelach 2.6 z pwcx'em.

Pewnie bredzę a wy już o tym wszystkim wiecie, no ale to nic :D

Proszę przynajmniej o rozwarzenie tego pomysłu.

Budowanie na innych architekturach niż ix86 raczej jest do poprawki.

Sparky{PI]
# $Revision:$, $Date:$
%bcond_without  dist_kernel     # without distribution kernel
%bcond_without  smp
%bcond_with     verbose

%define         _ver_major      9
%define         _pwcx_ver_minor 0
%define         _pwc_ver_minor  0.1

%define         _pwcx_ver       %{_ver_major}.%{_pwcx_ver_minor}
%define         _pwc_ver        %{_ver_major}.%{_pwc_ver_minor}

%define         _for_kernel     2.6

Summary:        Linux decompressor module for Philips webcams
Summary(pl):    Moduł dekompresora dla kamer Philipsa
Group:          Base/Kernel
Name:           kernel-usb-media-pwcx
Version:        %{_pwc_ver}
%define _rel    1
Release:        [EMAIL PROTECTED]
License:        Philips B.V.
Vendor:         Nemosoft Unv.
Source0:        http://www.smcc.demon.nl/webcam/pwc-%{version}.tar.gz
# Source0-md5:  421476a59ed54ce3b374b0043060e354
Source1:        http://www.smcc.demon.nl/webcam/pwcx-%{_pwcx_ver}.tar.gz
# Source1-md5:  73907e7e1ae7c311553182569ce6ab1c
URL:            http://www.smcc.demon.nl/webcam/
BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
ExclusiveArch:  %{ix86} x86_64 ppc
%{?with_dist_kernel:BuildRequires: kernel-module-build }
%{?with_dist_kernel:%requires_releq_kernel_up}
Requires(post,postun):  /sbin/depmod

%description
Decompresor module for Philips webcams, this allows you to use higher
resoluwion and framerate. Working cameras: Philips: PCA645VC and
646VC, "Vesta", "Vesta Pro", "Vesta Scan", "ToUCam XS" (PCVC720K/40,
/20 is supported by ov511), "ToUCam Fun", "ToUCam Pro", "ToUCam Scan",
"ToUCam II", "ToUCam Pro II"; Askey VC010; Creative Labs Webcam: 5
(the old one; USB Product ID: 0x400C) and Pro Ex Logitech QuickCam
3000 Pro, 4000 Pro, Notebook Pro, Zoom and Orbit/Sphere; Samsung
MPC-C10 and MPC-C30; Sotec Afina Eye; Visionite VCS UM100 and VCS
UC300


%description -l pl
Moduł dekompresujący obraz z kamer na chipie Philipsa, umożliwia to
uzyskanie większej rozdzielczości i ilości klatek. Działające kamery:
Philips: PCA645VC and 646VC, "Vesta", "Vesta Pro", "Vesta Scan",
"ToUCam XS" (PCVC720K/40, K/20 dzjała z ov511), "ToUCam Fun", "ToUCam
Pro", "ToUCam Scan", "ToUCam II", "ToUCam Pro II"; Askey VC010;
Creative Labs Webcam: 5 (stary typ; USB Product ID: 0x400C) i Pro Ex
Logitech QuickCam 3000 Pro, 4000 Pro, Notebook Pro, Zoom i
Orbit/Sphere; Samsung MPC-C10 and MPC-C30; Sotec Afina Eye; Visionite
VCS UM100 i VCS UC300


%if %{with smp}
%package -n kernel-smp-usb-media-pwcx
Summary:        Linux decompressor module for Philips webcams for SMP kernels
Summary(pl):    Moduł dekompresora dla kamer Philipsa do kerneli SMP
Release:        [EMAIL PROTECTED]
Group:          Base/Kernel
%{?with_dist_kernel:BuildRequires: kernel-module-build }
%{?with_dist_kernel:%requires_releq_kernel_smp}
Requires(post,postun):  /sbin/depmod

%description -n kernel-smp-usb-media-pwcx
Decompresor module for Philips webcams for SMP kernel, this allows you
to use higher resoluwion and framerate. Working cameras: Philips:
PCA645VC and 646VC, "Vesta", "Vesta Pro", "Vesta Scan", "ToUCam XS"
(PCVC720K/40, /20 is supported by ov511), "ToUCam Fun", "ToUCam Pro",
"ToUCam Scan", "ToUCam II", "ToUCam Pro II"; Askey VC010; Creative
Labs Webcam: 5 (the old one; USB Product ID: 0x400C) and Pro Ex
Logitech QuickCam 3000 Pro, 4000 Pro, Notebook Pro, Zoom and
Orbit/Sphere; Samsung MPC-C10 and MPC-C30; Sotec Afina Eye; Visionite
VCS UM100 and VCS UC300

%description -n kernel-smp-usb-media-pwcx -l pl
Moduł do kerneli SMP dekompresujący obraz z kamer na chipie Philipsa,
umożliwia to uzyskanie większej rozdzielczości i ilości klatek.
Działające kamery: Philips: PCA645VC and 646VC, "Vesta", "Vesta Pro",
"Vesta Scan", "ToUCam XS" (PCVC720K/40, K/20 dzjała z ov511), "ToUCam
Fun", "ToUCam Pro", "ToUCam Scan", "ToUCam II", "ToUCam Pro II"; Askey
VC010; Creative Labs Webcam: 5 (stary typ; USB Product ID: 0x400C) i
Pro Ex Logitech QuickCam 3000 Pro, 4000 Pro, Notebook Pro, Zoom i
Orbit/Sphere; Samsung MPC-C10 and MPC-C30; Sotec Afina Eye; Visionite
VCS UM100 i VCS UC300

%endif


%package -n libpwcx
Summary:        Library libpwcx.a for external image decompression.
Summary(pl):    Biblioteka libpwcx.a służąza do dekompresji poza jądrem.
Group:          Development/Libraries
Requires(post,postun):  /sbin/ldconfig

%description -n libpwcx
Library libpwcx.a for image decompression from camera out of linux's
kernel, for example in a program on annother computer.
+ source of testpwcx

%description -n libpwcx -l pl
Boblioteka libpwcx.a służąca do dekompresji danych z kamery poza
jądrem linuxa, np. w programie to potrafiącym na innym komputerze.
+ kod programu testpwcx


%prep
%setup -q -b 1 -q -n pwcx-%{_pwcx_ver}
mv x86 i386
mv powerpc ppc


%build
#cofigure
mv ../pwc-%{_pwc_ver}/%{_for_kernel}/* ./
cp %{_target_base_arch}/libpwcx.a ./
mv pwcx/* ./
cat << EOF > Makefile
pwc-objs        := pwc-if.o pwc-misc.o pwc-ctrl.o pwc-uncompress.o
pwcx-objs       := pwcx-glue.o libpwcx.a
obj-m   := pwc.o
obj-m   += pwcx.o
CFLAGS += -DCONFIG_USB_PWCX -DCONFIG_USB_PWCX_MODULE
EOF

#make
for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
        if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
                exit 1
        fi
        rm -rf include
        install -d include/{linux,config}
        ln -sf %{_kernelsrcdir}/config-$cfg .config
        ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h include/linux/autoconf.h
        ln -sf %{_kernelsrcdir}/include/asm-%{_target_base_arch} include/asm
        touch include/config/MARKER
        %{__make} -C %{_kernelsrcdir} clean modules \
                RCS_FIND_IGNORE="-name '*.ko' -o -name libpwcx.a -o" \
                M=$PWD O=$PWD \
                %{?with_verbose:V=1}
        mv pwc{,-$cfg}.ko
        mv pwcx{,-$cfg}.ko
done



%install
rm -rf $RPM_BUILD_ROOT

install -d $RPM_BUILD_ROOT%{_prefix}/lib
install -m 755 libpwcx.a $RPM_BUILD_ROOT%{_prefix}/lib
install -d $RPM_BUILD_ROOT%{_prefix}/src/examples
cp -rf testpwcx $RPM_BUILD_ROOT%{_prefix}/src/examples/
install README $RPM_BUILD_ROOT%{_prefix}/src/examples/testpwcx/

install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/kernel/drivers/usb/media
install pwc-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
        $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/kernel/drivers/usb/media/pwc.ko
install pwcx-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
        $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/kernel/drivers/usb/media/pwcx.ko
%if %{with smp} && %{with dist_kernel}
install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/kernel/drivers/usb/media
install pwc-smp.ko \
        $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/kernel/drivers/usb/media/pwc.ko
install pwcx-smp.ko \
        $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/kernel/drivers/usb/media/pwcx.ko
%endif


%clean
rm -rf $RPM_BUILD_ROOT

%pre
if [ -r /lib/modules/%{_kernel_ver}/kernel/drivers/usb/media/pwc.ko ]; then
        mv /lib/modules/%{_kernel_ver}/kernel/drivers/usb/media/pwc.ko{,-old}
fi

%post
%depmod %{_kernel_ver}

%postun
if [ -r /lib/modules/%{_kernel_ver}/kernel/drivers/usb/media/pwc.ko-old -a ! -r 
/lib/modules/%{_kernel_ver}/kernel/drivers/usb/media/pwc.ko[.]* ]; then
        # if there is pwc.ko-old and isn't pwc.ko or pwc.ko.* (there shouldn't
        # be more pwc.ko* than pwx.ko-old and one of: pwc.ko, pwc.ko.gz)
        mv /lib/modules/%{_kernel_ver}/kernel/drivers/usb/media/pwc.ko{-old,}
fi
%depmod %{_kernel_ver}

%if %{with smp} && %{with dist_kernel}
%pre -n kernel-smp-usb-media-pwcx
if [ -r /lib/modules/%{_kernel_ver}smp/kernel/drivers/usb/media/pwc.ko ]; then
        mv /lib/modules/%{_kernel_ver}smp/kernel/drivers/usb/media/pwc.ko{,-old}
fi

%post -n kernel-smp-usb-media-pwcx
%depmod %{_kernel_ver}

%postun -n kernel-smp-usb-media-pwcx
if [ -r /lib/modules/%{_kernel_ver}/kernel/drivers/usb/media/pwc.ko-old -a ! -r 
/lib/modules/%{_kernel_ver}/kernel/drivers/usb/media/pwc.ko[.]* ]; then
        mv /lib/modules/%{_kernel_ver}/kernel/drivers/usb/media/pwc.ko{-old,}
fi
%depmod %{_kernel_ver}
%endif

%post -n libpwcx -p /sbin/ldconfig
%postun -n libpwcx -p /sbin/ldconfig


%files
%defattr(644,root,root,755)
%doc README philips.txt
%attr(644,root,root) /lib/modules/%{_kernel_ver}/kernel/drivers/usb/media/*

%if %{with smp} && %{with dist_kernel}
%files -n kernel-smp-usb-media-pwcx
%defattr(644,root,root,755)
%doc README philips.txt
%attr(644,root,root) /lib/modules/%{_kernel_ver}smp/kernel/drivers/usb/media/*
%endif

%files -n libpwcx
%defattr(644,root,root,755)
%attr(755,root,root) %{_prefix}/lib/libpwcx.a
%attr(755,root,root) %{_prefix}/src/examples/testpwcx/
%attr(644,root,root) %{_prefix}/src/examples/testpwcx/*


%define date    %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
%changelog
* %{date} PLD Team <[EMAIL PROTECTED]>
All persons listed below can be reached at <cvs_login>@pld-linux.org

$Log:$
_______________________________________________
pld-devel-pl mailing list
[EMAIL PROTECTED]
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl

Odpowiedź listem elektroniczym