モジュール ビルドの出力をリダイレクトして、アーティファクトをソースから分離したいと考えています。
私のメイクファイルは次のようになります。
obj-m += hello-1.o
all:
make ARCH=arm CROSS_COMPILE=arm-eabi- -C /work/TI-Android-ICS-4.0.3_AM37x_3.0.0/kernel M=$(PWD) modules
clean:
make ARCH=arm CROSS_COMPILE=arm-eabi- -C /work/TI-Android-ICS-4.0.3_AM37x_3.0.0/kernel M=$(PWD) clean
モジュールの出力がたまたまソース ディレクトリにあることを除いて、これは正しく機能します。各行に O={path to my output dirctory} を追加しようとしましたが、次のようなものでビルドに失敗しました...
エラー: カーネル構成が無効です。include/generated/autoconf.h または include/config/auto.conf がありません。修正するには、カーネル src で「make oldconfig && make prepare」を実行します。
警告: シンボル バージョン ダンプ /work/development/linux/driver/blah/Module.symvers がありません。モジュールには依存関係や modversion はありません。
これは、モジュール ビルドで使用されるカーネル ビルドからの出力ファイルが存在し、出力ディレクトリを "O=" で変更すると、それと衝突するという事実に起因すると思われます。
既存のビルド インフラストラクチャを使用してこれを達成する方法はありますか?