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 <aarondrewlane@gmail.com>:
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