Linuxデバイスドライバ基礎①
クロスコンパイラでデバイスドライバをビルドする時のサンプルMakefileとスケルトン
まあ、簡単なので、特に説明なしです。
Makefile
KERNEL_SRC=${カーネルソースフォルダ} obj-m := hogehoge.o CROSS_COMPILE=arm-unknown-gnueabi- ※クロスコンパイラのプレフィックス ARCH=arm ※アーキテクチャ MAKE_CMD=$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) all: $(MAKE_CMD) -C $(KERNEL_SRC) -M $(PWD) modules clean: $(MAKE_CMD) -C $(KERNEL_SRC) -M $(PWD) clean
hogehoge.c
#include <linux/module.h> #include <linux/init.h> static init __init hoge_init(void) { printk("hello hoge_init\n"); return 0; } static void __exit hoge_exit(void) { printk("hoge goodby\n"); } module_init(hoge_init); module_exit(hoge_exit); MODULE_AUTHOR("keropo"); MODULE_DESCRIPTION("hogehoge"); MOUDLE_LICENSE("GPL");