みつきんのメモ

組み込みエンジニアです。Interface誌で「Yocto Projectではじめる 組み込みLinux開発入門」連載中

yocto raspberrypi3でbootchartを試す(sysvinit編)

bitbakeで作成したlinuxの起動時の状況を知るためにbootchartを使用したい。 pokyには「bootchart2」が収録されているので、これを使用する。

meta-raspberrypiの組み込みおよび、bitbake rpi-basic-imageまで作成できている事を前提とする。

local.confの修正

local.confに次の内容を追加する。

PACKAGE_INSTALL_append = " bootchart2 bootchartd-stop-initscript pybootchartgui"
CMDLINE_append = " initcall_debug printk.time=y init=/sbin/bootchartd"

bootchart2関連のパッケージと、OS起動時にbootchart2を実行するためのカーネルオプションの設定を追加している。

追加パッケージ

次のパッケージを追加する。

パッケージ 機能
bootchart2 bootchart2本体
bootchart-stop-initscript OS起動後にbootchart2の終了
pybootchartgui bootchart.pngの生成

bootchart2はサービスの終了時に、「/var/log/bootchart.tgz」を作成するが、 デフォルトでは、手動で終了させるまで実行され続けるため、 ブートプロセスの終了と同時に、bootchart2を終了させるために「bootchart-stop-initscript」をインストールする。

また、bootchart.tgzはそのままではただのログデータのアーカイブなので、 これをpng形式のチャートに変換するためにpybootchartguiをインストールする。

pybootchartguiをインストールしておくと、ブートプロセス終了時に実行され、 bootchart.tgzからpng画像が作成されるようになる。

カーネルオプション

meta-raspberrypiではカーネルへ渡すコマンドラインの文字列はCMDLINE変数で設定されるため、この変数に次を追加する。

initcall_debug printk.time=y init=/sbin/bootchartd

これで、起動時にbootchart2が実行されるようになる。