コース概要

  1. はじめに
    1. Buildrootの入手方法
    2. ビルドシステム要件
    3. クロスコンパイラ用語: build, host, target, sysroot
    4. 適切なターゲットの選択方法
    5. 最小限の埋め込みシステムを構築し、ブートする方法
    6. 生成されたファイルシステムイメージの内容
    7. 並列ビルド
    8. フルおよび部分的な再構築
  2. Buildrootの設計目標
  3. 選択肢
    1. Cライブラリ: glibc、uClibc、またはmusl?
    2. イニットシステム: busybox vs sysVinit vs systemd
    3. /devでのデバイスノードの管理
    4. 他のパッケージを選択する方法
  4. ビルド指示を理解する
    1. Kconfig (Config.in)ファイルの構文
    2. Buidroot Makefilesで使用されるGNU Makeの機能
    3. Config.inと*.mkファイルのスタイルガイド
    4. 単純なAutotoolsベースのパッケージを追加する方法
    5. stagingディレクトリとtargetディレクトリの違い
    6. ホストパッケージの必要性
    7. 依存関係やオプション機能を表現する方法
    8. C以外の言語やAutotools以外のビルドシステムのサポート
    9. Makefilesのデバッグ
    10. 単一パッケージの再構築
  5. ビルド結果の分析
    1. なぜそんなに時間がかかったのか?
    2. なぜそんなにディスクスペースが使用されたのか?
    3. このパッケージが構築された理由は何か?
  6. 外部パッケージツリーの整理
  7. アプリケーション開発者のワークフロー
    1. ローカルソースディレクトリを使用する方法
    2. ビルド指示をオーバーライドする方法
    3. アプリケーションのデバッグ方法
    4. 再構築を高速化する方法
    5. ビルドログの表示方法
  8. 一般的なクロスコンパイル問題への対処
    1. クロスコンパイラーに親切なソフトウェアを書く方法
  9. カーネル開発者のワークフロー
    1. カーネルが埋め込みシステムでどのように起動するか
    2. 構成オプションの変更とパッチの追加方法
    3. モジュールロードメカニズム
  10. 完成品の作成
    1. 起動時にデーモンを実行する方法
    2. カスタム構成ファイルを提供する方法
    3. 利用可能なファームウェア更新メカニズム
    4. 新しいBuildrootバージョンへのアップグレード方法
    5. オープンソースライセンスの遵守方法

要求

  • 参加者は、伝統的なデスクトップ(非埋め込み)Linuxシステムのカーネルを少なくとも一度構築したことがあること。
  • デスクトップシステムのLinuxユーザースペースがどのようなコンポーネントで構成されているかを理解していること。
  • パッチの生成と使用方法を知っていること。
  • GNU Make、Autotoolsとは何か、他のビルドシステムがあることを説明できること。
  • 理想的には、少なくとも1つのLinuxパッケージをメンテナンスしていること(アップストリームの著者としてまたは伝統的なLinuxデスクトップディストリビューションで)。
  • 埋め込み開発の経験は必須ではなく、上記に指定された伝統的なLinuxデスクトップに関する知識の代用品にはなりません。
 7 時間

参加者の人数


参加者1人あたりの価格

今後のコース

関連カテゴリー