Linux kernel 2.6に対応した、パラレルポート(プリンタポート)を読み書きする 簡単なデバイスドライバを作ってみる。
参考ホームページ
適当なディレクトリに以下のようなhello.cを作る。
#include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_ALERT "Hello, world?n"); return 0; } static void hello_exit(void) { printk(KERN_ALERT "Goodbye, cruel world?n"); } module_init(hello_init); module_exit(hello_exit);
同じ場所に以下のようなMakefileをつくる。(default:の次の行の行頭はタブであること)
ifneq ($(KERNELRELEASE),) obj-m := hello.o else KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules endif
そこでmakeすると、hello.koが出来る。
suになって、
/sbin/insmod hello.ko
とするとモジュールがロードされる。
/sbin/rmmod hello.ko
とするとモジュールがアンロードされる。
cat /var/log/message
を見ると、最後の方に、 printkで指定したメッセージが残っているはずである。