ビルドされたオブジェクト ファイルをリンクして .ko ファイルを生成したいのですが、「kbuild」システムで出荷されていることについて読みましたが、詳細が不十分です。
助けてください。
ビルドされたオブジェクト ファイルをリンクして .ko ファイルを生成したいのですが、「kbuild」システムで出荷されていることについて読みましたが、詳細が不十分です。
助けてください。
Kbuild システムは、コマンドですべてのオブジェクト ファイル ( *.o
) を削除しますmake clean
。.o
拡張子を に変更しない限り、外部オブジェクト ファイルも削除さ.o_shipped
れます。
次の例は、 を使用してモジュール内のオブジェクト ファイルをリンクするMakefile
方法を示しています。_shipped
8123_bin.o_shipped
8123.ko
ifneq ($(KERNELRELEASE),)
# kbuild part of makefile
obj-m := 8123.o
8123-y := 8123_if.o 8123_pci.o 8123_bin.o
else
# normal makefile
KDIR ?= /lib/modules/`uname -r`/build
default:
$(MAKE) -C $(KDIR) M=$$PWD
# Module specific targets
genbin:
echo "X" > 8123_bin.o_shipped
endif
基本的に、.o_shipped
ファイルはファイルと同じですが.o
、Kbuild システムはそれがそのまま提供されるバイナリ blob であり、そのソースがカーネル/モジュール ソース ディレクトリで利用できないことを認識します。したがって、*.o_shipped
ソースが消去されてもバイナリ BLOB は保持されます。