1: #include <linux/init.h> //specify initialization and
cleanup functions
2: #include <linux/module.h> //definitions of symbols and
functions
3: static int hello_module_init(void)
4: {
5: printk("Insert
Module\n");
6: return 0;
7: }
8: static void int hello_module_exit(void)
9: {
10: printk("Exit Module\n");
11:
}
12:
module_init(helllo_moddule_init);
13: module_exit(hello_module_exit);
14:
MODULE_LICESNSE(“GPL”);
This module has two functions namely ‘hello_module_init’ and ‘hello_module_exit’. When the module is inserted to the kernel, hello_module_init function will be invoked. When the module is removed from the kernel hello_module_exit function is invoked.
Here
you will find some functions that are defined in the Linux kernel. ‘printk’
is such a function and it has a same behavior like the ‘printf’ function
in the standard C library. One main usage of having such ‘printk’
statements is that we can check whether the module is properly inserted to (or
removed from) the kernel or not.
MODULE
_LICENSE is a special macro that is used to indicate that the module bears a
free license. (macro - a code segment)
Let’s
see the procedure of inserting the module to the kernel.
First
we have to ‘make’ the file and generate .ko file
- Create a
simple text file which says ‘obj-m := hello.o’ and save it as
Makefile.
- Go to the
terminal.
- To compile
the module type the command ‘$ make –C
/usr/src/<kernel_version> M=pwd modules’
- This will
generate ‘hello.ko’ file.
- To insert
the module ‘# insmod hello.ko’.
- This will
print the message ‘Init Module’ to the kernel.
- If you want
to see the inserted modules, type the command ‘# lsmod’. This
will list all the modules.
- To remove
the module ‘# rmmod hello’.
- This will print
the message ‘Exit Module’ to the kernel.
- These messages are printed to the kernel log. In order to see the messages type ‘# dmesg’ . This will show the messages that we put to the kernel.
No comments:
Post a Comment