Linuxドライバー超サンプル

何の機能も無いが、とりあえずドライバーとして組み込めるモジュールを作ってみる。

確認環境

  • CentOS5.5(Intel64)

モジュールのソースコード(ファイル名はtoy_mod.c)

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
static int toy_mod_init(void)
{
       return 0;
}
static void toy_mod_exit(void)
{
}
module_init(toy_mod_init);
module_exit(toy_mod_exit);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("toy module: no function, no action");
MODULE_AUTHOR(“Nekooyaji”);

Makefile

obj-m := toy_mod.o

コンパイル方法

# make -C /lib/modules/$(uname -r)/build SUBDIRS=$PWD modules

モジュール組み込み

# /sbin/insmod toy_mod.ko
# /sbin/lsmod | grep toy
toy_mod                34304  0

モジュール取り外し

# /sbin/rmmod toy_mod
# /sbin/lsmod | grep toy

メモ

  • MODULE_DESCRIPTION、MODULE_AUTHORは動作上必須ではない
  • MODULE_LICENSEを設定しない場合、insmod時に下記メッセージが/var/log/messagesに発生
    toy_mod: module license 'unspecified' taints kernel.

コメント