みつきんのメモ

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

Yocto raspberrypi3でbootchartを試す(systemd編)

Yoctoのbootchartのおはなし systemdを使用する場合は「systemd-bootchart」が使用できる。

本当は、systemdの時もbootchart2を使用して同じ条件で計測してみたいところだけど。 raspbianはsystemdなので、そちらとの比較の場合は有効な手段かもしれない。

local.confの修正

以下の設定でsystemdを有効化する。

# systemd
DISTRO_FEATURES_append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
VIRTUAL-RUNTIME_initscripts = ""

bootchart関連のためにさらに以下を追加する。

IMAGE_INSTALL_append = " systemd-bootchart"
CMDLINE_append = " initcall_debug printk.time=y init=/lib/systemd/systemd-bootchart"

追加パッケージ

systemdの場合は「systemd-bootchart」の追加だけでよい。

カーネルオプション

CMDLINE変数に次を追加しsystemd-bootchartが起動されるようにする。

initcall_debug printk.time=y init=/lib/systemd/systemd-bootchart

次のコマンドでsystemd-bootchartのログを見ると、「/run/log」以下にsvg形式の画像が出力されていることがわかる。

# systemctl status systemd-bootchart
● systemd-bootchart.service - Boot Process Profiler
   Loaded: loaded (/lib/systemd/system/systemd-bootchart.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Wed 2018-03-07 05:24:34 UTC; 3min 39s ago
     Docs: man:systemd-bootchart.service(1)
           man:bootchart.conf(5)
  Process: 113 ExecStart=/lib/systemd/systemd-bootchart -r (code=exited, status=0/SUCCESS)
 Main PID: 113 (code=exited, status=0/SUCCESS)

Mar 07 05:24:34 raspberrypi3 systemd-bootchart[113]: Error reading disk model for mmc: No such file or directory
Mar 07 05:24:34 raspberrypi3 systemd-bootchart[113]: systemd-bootchart wrote /run/log/bootchart-20180307-0524.svg
Mar 07 05:24:34 raspberrypi3 systemd-bootchart[113]: Bootchart created: /run/log/bootchart-20180307-0524.svg
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.