Problem with module spanning from multiple files
aleksey
lexa at cfotr.com
Wed Jul 18 04:40:52 EDT 2012
Hi Philipp.
On Wed, 2012-07-18 at 10:14 +0200, Philipp Ittershagen wrote:
> Hi aleksey,
>
> On Wed, Jul 18, 2012 at 9:34 AM, aleksey <lexa at cfotr.com> wrote:
> > test.c:
> > #include <linux/kernel.h>
> > #include <linux/module.h>
> >
> > int my_module_init(void)
> > {
> > pr_emerg("Hello, world - this is the kernel speaking\n" ) ;
> > return 0;
> > }
> >
> > MODULE_DESCRIPTION("test driver" ) ;
> > MODULE_LICENSE("GPL v2" ) ;
> > MODULE_VERSION("0.1" ) ;
> >
> > module_init(my_module_init) ;
> > module_exit(my_module_exit) ;
>
> this should not compile. How does the compiler know the symbol "my_module_exit"?
>
I'm terribly sorry by this mistake. i rewrite my code, now it look like:
test.c:
#include <linux/kernel.h>
#include <linux/module.h>
#include "test_sub.h"
int my_module_init(void)
{
pr_emerg("Hello, world module is loading\n");
print_message();
return 0;
}
void my_module_exit(void)
{
pr_emerg("Short is the life of a kernel module\n");
}
MODULE_DESCRIPTION("test driver");
MODULE_LICENSE("GPL v2");
MODULE_VERSION("0.1");
module_init(my_module_init);
module_exit(my_module_exit);
test_sub.h:
void print_message(void);
test_sub.c:
#include <linux/kernel.h>
#include <linux/module.h>
void print_message(void)
{
pr_emerg("This is the message from kernel module\n");
}
Makefile:
obj-m = test.o
test-objs = test_sub.o
all:
$(MAKE) -C $(KDIR) M=$(shell pwd) modules
But the problem is stay. i don't receive any message on module load.
> Greetings,
>
> Philipp
More information about the Kernelnewbies
mailing list