#author("2019-04-12T17:50:14+09:00","default:honma","honma")
#author("2019-04-15T10:52:08+09:00","default:honma","honma")
* Linuxデバイスドライバ開発 はじめの一歩 [#ya31929d]

何もしないデバイスドライバを書いてみる。~
ソースファイル名は skel_drv.c

#highlight(c){{
#include <linux/init.h>
#include <linux/module.h>

MODULE_LICENSE("GPL v2");

static int skel_init(void)
{
	pr_info("%s\n", __FUNCTION__);
	return 0;
}

static void skel_exit(void)
{
	pr_info("%s\n", __FUNCTION__);
}

module_init(skel_init);
module_exit(skel_exit);
}}
#highlight(end)

Makefileはシンプルに1行だけ
 obj-m := skel_drv.o

Makeの仕方は
 $ make -C /lib/modules/`uname -r`/build M=`pwd` modules

クリーンする方法は
 $ make -C /lib/modules/`uname -r`/build M=`pwd` modules clean

デバイス出来上がったデバイスドライバのロードは
 $ sudo insmod skel_drv.ko

アンロードは
 $ sudo rmmod skel_drv

実行確認
 $ dmesg | tail
  :
 [472924.981255] skel_drv: loading out-of-tree module taints kernel.
 [472924.984092] skel_drv: module verification failed: signature and/or required key missing - tainting kernel
 [472925.004224] skel_init
 [472936.566017] skel_exit

これだけで、デバイスドライバを作った気になれる。

[[ソースコード ダウンロード:http://www.chobits.com/pukiwiki/index.php?plugin=attach&pcmd=open&file=skel_drv_part1.tgz&refer=Linux%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E9%96%8B%E7%99%BA%20%E3%81%AF%E3%81%98%E3%82%81%E3%81%AE%E4%B8%80%E6%AD%A9]]

#htmlinsert(amazon_book.html);

** 目次 [#l12246ae]
-[[Linuxデバイスドライバ開発 準備編]]
-Linuxデバイスドライバ開発 はじめの一歩
-[[Linuxデバイスドライバ開発 makeを楽に]]
-[[Linuxデバイスドライバ開発 キャラクタデバイス]]
-[[Linuxデバイスドライバ開発 カーネルスレッド]]
-[[Linuxデバイスドライバ開発 デバイスクラス]]
-[[Linuxデバイスドライバ開発 デバイス]]
-[[Linuxデバイスドライバ開発 fops]]
-[[Linuxデバイスドライバ開発 ルールファイル]]
-[[Linuxデバイスドライバ開発 fops(2)]]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS