Linuxカーネルビルド設定を自動化するためにmake menuconfigスクリプトを書く方法は?

Linuxカーネルビルド設定を自動化するためにmake menuconfigスクリプトを書く方法は?

Linuxビルドを自動化したいのですが、最終的には非常に受動的なステップのように見えるステップを実行する必要がありますmake menuconfig。これは、OSとカーネル構成間の構成を同期するようです。

cp git-tracked-config .config
make defconfig 
make menuconfig # <- how to automate/script this?
make V=s

make menuconfigデフォルトでは、ビルドスクリプト呼び出しをどのように削除しますか?

ところで、これはmake menuconfigを呼び出さずに実行したときに発生するように見えるビルドエラーへの応答です。

make[1]: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'.  Stop.

メイクファイル自体が存在しないか、メイクファイルがルールを含むように作成/変更されていないため、メイクファイルにルールが欠落しているようです。しかし、これは別の問題です。

この問題を一緒に解決するより賢い方法があるかもしれません。追跡していないが追跡する必要がある他の設定はありますか(例:oldconfig)。

ベストアンサー1

Linuxカーネルビルドシステムはさまざまなビルドターゲットを提供し、それについて学ぶための最良の方法は次のことですmake help

Configuration targets:
  config      - Update current config utilising a line-oriented program
  nconfig         - Update current config utilising a ncurses menu based program
  menuconfig      - Update current config utilising a menu based program
  xconfig     - Update current config utilising a QT based front-end
  gconfig     - Update current config utilising a GTK based front-end
  oldconfig   - Update current config utilising a provided .config as base
  localmodconfig  - Update current config disabling modules not loaded
  localyesconfig  - Update current config converting local mods to core
  silentoldconfig - Same as oldconfig, but quietly, additionally update deps
  defconfig   - New config with default from ARCH supplied defconfig
  savedefconfig   - Save current config as ./defconfig (minimal config)
  allnoconfig     - New config where all options are answered with no
  allyesconfig    - New config where all options are accepted with yes
  allmodconfig    - New config selecting modules when possible
  alldefconfig    - New config with all symbols set to default
  randconfig      - New config with random answer to all options
  listnewconfig   - List new options
  olddefconfig    - Same as silentoldconfig but sets new symbols to their default value
  kvmconfig   - Enable additional options for guest kernel support
  tinyconfig      - Configure the tiniest possible kernel

jimmijがコメントで述べたように、興味深い部分は関連するoldconfigターゲットにあります。

個人的に選択することをお勧めしますsilentoldconfig(ファイルに変更がないか、ファイルを新しいカーネルで更新した場合.config)。olddefconfig.config

おすすめ記事