n.yamamoto
2015年5月11日 16時35分
Yamamotoです。
USBメモリに登録したイメージファイルによるバージョンアップで、バージョンアップ完了後の再起動でCRCエラー等により起動できなくなる件で確認です。
以前から、時々上記現象についてアドバイスを頂いておりますが最近少し解ってきたことがあります。
どうも作成したイメージファイルをUSBへコピーした際に、たまにコピー不良によりromfs.img.gzのお尻の方に差異が出ており、そのままバージョンアップしたためにエラーで起動できなくなるようです。
WindowsでUSBデバイレベルでチェックしても異常にならないのですが、ファイルをバイナリレベルで比較すると差異が出てしまい気づかずにバージョンアップに使用して失敗するようです。
で、確認ですがバージョンアップする前に元のファイルのCRCチェックを行うようなC言語の関数とかありますか?
関数でなくても、何かチェック方法はありますか?
よろしくお願いいたします。
コメント
n.yamamoto
Yamamotoです。
回答いただいた内容を再確認して、以下の手順と言う事でしょうか?
例:linux-a460-1.00.bin.gz ファイル使用
①linux-a460-1.00.bin.gzのmd5ファイルをmd5sumのリダイレクトで作成
~$ md5sum linux-a460-1.00.bin.gz >linux-a460-1.00.bin.gz.md5
②USBにlinux-a460-1.00.bin.gzとlinux-a460-1.00.bin.gz.md5をコピー
③USBからのバージョンアップ時(ユーザプログラムによる)に以下を実施
”md5sum -c linux-a460-1.00.bin.gz.md5 >md5.txt"
④md5.txtの内容から(”linux-a460-1.00.bin.gz: OK”)
": OK”があれば正常なイメージファイルと判断、それ以外であれば不正イメージと判断
⑤正常イメージならバージョンアップを実施
よろしくお願いいたします。
y.nakamura
中村です。
> 回答いただいた内容を再確認して、以下の手順と言う事でしょうか?
そんな感じでOKだと思います。
> ③USBからのバージョンアップ時(ユーザプログラムによる)に以下を実施
> ”md5sum -c linux-a460-1.00.bin.gz.md5 >md5.txt"
>
> ④md5.txtの内容から(”linux-a460-1.00.bin.gz: OK”)
> ": OK”があれば正常なイメージファイルと判断、それ以外であれば不正イメージと判断
この部分は、私は次のようにやってます。
md5sum -c linux.bin.gz.md5 if [ $? -ne 0 ]; then エラー処理 fi
--
なかむら
n.yamamoto
y.nakamura
2015年5月11日 19時16分
中村です。
> で、確認ですがバージョンアップする前に元のファイルのCRCチェックを行うようなC言語の関数とかありますか?
>
> 関数でなくても、何かチェック方法はありますか?
MD5チェックサムはどうですか?
アットマークテクノさんの公式イメージのダウンロードサイトには、
イメージファイルと一緒にMD5チェックサムファイルがおいてあります。
たとえば、ここ。
http://download.atmark-techno.com/armadillo-460/image/
これと同じ方法です。
説明(検査の仕方)は、ここにあります。
http://armadillo.atmark-techno.com/faq/checksum
MD5チェックサムの生成方法は、ググれば出てくると思います。
--
なかむら