「カーネルソースコード解析(a)の構成とコンパイルプロセス。」

1.カーネルの設定とコンパイル

CPアーチ/腕/のconfigs / xx_defconfigの.config 
menuconfigを作るには
uImageを作ります

 

2.カーネルの設定とコンパイルプロセスを理解します

  カーネルのコンフィギュレーション中には、ファイルの.configを生成します。

  一例として、カードにDM9000:

  .configで「CONFIG_DM9000 = Y」で見つけることができ、これは、このモジュールがカーネルにコンパイルされることを意味します。ファイルの.koブロックにコンパイルされます「CONFIG_DM9000 = m」は、動的にカーネルにロードすることができます。

  最上位ディレクトリのカーネルを見つけるためにCONFIG_DM9000:

grepのCONFIG_DM9000    -rn。なぜ含ま下に何かアドバイスを見つけるません

  4つの文書がある見ることができるようにARMアーキテクチャに含めます

  • アーチ/アーム/ PLAT-s3c24xx / commod-smdk.c(C源)
  • ドライバー/ネット/ Makefileの(サブディレクトリのmakefile)
  • 含める/設定/ auto.confg
  • / Linuxの/をautoconf.hが含まれます

  オープン/ドライバ/ネット/ Makefie。あなたは、 " - $(CONFIG_DM9000)+ = dm9000.o OBJ" を見つけることができます。$(CONFIG_DM9000)は、定義CONFIG_DM9000がdm9000.oをコンパイルするかどうかを決定することを意味します。マクロで定義されている間Auto.confは、auto.confに「CONFIG_DM9000 = Y」、それはOBJ-Y + = dm9000.oに拡張することができるように、メイクファイルを見ることができます。これは、モジュールがカーネルにコンパイルすることを意味します。「CONFIG_DM9000 = M」場合は、モジュールがの.koファイルにコンパイルされます。auto.confは最終的にトップレベルのMakefileに含まれます。

  したがって、/設定/ auto.confマクロがMakefileの内部に定義されているが含まれます。

  ヘッダファイルをautoconf.hので、Cのソースが使用されていることは明らかです。様々なマクロ定義の定義があります。

  生成されたときとをautoconf.hとauto.confときはmake menuconfigを。

  概要:menuconfigのは-----> auto.confとをautoconf.hを発生させます

     auto.conf ----->モジュールをコンパイルするかどうかを決定するためのMakefile(yはカーネルにコンパイルされたときには、mは場合コンパイルされたモジュールです)

     autoconf.h -----> Cは、ソースの時間は、ソースマクロ定義は、関連を定義します

 

おすすめ

転載: www.cnblogs.com/zhuangquan/p/11461249.html