0

ビルドされたオブジェクト ファイルをリンクして .ko ファイルを生成したいのですが、「kbuild」システムで出荷されていることについて読みましたが、詳細が不十分です。

助けてください。

4

1 に答える 1

0

Kbuild システムは、コマンドですべてのオブジェクト ファイル ( *.o) を削除しますmake clean.o拡張子を に変更しない限り、外部オブジェクト ファイルも削除さ.o_shippedれます。

次の例は、 を使用してモジュール内のオブジェクト ファイルをリンクするMakefile方法を示しています。_shipped8123_bin.o_shipped8123.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 は保持されます。

詳細については、Documentation/kbuild/modules.txtを参照してください。

于 2013-08-24T06:49:18.263 に答える