$ sudo apt-get install gcc
$ sudo apt-get install kernel-package
$ sudo apt-get install make
Make and switch to a fold for your works. Create a c program, hello.c, and Makefile file. Please notice that both hello.c and Makefile have to be in the same folder.
hello.c
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/sched.h>
static int __init hello_init(void)
{
printk(KERN_INFO "Hello World! pid = %d\n", current->pid);
return 0;
}
static void __exit hello_exit(void)
{
printk(KERN_INFO "Hello Bye!\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Linux-Buddy: linux-buddy.blogspot.com");
MODULE_DESCRIPTION("Test Module: Hello World");
MODULE_VERSION("1.0");
Makefile
obj-m += hello.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
Make the kernel module by enter the command:
$ make
Then insert the module with:
$ sudo insmod hello.ko
You can use the dmesg to view the kermel message printed by the code printk() in c program.
$ dmesg
List installed modules:
$ lsmod
To remove the module:
$ sudo rmmod hello.ko