Buildrootのドキュメント斜め読み Chaper8
Chapter 8. Buildrootの使い方
8.1 make tips
他章のものを記載する
コマンド | 内容 |
---|---|
make help | サブコマンド(target)を表示する |
make V=1 |
makeで実行されるコマンドの表示 |
make list-defconfigs | 各ボード用に利用可能なmenuconfigを表示する |
make clean | 対象アーキテクチャやツールチェイン変更時に使用する |
make ckean all | 再フルビルド実施 |
make manual | docs/manualに生成されるマニュアルの生成 |
make manual-clean | マニュアルのクリア |
make distclean | ターゲットのクリア |
make |
パッケージの削除 |
make source | dl フォルダ配下からオフラインビルドする |
make O= |
outputフォルダを指定する |
make graph-depends | 依存関係のグラフを生成する |
8.2 フルビルドし直すタイミング
下記でも必ず必要ではないユーザが適宜判断し実行する * アーキテクチャが変わったとき * ツールチェイン設定変更 * 依存するライブラリ追加する * パッケージのサブオプション変更時 * RFSのスケルトン変更時
8.3 パッケージの再ビルドについて
- パッケージの削除は再フルビルドするしかない
- stagingとか関連する場合
- 単体で削除可能なら
output/build
から削除するかmake <package>-dirclean
でもよい output/build/<package>-<version>/
配下にビルド状態を管理するスタンプファイルstamp_<step-name>
を生成する
8.4. Offline builds
8.5. Building out-of-tree
(makeのサブコマンドのであるため省略)
8.6. 環境変数
(関連する項目で見るため省略)
8.7. 効果的なファイルシステムの扱い方
sparseファイルについて(よくわからん)
8.8. パッケージの依存関係をグラフ化する
*make graph-depends
* output/graphs/graph-depends.pdf
に生成される
* Graphvizを入れる必要がある
* apt install graphviz
* システムがでかくなると見づらいのでmake <pkg>-graph-depends
でパッケージ単位で出力するともできる
* PDF以外のフォーマットでも出力可能
* BR2_GRAPH_OUT=svg make graph-depends
* BR2_GRAPH_DEPS_OPTS
環境変数で制御を変更可能
ビルド時間のグラフ化
- どのパッケージのビルドに時間がかかっているかを可視化することができる
make graph-build
- python-matplotlibを入れる必要がある
- 数種類のファイルが生成される
- build.hist-build.pdf
- 各パッケージごとにかかった時間がビルド実行順にヒストグラムになる
- build.hist-duration.pdf
- ビルド時間がかかった順のヒストグラフ
- build.hist-name.pdf
- ファイル名順のヒストグラフ
- build.pie-packages.pdf
- ビルド時間の円グラフ
- build.pie-steps.pdf
- ビルド行程ごとの円グラフ
- 出力フォーマットは変えれる
BR2_GRAPH_OUT=png make graph-build
8.10. パッケージごとのファイルシステムサイズのグラフ化
- 各パッケージのファイルがRFS中に占める割合をグラフ化
- 生成される
file-size-stats.csv
を利用して、ビルドごとの比較をすることができる **utils/size-stats-compare -h
8.11. Eclipseインテグレーション
使わないので省略
8.12. 応用
8.12.1. ツールチェインをBuildRoot外で使う
output/host/bin/
をPATHに追加するなりする
8.12.2. Buildrootでgdbを使う
設定でgdbserverを有効にするなりすれば使える
8.12.3. Buildrootでccacheを使う
省略
8.12.4. ダウンロードしたパッケージの配置先
BR2_DL_DIR
で指定できる
8.12.5. パッケージ単位でのmakeサブコマンド
make <package>-<target>
8.12.6. Using Buildroot during development
<pkg>_OVERRIDE_SRCDIR
でパッケージに対してファイルを追加できる
調査はだいぶ前に終わってたけど、しばらく体調を崩していてかけなかった
ここまでの情報でだいたいBuildrootにおけるシステム構築方法を確認することができ、以降はBuildroot自身に変更を加えて独自パッケージ追加するといったこととなるので、ドキュメント斜め読みとしてはここまでかな。