Build linux modules

Table of Contents

Source codes download.

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

Author: Shi Shougang

Created: 2015-03-05 Thu 23:20

Emacs 24.3.1 (Org mode 8.2.10)

Validate