Raspberry Pi ドライブレコーダーの作成④ 起動のチューニング

ドライブレコーダーとして、できるだけエンジンONとともに録画を開始したいものです。

専用ハードでもなければ、今回はZeroを使用していることもあり、ちょっと限界はあるのですが、頑張ってみようと思います。

なお、計測した起動時間は使用するMicro SD カードや室温などにも左右されるかと思いますので目安としてください。

 

1.起動時間の測定方法

  以下のコマンドで、起動するまでの時間が確認できます。

  あくまで、各サービスを起動し終わるまでの時間のようですので、目安です。

$systemd-analyze

  なお、各サービスごとの起動時間は以下コマンドで確認できます。

$systemd-analyze blame

  現状での起動時間の測定結果(3回)は以下です。

  <37.733s 37.005s 36.677s>

 

2.クロックアップ

  自作PC系でありがちな、CPUなどの動作クロックを上げて基本性能を上げようというものです。

  Zeroは発熱があまりないようですが、ヒートシンクはつけてきたいですね。

  手順ですが、「/boot/config.txt」に以下を追記、再起動するだけです。

# SD カードの読み書きを高速化する
dtoverlay=sdtweak,overclock_50=100
# CPUクロックを高速に(常時)
arm_freq=1000 
sdram_freq=500
force_turbo=1
 
  この結果の起動時間の測定結果(3回)は以下です。意外と効果ありです。

  <30.591s 30.859s 30.953s>

 

3.不要サービスを起動しない①

  不要そうなサービスを順次起動しないようにしてみます。

  むやみに起動しないようにすると、最低限必要な機能も損なわれるので注意です。

  以下コマンドを実行します。(スワップの無効かと、日々の更新かと思います)

  あまり効果がないような気もしますが…

$sudo systemctl disable dphys-swapfile.service
$sudo systemctl disable apt-daily.service
  この結果の起動時間の測定結果(3回)は以下です。意外と効果ありです。

  <30.546s 30.930s 31.125s>

 

4.不要サービスを起動しない②

  今回の仕様ではBlueToothは使用しないので、バッサリと。

$sudo systemctl stop hciuart.service
$sudo systemctl stop bluealsa.service
$sudo systemctl stop bluetooth.service
$sudo systemctl disable hciuart.service
$sudo systemctl disable bluealsa.service
$sudo systemctl disable bluetooth.service
  この結果の起動時間の測定結果(3回)は以下です。思ったより…でした。

  <31.454s 30.159s 30.814s>

 

5.不要サービスを起動しない③

  申し越し頑張ってみます。システムログもいらないので止めてしまいます。

$sudo systemctl stop rsyslog.service
$sudo systemctl disable rsyslog.service
$sudo service rsyslog stop
  この結果の起動時間の測定結果(3回)は以下です。誤差かもしれませんが、30秒切りました。

  <30.589s 29.545s 30.415s>

 

6.不要サービスを起動しない④

$systemd-analyze blame

  で上位にいた、USBキーボード関連らしきものも止めてしまします。

  これにより、USBキーボードを接続しても操作できなくなると思われます。

$sudo systemctl disable keyboard-setup
$sudo systemctl disable kbd

  <29.3876s 30.600s 29.826s>

 

7.最後のとどめ

  これ以上は無理だろうな、ということで以下を実施してみました。

  起動時にデスクトップ(いわゆるGUI、XWindow)を起動せず、コンソール画面にログインした状態とする

  ※$sudo raspi-config で、設定できます。

    < 29.150s 29.541s 29.489s >

  スプラッシュ画面の非表示。

  「/boot/config.txt」に

disable_splash=1

  を追記します。

    < 28.363s 29.300s 28.580s >

  起動時表示の簡素化。

  「/boot/config.txt」に

boot_delay=0

  を追記します。

    < 28.758s 29.103s 28.295s >

   止めてよいかわかず迷った不要サービスの起動を止めた

$sudo systemctl disable raspi-config.service

    < 27.739s 28.354s 28.124s >

 

8.まとめ

  何もしないよりは10秒ほど短縮、30秒は切りました。

  我が家の場合は、

  車のカギを開けて → エンジンON → 子供たち乗せて、ベルトの確認 → 出発の準備完了

  ですので、まぁ、許容とします。