Linuxソースツリー(3.18.0-rc6)の外部から基本モジュールを構築しようとしています。ビルド時にスクリプトが見つからないというエラーが発生します。
私のディレクトリ設定は次のとおりです
mymodule/
src/
file.c
linux/
.git/
# rest of the source tree
私は実行しています:make -C ../linux SUBDIRS=$(pwd)/src modules
私のモジュールで。
実際のエラーは次のとおりです。
make: Entering directory '/home/me/linux'
Building modules, stage 2.
MODPOST 1 modules
/bin/sh: scripts/mod/modpost: No such file or directory
scripts/Makefile.modpost:90: recipe for target '__modpost' failed
make[1]: *** [__modpost] Error 127
Makefile:1384: recipe for target 'modules' failed
make: *** [modules] Error 2
make: Leaving directory '/home/me/linux'
Makeにlinux /でスクリプトを検索させる設定はありますか?
ベストアンサー1
カーネルモジュールを構築するには、解凍したカーネルソースコード以上が必要です。カーネルのビルド中に生成されるいくつかのコンパニオンプログラムとヘッダファイルが必要です。 makefileが正しい場所を探していますが、modpost
まだ見つかりませんでした。ディストリビューションは通常、名前付きパッケージに入れます。linux-headers-VERSION
kernel-headers-VERSION
まず、カーネルを設定する必要があります。カーネルバージョンとカーネル構成は、モジュールを実行するカーネルと一致する必要があります。このファイルをどこかからインポートした場合は、.config
カーネルディレクトリにコピーしてください。次に、追加モジュールをビルドするために必要なファイルをビルドするには、カーネルソースディレクトリで次のコマンドを実行します。
make modules_prepare
その後、モジュールのソースディレクトリに移動して実行できます。
make -C ../linux M=$PWD/src
バラより外部モジュールの構築カーネルドキュメント()Documentation/kbuild/modules.txt
で詳しく学んでください。