Hello, kernel world!
DebianとかUbuntuでカーネルモジュールを作ってみた
環境の準備
$ sudo aptitude build-dep linux-image-`uname -r` $ sudo aptitude install linux-headers-`uname -r`
まけふぃれ
$ mkdir hello_ko $ cd hello_ko $ vim Makefile
obj-m := hello.o KDIR := /usr/src/linux-headers-$(shell uname -r) PWD := $(shell pwd) all: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: $(MAKE) -C $(KDIR) M=$(PWD) clean
ソース
$ vim hello.c
#include <linux/module.h> #include <linux/kernel.h> static int __init hello_module_init( void ) { printk( KERN_INFO "Hello, kernel world!\n" ); return 0; } static void __exit hello_module_exit( void ) { printk( KERN_INFO "Good-bye, kernel world!\n" ); } module_init( hello_module_init ); module_exit( hello_module_exit ); MODULE_DESCRIPTION( "hello" ); MODULE_LICENSE( "GPL2" );
コンパイル
$ make
実行
$ sudo insmod hello.ko $ sudo rmmod hello $ dmesg | tail -n 2 [ 8683.550414] Hello, kernel world! [ 8691.297834] Good-bye, kernel world!
思ったより簡単なんでびびった。