Linux device driver
linux driver tutorial
非常に分かりやすいpi用device driver開発チュートリアルがあったので、参考に。
環境準備
sudo apt-get install raspberrypi-kernel-headers
上記により、下記にヘッダーが、 /usr/src/linux-headers-4.9.41-v7+
シンボリックリンクが下記に作られる。 lib/modules/4.9.41-v7+/build
Makefile
先にMakefile。obj-m に指定しているのが、作成されるtest.koの元になるオブジェクトファイル。
obj-m := test.o all: make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) clean
最低限のドライバ
test.c
#include <linux/module.h> static int test_init(void) { printk("test init¥n"); return 0; } static void test_exit(void) { printk("test exit¥n"); } module_init(test_init); module_exit(test_exit);
動作確認
make sudo insmod test.ko sudo rmmod test.ko dmesg [ 5456.268241] test init [ 5459.046564] test exit