Quantcast
Channel: Active questions tagged kernel - Stack Overflow
Viewing all articles
Browse latest Browse all 6502

Errors compiling an example kernel module

$
0
0

I am trying to compile an example module from the Linux Kernel Module Programming Guide but I keep getting the errors below:

make -C /lib/modules/4.15.0-54-generic/build M=/media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3 modules make[1]: Entering directory '/usr/src/linux-headers-4.15.0-54-generic' CC [M] /media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3/hello-3.o In file included from /media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3/hello-3.c:1:0: ./include/linux/module.h:129:42: error: redefinition of ‘inittest’
static inline initcall_t __maybe_unused __inittest(void) \ ^ /media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3/hello-3.c:18:1: note: in expansion of macro ‘module_init’ module_init(hello_3_exit); ^~~~~~~~~~~ ./include/linux/module.h:129:42: note: previous definition of ‘__inittest’ was here static inline initcall_t __maybe_unused __inittest(void) \ ^ /media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3/hello-3.c:17:1: note: in expansion of macro ‘module_init’ module_init(hello_3_init); ^~~~~~~~~~~ /media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3/hello-3.c: In function ‘__inittest’: /media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3/hello-3.c:18:13: error: return from incompatible pointer type [-Werror=incompatible-pointer-types] module_init(hello_3_exit); ^ ./include/linux/module.h:130:11: note: in definition of macro ‘module_init’ { return initfn; } \ ^~~~~~ /media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3/hello-3.c: At top level: ./include/linux/module.h:131:6: error: redefinition of ‘init_module’ int init_module(void) __attribute
((alias(#initfn))); ^ /media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3/hello-3.c:18:1: note: in expansion of macro ‘module_init’ module_init(hello_3_exit); ^~~~~~~~~~~ ./include/linux/module.h:131:6: note: previous definition of ‘init_module’ was here int init_module(void) attribute((alias(#initfn))); ^ /media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3/hello-3.c:17:1: note: in expansion of macro ‘module_init’ module_init(hello_3_init); ^~~~~~~~~~~ cc1: some warnings being treated as errors scripts/Makefile.build:337: recipe for target '/media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3/hello-3.o' failed make[2]: * [/media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3/hello-3.o] Error 1 Makefile:1552: recipe for target 'module/media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3' failed make[1]: * [module/media/aaron/GoogleDrive/School/CSC239/project/LKM/hello3] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-54-generic' Makefile:4: recipe for target 'all' failed make: *** [all] Error 2

Here are my source and make files:

#include <linux/module.h> /* Needed by all modules */
#include <linux/kernel.h> /* Needed for KERN_INFO */
#include <linux/init.h>

static int hello3_data __initdata = 3;

static int __init hello_3_init(void)
{
        printk(KERN_INFO "Hello world %d.\n", hello3_data);
        return 0;
}
static void __exit hello_3_exit(void)
{
        printk(KERN_INFO "Goodbye world 3.\n");
}

module_init(hello_3_init);
module_init(hello_3_exit);

Makefile:

obj-m := hello-3.o

all:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Any help is appreciated.


Viewing all articles
Browse latest Browse all 6502

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>