Kick Out the World

技術的なメモとかポエムを書きます。

Buildrootのドキュメント斜め読み Chaper6~7

Chapter 6. Buildroot 設定

  • 設定の詳細はmake *confing内で確認できる

6.1. クロスコンパイルツールチェイン

  • 2種類のツールチェインに分類される
  • Buildroot toolchain
    • ツールチェインからビルドする
    • pros:Buildrootとの連携が柔軟
    • cons:設定を変更するとフルビルドが必要
  • External toolchain
    • Linaroなどのベンダーのツールチェインを利用する
    • pros:有る程度信頼性があり、ビルド時間も短くなる
    • cons:不具合があるとベンダー依存になる

6.2. /dev 管理

configuration, /dev management で/devの構成を変更できる

  • 静的なDeviceTableファイル
    • 古典的な方法
    • バイスファイルを予め生成したものを/devに配置しておく
    • BR2_ROOTFS_STATIC_DEVICE_TABLEにDeviceTableファイルを指定できる
  • devtmpfs
    • Buildrootでの推奨
    • 2.6.32から導入された仮想ファイルシステム
    • /devにマウントされ、デバイス追加削除に応じて自動的にデバイスファイルを生成削除する
    • CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNTカーネルコンフィグが必要
  • devtmpfs + mdev
  • devtmpfs + eudev

    • mdevより複雑で柔軟な管理制御ができる
  • initシステムにsystemdを選択するとudevになる

6.3. init システム

System configuration, Init systemから以下3つのInitシステムを選択することができる

  • Busybox
    • Buildrootのデフォルト
    • ベーシックなinitプログラム
    • /etc/inittabを読み込む
    • フォーマットは一般的(symtemV)なものと少し異なるのため、https://git.busybox.net/busybox/tree/examples/inittab を参考にすること
    • 主に行うのは/etc/init.d/rcSgettyの起動
  • systemV
    • 多くのデスクトップLinuxで使用されてきた伝統的なinitプログラム
    • /etc/inittabを読み込む
  • systemd
    • 次世代のinitプログラム
    • より複雑な制御ができる

Chapter 7. 他コンポーネントの設定

  • busyboxやLinuxKernelなどの設定ファイルがある場合はBR2_PACKAGE_BUSYBOX_CONFIG.BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG といったパラメータに指定することができる
    • 指定しなければデフォルトの設定が適用される
    • 設定はmake busybox-menuconfigとかで変更できる

現状は軽量な組み込み最小構成のLinuxシステムを想定した起動や/dev管理となってるような雰囲気。
ぼちぼちLinuxの知識が必要だったのと次章はmakeコマンドtipsが多いのでここまで。