All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.