17

x86 ターゲット用の rootfs を構築しようとしていますが、これはすべて簡単です。ただし、buildroot が生成するカーネルをどのように構成するかわかりません。最初の実行では menuconfig が思いつきましたが、それ以降は .config がキャッシュされており、どこを変更すればよいかわかりません。

〜650MBのカーネルモジュールは、組み込みターゲットに良いことをしません:P

buildroot 内でカーネルを構成する簡単な方法はありますか? ターゲットのようなものはuclibc-menuconfig完璧でしょう。

4

5 に答える 5

44

私は常に次のことを行います。

  1. Linux カーネルを構成します。make linux-menuconfig
  2. menuconfig を終了すると、構成は次のファイルに保存されます。output/build/linux-XYZ/.configここで、XYZはカーネルのバージョンです。
  3. その後、ファイル output/build/linux-*XYZ*/.configをコピーできますboard/your_kernel_config/.config
  4. 後で Buildroot menuconfig で、カーネル設定の下で、カスタム カーネル構成ファイルを使用するように構成し、パスを入力できます。board/your_kernel_config/.config
于 2011-08-01T14:11:54.393 に答える
3

menuconfig で defconfig も i386 に設定することを忘れないでください:

  Kernel  —>
  [*] Linux Kernel
  (i386) Defconfig name 
于 2015-10-15T12:40:01.453 に答える
3

BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES

既存の構成に追加の構成を追加します。

たとえば、buildrootサブモジュールとして使用している場合、ディレクトリ ツリーは次のようになります。

.git/
buildroot/
.gitmodules
kernel-config-frag

たとえば、オンにするにはCONFIG_DEBUG_FS、次のようにします。

echo 'CONFIG_DEBUG_FS=y' > kernel-config-frag

次に、buildroot を次のように構成します。

cd buildroot
make qemu_x86_64_defconfig
echo 'BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES=../kernel-config-frag' >> buildroot/.config
make

このようにして、 と追加の構成の間の差分だけを git 追跡できqemu_x86_64_defconfigます。

これは、Linux カーネルの .config ファイルで機能を非対話的に有効にする方法scripts/kconfig/merge_config.shについて説明されているように、カーネルから使用されていると思います。

構成フラグメントを変更したら、次のことを忘れないでください。

rm -rf buildroot/output/build/linux-*.*.*/

次のビルドの前に。

最小限の実行可能な例: https://github.com/cirosantilli/linux-kernel-module-cheat/blob/bb8f4eb79565c9771356c80e0964c8fefc163e11/kernel-config-frag

BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE

使用するフル.configを選択します。

何らかの理由で、これを有効にするにはカーネルを核攻撃する必要があり.configますか? BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE を変更して make linux-reconfigure を実行しても、カーネルの .config が変更されないのはなぜですか?

于 2017-05-11T12:28:05.627 に答える
2

答えは次のとおりです。

make linux26-menuconfig
于 2009-09-12T14:52:23.387 に答える