non-static init in a basic kernel module

Warren Turkal wt at penguintechs.org
Mon Jun 9 03:28:13 EDT 2014


Hey,

I was writing a basic hello world module. I am using Ubuntu, so I 
installed linux-headers package that corresponded to my kernel. It's 
strange because all of the examples that I saw (including from modules 
in the kernel itself) show things like the following for the init function:

static int netcat_init(void)
{
     ...
     return 0;
}

module_init(netcat_init);

However, I was not able to get it to work with "static". My 
hello_world_init function looks like the following:

int __init hello_world_init(void)
{
     ...
     return 0;
}

module_init(hello_world_init);

The command that is used to make the kernel module is the one suggested 
in Documentation/kbuild/modules.txt. It looks like this:
make -C /lib/modules/`uname -r`/build M=$PWD

Does anyone know why the "static" version would not work?

Thanks,
wt



More information about the Kernelnewbies mailing list