Build linux modules
Table of Contents
Install kernel headers on Ubuntu
$ sudo apt-get install linux-headers-$(uname -r)
Hello world module
#include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("\"Hello, world!\" minimal module"); static int __init hello_init(void) { printk(KERN_INFO "hello world called\n"); return 0; } static void __exit hello_exit(void) { printk(KERN_INFO "goodbuy hello world\n"); } module_init(hello_init); module_exit(hello_exit);
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 and install
$make $sudo insmod ./hello.ko $dmesg | tail [10686.033039] hello world called $sudo rmmod hello $dmesg | tail goodbuy hello world