How2LinuxDriver
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[SiioLaboratory]]
*パラレルポートを読み書きするLinuxのデバイスドライバを作...
Linux kernel 2.6に対応した、パラレルポート(プリンタポー...
簡単なデバイスドライバを作ってみる。
参考ホームページ
- http://lwn.net/Articles/driver-porting/
-- kernel 2.5からの変更点の解説
- http://web.yl.is.s.u-tokyo.ac.jp/~sumii/linux/writing-l...
-- kernel 2.2(?)用で古いけどわかりやすい
- http://www.mech.tohoku-gakuin.ac.jp/rde/contents/linux/...
-- これも2.2用かな
** とりあえず何もしない超簡単な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で指定したメッセージが残っているはずである。
終了行:
[[SiioLaboratory]]
*パラレルポートを読み書きするLinuxのデバイスドライバを作...
Linux kernel 2.6に対応した、パラレルポート(プリンタポー...
簡単なデバイスドライバを作ってみる。
参考ホームページ
- http://lwn.net/Articles/driver-porting/
-- kernel 2.5からの変更点の解説
- http://web.yl.is.s.u-tokyo.ac.jp/~sumii/linux/writing-l...
-- kernel 2.2(?)用で古いけどわかりやすい
- http://www.mech.tohoku-gakuin.ac.jp/rde/contents/linux/...
-- これも2.2用かな
** とりあえず何もしない超簡単な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で指定したメッセージが残っているはずである。
ページ名: