SiioLaboratory

パラレルポートを読み書きするLinuxのデバイスドライバを作る(未完です)

Linux kernel 2.6に対応した、パラレルポート(プリンタポート)を読み書きする 簡単なデバイスドライバを作ってみる。

参考ホームページ

とりあえず何もしない超簡単なKernelのローダブルモジュールを作ってみる

適当なディレクトリに以下のような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で指定したメッセージが残っているはずである。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-11-18 (水) 20:52:08