Armadilloフォーラム

「FAQ : SDHCの転送方法をシングルブロック単位のみに変更する」で確認

n.yamamoto

2014年6月9日 16時46分

Yamamotoです。

少し気になりましたので確認です。

「FAQ : SDHCの転送方法をシングルブロック単位のみに変更する」でSDカードがReadOnly状態になることがある
と記載されていましたが

当方で使用しているArmadillo-460 カーネルリビジョン:2.6.26-2-686(uname -rで確認)も関係するのでしょうか?

ユーザー様で確認中ですが、似たような症状と思われることがまれに発生しています。

SDカード内に作成したファイルが、ファイル名のみで中身なし(0KB)状態になり、再起動時にこのデータを使用して
前回状態に戻すはずが戻せなくなっています。

関係ないかもしれませんが、気になりましたのでご意見お聞かせください!

コメント

at_daisuke.sasaki

2014年6月18日 17時10分

佐々木大輔です。

弊社のカーネルを使用している場合、「uname -r]で表示されるカーネルリビジョンは
「2.6.26-at19」などのように「-at{version}」が付加されます。

ビルド時に、独自にバージョンの付け替えなど、行なっていますか?
(もしかすると、ATDE3でunameを実施していませんか?)

Armadillo上で以下コマンドにより再度確認してもらえますか?

[armadillo ~] # uname -a

linux-2.6.26-at19では、SDカードとの通信でCRCエラーが発生した場合に
リトライする機構を実装しています。
http://armadillo.atmark-techno.com/news/140411/software-update

この問題現象に該当している場合、使っているファイルシステムによって、
Read Onlyでマウントされたり、ファイルが壊れたりする場合があります。
ファイルが壊れる場所が、ファイルシステムのメタ情報である場合、
ファイルが巨大なファイルに見えたり、不正なファイルに見える事もあります。

尚、この状況が発生するArmadilloは、
SD通信経路にCRCエラーが発生するほどの、
スパイクノイズが乗るような環境に設置されていると言う事はありますか?

余談ですが、引用していただいたFAQはlinux-2.6.26-at19のリリースに伴い、
今後内容を修正する予定となっています。

n.yamamoto

2014年6月23日 15時50分

Yamamotoです。

> 佐々木大輔です。
>
> 弊社のカーネルを使用している場合、「uname -r]で表示されるカーネルリビジョンは
> 「2.6.26-at19」などのように「-at{version}」が付加されます。
>
> ビルド時に、独自にバージョンの付け替えなど、行なっていますか?
> (もしかすると、ATDE3でunameを実施していませんか?)
>
> Armadillo上で以下コマンドにより再度確認してもらえますか?
>

> [armadillo ~] # uname -a
> 

>

以下、実行した結果です。
[root@armadillo460-0 (ttymxc3) /home/guest]# uname -a
Linux armadillo460-0 2.6.26-at15 #11 PREEMPT Fri Aug 16 11:21:57 JST 2013 armv5tejl unknown
[root@armadillo460-0 (ttymxc3) /home/guest]#

>
> linux-2.6.26-at19では、SDカードとの通信でCRCエラーが発生した場合に
> リトライする機構を実装しています。
> http://armadillo.atmark-techno.com/news/140411/software-update

確認させていただきます。

>
> この問題現象に該当している場合、使っているファイルシステムによって、
> Read Onlyでマウントされたり、ファイルが壊れたりする場合があります。
> ファイルが壊れる場所が、ファイルシステムのメタ情報である場合、
> ファイルが巨大なファイルに見えたり、不正なファイルに見える事もあります。
>
> 尚、この状況が発生するArmadilloは、
> SD通信経路にCRCエラーが発生するほどの、
> スパイクノイズが乗るような環境に設置されていると言う事はありますか?
>
> 余談ですが、引用していただいたFAQはlinux-2.6.26-at19のリリースに伴い、
> 今後内容を修正する予定となっています。

at_daisuke.sasaki

2014年6月25日 17時32分

佐々木大輔です。

> 以下、実行した結果です。
> [root@armadillo460-0 (ttymxc3) /home/guest]# uname -a
> Linux armadillo460-0 2.6.26-at15 #11 PREEMPT Fri Aug 16 11:21:57 JST 2013 armv5tejl unknown
> [root@armadillo460-0 (ttymxc3) /home/guest]#

linux-2.6.26-at15という事で、Armadilloの設置環境・設置状態の問題で、
SDの通信にCRCエラーが発生している場合、
SDカード内のデータが破壊するといった状況が起こりえます。

> ユーザー様で確認中ですが、似たような症状と思われることがまれに発生しています。
>
> SDカード内に作成したファイルが、ファイル名のみで中身なし(0KB)状態になり、
> 再起動時にこのデータを使用して前回状態に戻すはずが戻せなくなっています。

SDカード内に作成したファイルが壊れているという事ですが、
SD通信中に電源が落とされたり(瞬電などを含み)する状況でも、この問題は発生します。

まずは、問題発生時に何か起きていないか、確認して頂くのがいいと思います。

尚、linux-2.6.26-at19は、CRCエラーによるリトライが発生した場合、以下のようなログが出力されます。

mmcblk0: data error detected. retrying block read. Retry 1

at_daisuke.sasaki

2014年7月15日 16時02分

佐々木大輔です。

> 余談ですが、引用していただいたFAQはlinux-2.6.26-at19のリリースに伴い、
> 今後内容を修正する予定となっています。

以前予告していましたが、
「FAQ : SDHCの転送方法をシングルブロック単位のみに変更する」を更新しました。

http://armadillo.atmark-techno.com/sdhc-enforce-single-block-transfer

linux-2.6.26-at19では、SDのエラー発生時の処理を修正しています。

i.MX25のErrata ENGcm07207を回避する目的で、
SDをシングルブロック転送のみで通信する設定を使用している場合には、
linux-2.6.26-at19を使う事で、この設定は不要になります。

また、Armadilloの使用環境などに起因し、SDの通信経路にエラーが発生し、
SDカードのデータが壊れているような状況では、
最新のカーネルを使う事で問題が改善する可能性がありますので確かめてみて下さい。