ブログ

Armadillo-840で起動時間の短縮(Qtなし)

at_ito
2014年8月24日 16時30分

Armadillo-840は、Armadillo-400シリーズに比べイメージサイズが大きくなっているため起動時間が遅くなりがちです。 最終的に製品化する際には、起動時間を早めたい場合もあるかと思います。 そこで、Armadillo-840の標準イメージに入っている機能をけずり、どこまで起動時間を短縮できるかを試してみました。

環境

  • 製品: Armadillo-840 液晶モデル開発セット
  • Linuxカーネル: Linux-3.4-at9
  • Atmark Dist: v20140602
  • TeraTerm: Version 4.80(SVN# 5451)

起動時間計測

いろいろな条件で、hermitプロンプトでbootコマンドを入力してから、loginプロンプトが出るまでの時間を計測してみました。

標準イメージ

まずは標準のコンフィギュレーションで作成したイメージで、起動時間を計測してみます。 計測にはTeraTermのログ機能(タイムスタンプ付き)を使用しました。

計測結果は以下の通りです。

計測項目時間
イメージをRAMに展開16sec
Linuxカーネルの初期化7sec
初期化スクリプト11sec
合計34sec

上記の結果から、起動時に一番時間がかかっている箇所が「イメージをRAMに展開」時にあることがわかりました。

Qtを削除したのみのイメージ

イメージの展開に時間がかかっているということで、まずはユーザーランドイメージで一番ファイルサイズの大きいQtを ユーザーランドコンフィギュレーションから削除して起動してみました。

起動時間の計測結果は以下の通りです。

計測項目時間
イメージをRAMに展開9sec
Linuxカーネルの初期化4sec
初期化スクリプト11sec
合計24sec

上記の結果から以下の内容がわかります。

  • イメージサイズを減らすことで「イメージをRAMに展開」する時間を減らせる
  • イメージサイズを減らすことで「Linuxカーネルの初期化」の時間も減らせる
  • 初期化スクリプトも11secとかなりの時間がかかっている

ユーザーランドの各種機能を削除

これまでの結果で、ユーザランドイメージのサイズを減らすことと、初期化スクリプトを減らすことで 起動時間が早まることがわかりました。そこで、ほぼ起動に最低限のファイルのみ残すとどのようになるかを試してみました。

変更した箇所は以下の通りです。

  • ユーザーランドコンフィギュレーションで、不要そうなものを削除
  • 不要な初期化スクリプトを削除

起動時間の計測結果は以下の通りです。

計測項目時間
イメージをRAMに展開2sec
Linuxカーネルの初期化2sec
初期化スクリプト1sec
合計5sec

上記から、最低限のファイルのみに絞れば5秒程度で起動することがわかりました。

この試験に関連するファイルを以下に添付します。

課題

今回は、簡単に目安として試してみた状態ですので、まだ以下の課題が残っています。

  • Linuxカーネル側の変更は行っていません。Linuxカーネルの不要なドライバーを削除すれば追加で1,2秒程度の短縮はできそうです
  • Armadillo-840の特長であるQtで画面表示ができない状態

また機会があれば、上記の内容も試してみたいと思います。