I have reduced the amount of errors by changing paths:
#include <linux/io.h>
#include <linux/semaphore.h>
#include <asm-generic/page.h>
#include </usr/src/linux-2.6.30-fbcondecor/arch/x86/include/asm/uaccess.h>
#include <asm-generic/atomic.h>
This is what I am left with:
make -C /lib/modules/2.6.30-fbcondecor/build
SUBDIRS=/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224 CC=cc
modules
make[1]: Entering directory `/usr/src/linux-2.6.30-fbcondecor'
CC [M] /home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.o
In file included from
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c:845:
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/utils/spcausb.h:
In function ‘spca5xxRegRead’:
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/utils/spcausb.h:95:
error: implicit declaration of function ‘info’
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/utils/spcausb.h:
In function ‘spca_set_interface’:
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/utils/spcausb.h:278:
error: implicit declaration of function ‘warn’
In file included from
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c:853:
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/Sunplus-jpeg/sp5xxfw2.h:
In function ‘sp5xxfw2_init’:
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/Sunplus-jpeg/sp5xxfw2.h:122:
error: called object ‘info’ is not a function
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/Sunplus-jpeg/sp5xxfw2.h:136:
error: called object ‘info’ is not a function
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/Sunplus-jpeg/sp5xxfw2.h:141:
error: called object ‘info’ is not a function
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/Sunplus-jpeg/sp5xxfw2.h:148:
error: called object ‘info’ is not a function
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/Sunplus-jpeg/sp5xxfw2.h:176:
error: called object ‘info’ is not a function
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/Sunplus-jpeg/sp5xxfw2.h:
In function ‘sp5xxfw2_start’:
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/Sunplus-jpeg/sp5xxfw2.h:214:
error: called object ‘info’ is not a function
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/Sunplus-jpeg/sp5xxfw2.h:230:
error: called object ‘info’ is not a function
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c: In
function ‘spca5xx_ioctl’:
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c:2463:
error: implicit declaration of function ‘video_usercopy’
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c: At
top level:
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c:2609:
error: unknown field ‘owner’ specified in initializer
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c:2609:
warning: initialization from incompatible pointer type
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c:2611:
error: unknown field ‘type’ specified in initializer
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c:2615:
warning: initialization from incompatible pointer type
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c: In
function ‘spca50x_create_sysfs’:
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c:2769:
error: implicit declaration of function ‘video_device_create_file’
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c:2780:
error: implicit declaration of function ‘video_device_remove_file’
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c: In
function ‘spca5xx_probe’:
/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.c:4301:
error: incompatible types when assigning to type ‘struct device’ from
type ‘struct device *’
make[2]: ***
[/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224/gspca_core.o]
Error 1
make[1]: ***
[_module_/home/aaron/src/gspcav1-fbcondecor/src/gspcav1-20071224] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.30-fbcondecor'
make: *** [default] Error 2
==> ERROR: Build Failed.
Aborting...
Any more advice?
Heiko Baums wrote:
Am Wed, 8 Jul 2009 14:52:24 -0400
schrieb Aaron Lane <[email protected]>:
I tried adding that line:
build() {
cd $startdir/src/gspcav1-20071224
sed -i -e "s/KERNEL_VERSION = .*/KERNEL_VERSION = ${_kernver}/"
Makefile sed -i "s:asm\/semaphore.h:linux\/semaphore.h" gspca_core.c
<----- HERE make || return 1
I just see, that I made a few typos in the sed command. Maybe that's why
you still get the same error.
This is the correct one:
sed -i "s:asm\/semaphore\.h:linux\/semaphore\.h:g" gspca_core.c
The position of the sed command looks correct.
I started poking around in gspca_core.c, and I noticed several
inclusions that look like they should be changed from the asm
directory to the linux directory (I think one actually had a typo as
well), but I do not know how to work around the md5sums validity
checker.
To look for the existence and location of kernel header files just run
this command on the console:
find /usr/src/linux-2.6.30-fbcondecor -iname "*semaphore*"
Replace semaphore with parts of the other file names.
Then you can add more sed commands as you need.
To generate new md5sums just run this command:
makepkg -g
Cheers,
Heiko