Linuxで.koファイルを作成する方法

Linuxで.koファイルを作成する方法

Linuxでデバイス用のドライバを作成しました。カーネルに挿入できるようにファイルを作成(使用gcc)する方法は?.ko

答え1

Makefileこのようなものを作成してください。

ifneq ($(KERNELRELEASE),)
obj-m   := mymodule.o
else
KDIR    := /lib/modules/$(shell uname -r)/build
PWD     := $(shell pwd)
all:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
install:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install
%:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $@
endif

モジュールのソースコードがあると仮定すると、mymodule.c実行するとmake生成されますmymodule.ko

答え2

短い答え:できません。 .koファイルはドライバソースのコンパイル済みバージョンではありません。カーネルビルドシステムには、(コンパイラバージョン、モジュールの依存関係...)などのいくつかの追加情報が含まれています。

必要なすべてのタスクを見つけるためにカーネルビルドシステムを詳しく調べることもできますが、そうしないでください。次のカーネルバージョン以降では、ほぼ確実に中断されます。提供されたmakefile ehemientを使用する必要があります。

関連情報