* problems compiling kernel module
@ 2006-04-19 13:44 Fernando Barsoba
2006-04-19 14:24 ` Erik Mouw
2006-04-19 14:26 ` Arjan van de Ven
0 siblings, 2 replies; 4+ messages in thread
From: Fernando Barsoba @ 2006-04-19 13:44 UTC (permalink / raw)
To: linux-kernel
Hi,
I am really stuck with this thing.. For couple of days i have been
trying to compile a kernel module. I have been following the info in
http://www.faqs.org/docs/kernel/x204.html. But no success... i
recompiled the latest kernel version, and i think i trying to compile
the module against the source code for that kernel.. however, strange
errors appear.
Please any help will be appreciated.
Here's the error:
Code:
[fbarsoba@localhost ~]$ cd workspace/kernel_tests/
[fbarsoba@localhost kernel_tests]$ make
gcc -O2 -DMODULE -D__KERNEL__ -W -Wall -Wstrict-prototypes
-Wmissing-prototypes -isystem /lib/modules/`uname -r`/build/include -c
-o hello-1.o hello-1.c
In file included from
/lib/modules/2.6.16.7/build/include/linux/spinlock.h:87, from
/lib/modules/2.6.16.7/build/include/linux/capability.h:45, from
/lib/modules/2.6.16.7/build/include/linux/sched.h:7, from
/lib/modules/2.6.16.7/build/include/linux/module.h:10, from hello-1.c:3:
/lib/modules/2.6.16.7/build/include/asm/spinlock.h: In function
‘__raw_spin_lock’:
/lib/modules/2.6.16.7/build/include/asm/spinlock.h:42: error: expected
‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/lib/modules/2.6.16.7/build/include/asm/spinlock.h: In function
‘__raw_read_lock’:
/lib/modules/2.6.16.7/build/include/asm/spinlock.h:96: error: expected
‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/lib/modules/2.6.16.7/build/include/asm/spinlock.h:96: error: expected
expression before ‘else’
/lib/modules/2.6.16.7/build/include/asm/spinlock.h: In function
‘__raw_write_lock’:
/lib/modules/2.6.16.7/build/include/asm/spinlock.h:101: error: expected
‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/lib/modules/2.6.16.7/build/include/asm/spinlock.h:101: error: expected
expression before ‘else’ In file included from
/lib/modules/2.6.16.7/build/include/linux/sched.h:20, from
/lib/modules/2.6.16.7/build/include/linux/module.h:10, from hello-1.c:3:
/lib/modules/2.6.16.7/build/include/asm/semaphore.h: In function ‘down’:
/lib/modules/2.6.16.7/build/include/asm/semaphore.h:112: error: expected
‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/lib/modules/2.6.16.7/build/include/asm/semaphore.h: In function
‘down_interruptible’:
/lib/modules/2.6.16.7/build/include/asm/semaphore.h:137: error: expected
‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/lib/modules/2.6.16.7/build/include/asm/semaphore.h: In function
‘down_trylock’:/lib/modules/2.6.16.7/build/include/asm/semaphore.h:161:
error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/lib/modules/2.6.16.7/build/include/asm/semaphore.h: In function ‘up’:
/lib/modules/2.6.16.7/build/include/asm/semaphore.h:184: error: expected
‘:’ or ‘)’ before ‘KBUILD_BASENAME’ make: *** [hello-1.o] Error 1
And here are the files:
Code:
/* hello-1.c - The simplest kernel module.
*/ #include <linux/module.h> /* Needed by all modules
*/ #include <linux/kernel.h> /* Needed for KERN_ALERT */
int init_module(void) {
printk("<1>Hello world 1.\n"); // A non 0 return means init_module
failed; module can't be loaded.
return 0;
}
void cleanup_module(void) {
printk(KERN_ALERT "Goodbye world 1.\n");
}
Code:
TARGET := hello-1
WARN := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
INCLUDE := -isystem /lib/modules/`uname -r`/build/include
CFLAGS := -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE} CC := gcc
${TARGET}.o: ${TARGET}.c
.PHONY: clean
clean: rm -rf {TARGET}.o
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: problems compiling kernel module
2006-04-19 13:44 problems compiling kernel module Fernando Barsoba
@ 2006-04-19 14:24 ` Erik Mouw
2006-04-19 14:59 ` Fernando Barsoba
2006-04-19 14:26 ` Arjan van de Ven
1 sibling, 1 reply; 4+ messages in thread
From: Erik Mouw @ 2006-04-19 14:24 UTC (permalink / raw)
To: Fernando Barsoba; +Cc: linux-kernel
On Wed, Apr 19, 2006 at 09:44:08AM -0400, Fernando Barsoba wrote:
> I am really stuck with this thing.. For couple of days i have been
> trying to compile a kernel module. I have been following the info in
> http://www.faqs.org/docs/kernel/x204.html. But no success... i
> recompiled the latest kernel version, and i think i trying to compile
> the module against the source code for that kernel.. however, strange
> errors appear.
That way just doesn't work. Use kbuild instead of brewing your own
Makefiles. See http://lwn.net/Articles/21823/ .
> And here are the files:
>
> Code:
>
> /* hello-1.c - The simplest kernel module.
> */ #include <linux/module.h> /* Needed by all modules
Not necessary, IIRC.
> */ #include <linux/kernel.h> /* Needed for KERN_ALERT */
OK...
> int init_module(void) {
> printk("<1>Hello world 1.\n"); // A non 0 return means init_module
... so why don't you use KERN_ALERT instead of <1>?
Make that printk(KERN_ALERT "Hello, world!\n");
> failed; module can't be loaded.
> return 0;
> }
>
> void cleanup_module(void) {
> printk(KERN_ALERT "Goodbye world 1.\n");
> }
>
>
> Code:
>
> TARGET := hello-1
> WARN := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
> INCLUDE := -isystem /lib/modules/`uname -r`/build/include
> CFLAGS := -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE} CC := gcc
> ${TARGET}.o: ${TARGET}.c
> .PHONY: clean
> clean: rm -rf {TARGET}.o
You want something like:
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
else
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
endif
Erik
--
+-- Erik Mouw -- www.harddisk-recovery.com -- +31 70 370 12 90 --
| Lab address: Delftechpark 26, 2628 XH, Delft, The Netherlands
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: problems compiling kernel module
2006-04-19 13:44 problems compiling kernel module Fernando Barsoba
2006-04-19 14:24 ` Erik Mouw
@ 2006-04-19 14:26 ` Arjan van de Ven
1 sibling, 0 replies; 4+ messages in thread
From: Arjan van de Ven @ 2006-04-19 14:26 UTC (permalink / raw)
To: Fernando Barsoba; +Cc: linux-kernel
On Wed, 2006-04-19 at 09:44 -0400, Fernando Barsoba wrote:
>
>
> I am really stuck with this thing.. For couple of days i have been
> trying to compile a kernel module. I have been following the info in
> http://www.faqs.org/docs/kernel/x204.html. But no success... i
> recompiled the latest kernel version, and i think i trying to compile
your makefile is bust; please read Documentation/kbuild for a 2.6 level
makefile (yours is a bad job even for 2.4 kernels but it'll more or less
work there)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: problems compiling kernel module
2006-04-19 14:24 ` Erik Mouw
@ 2006-04-19 14:59 ` Fernando Barsoba
0 siblings, 0 replies; 4+ messages in thread
From: Fernando Barsoba @ 2006-04-19 14:59 UTC (permalink / raw)
Cc: linux-kernel
Thanks a lot for your makefile. It worked nicely. I wasn't sure if the
question was too basic for this mailing list.
Thanks also for Arjan's reference to
http://fxr.watson.org/fxr/source/Documentation/kbuild/makefiles.txt?v=linux-2.6.9
I am new in kernel programming...
tnx,
Fernando
>From: Erik Mouw <erik@harddisk-recovery.com>
>To: Fernando Barsoba <fbarsoba@hotmail.com>
>CC: linux-kernel@vger.kernel.org
>Subject: Re: problems compiling kernel module
>Date: Wed, 19 Apr 2006 16:24:42 +0200
>
>On Wed, Apr 19, 2006 at 09:44:08AM -0400, Fernando Barsoba wrote:
> > I am really stuck with this thing.. For couple of days i have been
> > trying to compile a kernel module. I have been following the info in
> > http://www.faqs.org/docs/kernel/x204.html. But no success... i
> > recompiled the latest kernel version, and i think i trying to compile
> > the module against the source code for that kernel.. however, strange
> > errors appear.
>
>That way just doesn't work. Use kbuild instead of brewing your own
>Makefiles. See http://lwn.net/Articles/21823/ .
>
> > And here are the files:
> >
> > Code:
> >
> > /* hello-1.c - The simplest kernel module.
> > */ #include <linux/module.h> /* Needed by all modules
>
>Not necessary, IIRC.
>
> > */ #include <linux/kernel.h> /* Needed for KERN_ALERT */
>
>OK...
>
> > int init_module(void) {
> > printk("<1>Hello world 1.\n"); // A non 0 return means init_module
>
>... so why don't you use KERN_ALERT instead of <1>?
>
>Make that printk(KERN_ALERT "Hello, world!\n");
>
> > failed; module can't be loaded.
> > return 0;
> > }
> >
> > void cleanup_module(void) {
> > printk(KERN_ALERT "Goodbye world 1.\n");
> > }
> >
> >
> > Code:
> >
> > TARGET := hello-1
> > WARN := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
> > INCLUDE := -isystem /lib/modules/`uname -r`/build/include
> > CFLAGS := -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE} CC := gcc
> > ${TARGET}.o: ${TARGET}.c
> > .PHONY: clean
> > clean: rm -rf {TARGET}.o
>
>You want something like:
>
>ifneq ($(KERNELRELEASE),)
>obj-m := hello.o
>else
>KDIR := /lib/modules/$(shell uname -r)/build
>PWD := $(shell pwd)
>
>default:
> $(MAKE) -C $(KDIR) M=$(PWD) modules
>endif
>
>
>Erik
>
>--
>+-- Erik Mouw -- www.harddisk-recovery.com -- +31 70 370 12 90 --
>| Lab address: Delftechpark 26, 2628 XH, Delft, The Netherlands
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-04-19 15:00 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-19 13:44 problems compiling kernel module Fernando Barsoba
2006-04-19 14:24 ` Erik Mouw
2006-04-19 14:59 ` Fernando Barsoba
2006-04-19 14:26 ` Arjan van de Ven
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.