[Armadillo:08875] Re: flatfsd のバグ?

Yasuhisa Nakamura email@hidden
2013年 5月 31日 (金) 00:59:32 JST


中村です。

[Armadillo:08874]で Yanagihara, Kosaku さんは書きました:
> お世話になります、柳原です。
>
> flatfsd(3.0.1mtd)の挙動について3点ほど分からないところがあります。
> なお、OSのバージョンは2.6.26-at16です。
>

flatfsdについては、以前から私も疑問に思うところがたくさんあり、
ソースを追って調べたことがあります。

ドキュメント化された仕様書のようなものがあるといいのですが、
なさそうな気がします。
実際、どうなんでしょう?>お分かりになる方

>
> ■その1: 時間ズレ
> RTCを搭載していないArmadillo-440で、起動時に以下の様な処理を行うと、時計
> が5時間ほど進んでしまいますが、これはバグでしょうか?
>
> # date
> Thu Jan  1 00:00:10 UTC 1970
> # flatfsd -r
> flatfsd: restore fs+ from partition 0, tstamp=1
> flatfsd: Created 19 configuration files (11046 bytes)
> # date
> Thu Jan  1 04:59:22 UTC 1970
>
> RTC無しかつタイムサーバを置かない運用で、時計をカレンダーとしてではなく、
> 起動後の稼働時間として利用したいと考えていますので、精度云々以前に暗黙的
> に時刻がドリフトすると困るのですが。
>

そういう用途だと、確かに困りますね。
あとで時間があったら、試してみたいと思ってます。

>
> ■その2: flash(config)と/etc/configの両方が空っぽの場合の-rオプション
> /etc/config内のファイル及びディレクトリを全部削除した後、一旦、-sオプショ
> ンでflash(config)へ同期し、その後、-rオプションで実行すると、-wオプショ
> ンと同じ挙動になりますが、これはバグでしょうか?仕様でしょうか?
>
> なお、/etc/config空っぽの状態で-sオプションで実行した後、
> touch /etc/config/fooなどで1つでもファイルを作っておいてから-rオプション
> で実行すると、正常と思われる挙動(/etc/config/fooだけのまま)になります。
>
> また、/etc/config/fooだけの状態で-sオプションで実行した後、
> /etc/config/fooを削除して/etc/configを空っぽにした後に-rオプションで実行
> しても、正常と思われる挙動(/etc/config/fooが復元される)になります。
>

ソースを追っかけたころの記憶が薄れ気味なのですが、
その時の作業メモをみると、そういう動きになっていると
思います。
これが仕様なのかバグなのか?まではソースからは読み取れ
ませんでしたが、ソースはそうなるうように書かかれていた
ような・・・

>
> ■その3: -wオプションの挙動
> -wオプションと-rオプションの説明は、
> usage: flatfsd [-bcrwnis123vh?]
>             (中略)
>         -r read from flash, write to config filesystem
>         -w read from default, write to config filesystem
>             (後略)
> のように非常によく似た説明文になっていますが、-wオプションでは
> /etc/configだけでなくflash(config)にも書き込まれているようですが、そうい
> う仕様と理解しておいて問題ないでしょうか?
>

仕様がどうなのかはわかりませんが、ソースを読み取ったときの
メモによると、"-w"オプションは、
  - /etc/defualtの内容を/etc/configにコピー
し、その後
  - /etc/configの内容をconfigフラッシュに書き込む
ということをやっているようでした。

上の2番目の質問にも関係しますが、"-r"オプションは、
configフラッシュが空か、壊れているときは"-w"と同じ動作を
するようです。
このことは、以前[Armadillo:07930]でも書いてます。
http://lists.atmark-techno.com/pipermail/armadillo/2012-March/007933.html

>
> 以上、よろしくお願いします。


ついでなので、もう1つ。
flatfsdのhelpでの、"-i"の説明もおかしいように思います。

    -i initialise from default, reboot

この説明だと、/etc/defaultから読んでフラッシュに書き込んで
再起動するように思えますが、実際の動作はそうではなくて、
configフラッシュをクリアして再起動し、再起動後の"-r"で
(/etc/rcで実行されます)、上に書いた"-r"の挙動により、
再起動後の/etc/defautを使って、
  - /etc/defualtの内容を/etc/configにコピー
  - /etc/configの内容をconfigフラッシュに書き込む
が行われているようです。

#ソースの読み間違いがあるかもしれません。

-- 
なかむら





armadillo メーリングリストの案内