|
From: Dipti R. T. <di...@in...> - 2006-10-24 11:12:10
|
Hi,
As per my knowledge kernel module can not access to a library
function. Library function are only accessible to user level program.
Module can access exported symbol only.
Regards
Dipti Ranjan Tarai
Matthias Fechner wrote:
> Hi,
>
> I tried today to link a lib (.a) to my kernel module but I could not
> found howto do it.
> I prepared a little example:
> hello.c:
> #include <linux/kernel.h>
> #include <linux/module.h>
> #include <linux/io.h>
> #include <linux/version.h>
> #include "hello_lib.h"
>
> MODULE_LICENSE("GPL");
>
> int init_module(void)
> {
> printHello();
> return 0;
> }
>
> void cleanup_module(void)
> {
> printk("remove module\n");
> return;
> }
>
> hello_lib.c:
> int helloWorld(void)
> {
> printk("Hello World\n");
> return 0;
> }
>
> hello_lib.h:
> int helloWorld(void);
>
> Makefile:
> KDIR := /lib/modules/$(shell uname -r)/build
> PWD := $(shell pwd)
> EXTRA_CFLAGS+=-I/usr/home/idefix/programming/kernel_hello_world_lib/
>
> obj-m := hello.o
> hello-obj := hello.o libarinc653.a
>
> all:
> gcc -c -o hello_lib.o hello_lib.c
> rm -f libhello_lib.a
> ar cru libhello_lib.a hello_lib.o
> $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
>
> Can please someone help me here?
>
> Thx a lot,
> Matthias
>
>
|