#author("2019-04-15T16:06:40+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)]] -[[Linuxデバイスドライバ開発 fops(3)]]