起動に時間がかかる現象の軽減方法

PaPeRo iの電源を入れたのに、座布団LEDが全て緑点灯し、20~30分?立ち上がらない現象に出くわしたことはあるでしょうか?
この現象の軽減方法について紹介します。

原因と推察されること

 この現象は、起動時にFLASHのファイルチェックが走っていると推察されます。これは少なくとも、

(1) アプリがFLASHに書込み中に電源がOFFされた
(2) ボリュームボタンで音量などを変更し、FLASHへの書込みが行われている最中に電源がOFFされた
(3) yaffs-bgというデーモンがアクティブになっているときに電源がOFFされた

という条件で発生するようです(他にも原因がある可能性があります)。

対策1:書き込むファイルの実体を/tinyに移動する

 実はこの現象で再起動にかかる時間は、書込み中だったパーティションの使用量に依存する様で、つまりアプリやVolumeLevel.confの実体を/tinyに移し、ln -sでシンボリックリンクにすることで、書込み中に電源OFFされた場合の再起動までの時間を数分に短縮できる様です。

# mkdir /tiny/hot
# cd /Extension/robot_platform/conf
# mv VolumeLevel.conf /tiny/hot
# ln -s /tiny/hot/VolumeLevel.conf .
(アプリの書込みファイルも同様)

なおこの方法は、/tinyの使用量が大きくなる場合には、効果が無いと推測されます。
また、PaPeRo iは起動シーケンスの中でFLASHの書込みを行う様で、起動中に座布団向かって左端LEDがオレンジ点滅する瞬間があるためその様に推察されるのですが、それがどのファイルなのか、判明しておりません。

対策2:アプリでシャットダウンする

 これは上記(3)のみに効果がある方法です。そもそもどういった契機でyaffs-bgがアクティブになるのか分かりませんが、おそらくFLASHの書込み量がある一定量に達した場合にアクティブになるのではないかと思われます。
yaffs-bgがアクティブ(topコマンドで確認出来ます)になって、座布団左端LEDがオレンジ点滅しているときに、

# poweroff

してから電源を切ると、起動に時間がかかる現象は発生せず、電源ON後即座にまたyaffs-bgがアクティブになる現象を確認しました。
ただしこの方法で常に確実に、起動時に時間がかかる現象が発生しないという保証はありません。
また、アプリから何らかの契機でシャットダウンするのは、スイッチ類が限られているPaPeRo iではあまり簡単な事ではないかも知れません。