1

カーネル ツリーの外部で LKM を使用しており、MYLKM_CONFIG_{something} などのモジュールのコンパイル オプションを使用したいと考えています。これは、C の前処理 (#define // #ifdef // #endif) を使用して実行できることを知っています。しかし、その目的でKbuild(Kconfigファイルまたは関連するもの)を使用することは可能ですか?..

そしてもう1つ質問です。make menuconfigカーネルツリー全体ではなく、モジュールのみを対象にすることはできますか?

ありがとう。

4

1 に答える 1

0

ツリーの外でドライバを構築するために推奨される方法を使用する場合 (第 2 章の ldd を参照)、コマンドは次のようになります。

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

このコマンドの効果は 2 つあります。

  1. -C オプションは、現在のディレクトリを$(KERNELDIR)メイン カーネルの Makefile がある場所に変更します。
  2. -M オプションを指定すると、makefile は現在のモジュール dev ディレクトリ$(PWD)に戻り、そこでモジュール ターゲットをビルドしようとします。

したがって、.config を から$(KERNELDIR)にコピーすると$(PWD)、それは Makefile によって解析され、すべての CONFIG_LKM_* #defines が利用可能になるはずです (ただし、テストされていませんが、論理的に聞こえます)。

質問についてはmake menconfig、上記の説明に関して、ディレクトリにいくつかの KConfig ファイルを追加すると機能する可能性があります$(PWD)

于 2011-05-20T09:08:18.197 に答える