[Armadillo:09244] Re: Armadillo-460 プログラムでのnetflashによるファームウェアバージョンアップについて

Yamamoto email@hidden
2013年 10月 4日 (金) 07:53:29 JST


Yamamotoです。

有難うございます。

必死でやっていたので気づきませんでした。

一応、netflash.cを変更してなんとか確認がとれましたが・・・

頂いた内容で勘違いしていました。
"-c"オプションでも更新はされると思っていたのですがチックだけなのですね?

やけに早くなっと思い、おかしいなとは思ったのですが。
明日、やり直します。

On Thu, 03 Oct 2013 10:52:34 +0900
Toru Ito <email@hidden> wrote:

> 伊藤です。
> 
> 横から失礼いたします。
> 
> netflashでベリファイできているかどうかの確認方法ですが、
> 以下のような手順で確認できると思います。
> 
> ■ 1. kernel領域に、linux-a400-1.08.bin.gzイメージを書き込む
> 
> 以下のコマンドを実行して、kernel領域にlinux-a400-1.08.bin.gzイメージを
> 書き込みます。この際オプションに"-b"を付けて自動的に再起動しないように
> しておきます。
> 
> ======================================================================
> # netflash -knub -r /dev/flash/kernel
> http://download.atmark-techno.com/armadillo-440/image/linux-a400-1.08.bin.gz
> ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
 ..
>  .......
> ..
> .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
> netflash: got "http://download.atmark-techno.com/armadillo-440/image/linux-a400-1.08.bin.gz",
> length=1763476
> netflash: programming FLASH device /dev/flash/kernel
> ................
> ======================================================================
> 
> ■ 2. kernel領域に書き込まれたイメージが正しいかのチェックを行う
> 
> kernel領域に書き込まれたイメージが引数に渡されたファイルと
> 同じかどうかのチェックを行います。
> チェックを行う際は、netflashの"-C"オプションを付けて実行します。
> 補足として、"-C"オプションを付けたときは、チェックのみ行い、
> フラッシュへの書き込みは行いません。
> 
> 例えば、kernel領域にlinux-a400-1.08.bin.gzが書き込まれた状態で、
> フラッシュのデータが、linux-a400-1.08.bin.gzと同じかどうかを
> チェックすると、以下のような結果となります。
> 
> ======================================================================
> [email@hidden (ttymxc1) ~]# netflash -knubC -r /dev/flash/kernel
> http://download.atmark-techno.com/armadillo-440/image/linux-a400-1.08.bin.gz > /dev/null
> [email@hidden (ttymxc1) ~]#
> ======================================================================
> 
> 例えば、kernel領域にlinux-a400-1.08.bin.gzが書き込まれた状態で、
> フラッシュのデータが、linux-a400-1.07.bin.gzと同じかどうかを
> チェックすると、以下のような結果となります。
> 
> ======================================================================
> [email@hidden (ttymxc1) ~]# netflash -knubC -r /dev/flash/kernel
> http://download.atmark-techno.com/armadillo-440/image/linux-a400-1.07.bin.gz > /dev/null
> netflash: check failed, pos=0
> netflash: check failed, pos=20000
> netflash: check failed, pos=40000
> netflash: check failed, pos=60000
> netflash: check failed, pos=80000
> netflash: check failed, pos=a0000
> netflash: check failed, pos=c0000
> netflash: check failed, pos=e0000
> netflash: check failed, pos=100000
> netflash: check failed, pos=120000
> netflash: check failed, pos=140000
> netflash: check failed, pos=160000
> netflash: check failed, pos=180000
> netflash: check failed, pos=1a0000
> [email@hidden (ttymxc1) ~]#
> ======================================================================
> 
> 以上、ご参考まで。
> 
> (2013/10/03 10:06), Yamamoto wrote:
> > Yamamotoです。
> > 
> > On Wed, 2 Oct 2013 21:35:18 +0900
> > 竹之下航洋 <email@hidden> wrote:
> > 
> >> 竹之下です。
> >>
> >>>>>> 1. netflashを実行する際に -C オプションをつけると、正常に書き込めたか
> >>>>>>      べりファイしてくれます。
> >>>>>
> >>>>> この方法の場合、もし正常に書き込めていなかった場合どうなるのでしょうか?
> >>>>> 元のイメージで動作するのでしょうか?
> >>>> いいえ。
> >>>> 書き込んだ後にベリファイするだけですので、ベリファイに失敗したら、
> >>>> 再度書き直す必要があります。
> >>>
> >>> 確認しているのですがnetflashでベリファイに失敗した場合、何かメッセージが帰ってくるのでしょうか?
> >>> 失敗時の確認方法が解りません。
> >> ソースを呼んだ限りでは、
> >>
> >> "check failed, pos=xx"という表示を行い、exitステータスが 34 になるのではないかと思います。
> > 
> > ソースはatmark-dist-20110704\user\netflash配下のもので良いと思いますが、合っておりますでしょうか?
> > 
> > ここのnetflash.cのcheck_segment関数を試験用に変更してエラーにするようにすれば、ベリファイNGの確認が
> > 取れるかと思うのですがあっておりますでしょうか?
> > 
> > またexitステータスはsystem関数で”echo $?”の標準出力内容が0かどうかで判定すれば良いと考えております
> > が、いかがでしょうか?
> > 
> > あとnetflashは関数形式のものは無いですよね?
> > 
> >>
> >> 2013年10月2日 21:24 Yamamoto <email@hidden>:
> >>> Yamamotoです。
> >>>
> >>> On Wed, 21 Aug 2013 20:26:51 +0900
> >>> Koyo Takenoshita <email@hidden> wrote:
> >>>
> >>>> 竹之下です。
> >>>>
> >>>>>> 1. netflashを実行する際に -C オプションをつけると、正常に書き込めたか
> >>>>>>      べりファイしてくれます。
> >>>>>
> >>>>> この方法の場合、もし正常に書き込めていなかった場合どうなるのでしょうか?
> >>>>> 元のイメージで動作するのでしょうか?
> >>>> いいえ。
> >>>> 書き込んだ後にベリファイするだけですので、ベリファイに失敗したら、
> >>>> 再度書き直す必要があります。
> >>>
> >>> 確認しているのですがnetflashでベリファイに失敗した場合、何かメッセージが帰ってくるのでしょうか?
> >>> 失敗時の確認方法が解りません。
> >>>
> >>> 実際はプログラム上でsystem関数でnetflashを実行しています。
> >>>
> >>>>
> >>>> (2013/08/21 16:42), Yamamoto wrote:
> >>>>> Yamamotoです。
> >>>>>
> >>>>> 有難う御座います。
> >>>>>
> >>>>> On Tue, 20 Aug 2013 18:20:16 +0900
> >>>>> Koyo Takenoshita <email@hidden> wrote:
> >>>>>
> >>>>>> 竹之下です。
> >>>>>>
> >>>>>>> せめて、何かromfs.img.gzに異常がないか確認する方法がないでしょうか?
> >>>>>> ftpでアップしたファイルをnetflashで書き込む前に、md5sumで確認してみては
> >>>>>> いかがでしょうか?
> >>>>>>
> >>>>>> ftpでromfs.img.gzをアップする前に、
> >>>>>> [PC ~]$ md5sum romfs.img.gz > romfs.img.gz.md5
> >>>>>> としてromfs.img.gzのmd5sum値を計算しておきます。
> >>>>>> そして、romfs.img.gzとromfs.img.gz.md5の両方をftpでアップします。
> >>>>>>
> >>>>>> Armadillo側では、
> >>>>>> [armadillo ~]# md5sum -c romfs.img.gz.md5
> >>>>>> と実行すれば、romfs.img.gzが壊れていないか確認できます。
> >>>>>>
> >>>>>> また、フラッシュメモリに正常に書き込めたかどうかを確認する方法には
> >>>>>> 2種類あります。
> >>>>>>
> >>>>>> 1. netflashを実行する際に -C オプションをつけると、正常に書き込めたか
> >>>>>>      べりファイしてくれます。
> >>>>>
> >>>>> この方法の場合、もし正常に書き込めていなかった場合どうなるのでしょうか?
> >>>>> 元のイメージで動作するのでしょうか?
> >>>>>
> >>>>>>
> >>>>>> 2. md5sum値で確認したい場合は、下記のようなコマンドで確認できます。
> >>>>>> [armadillo ~]# dd if=/dev/flashblk/userland bs=(romfs.img.gzのサイズ) count=1 | md5sum
> >>>>>>
> >>>>>> (2013/08/15 23:53), Yamamoto wrote:
> >>>>>>> Yamamotoです。
> >>>>>>>
> >>>>>>> 度々、お世話になります。
> >>>>>>>
> >>>>>>> Armadillo-460上で、プログラムによる遠隔でのファームウェアバージョンアップを行おうとしていますが、時
> >>>>>>> 々バージョンアップ後に異常(Compuless・・・だったかな?)でリセットしても起動しなくてHermitoで書き直さ
> >>>>>>> なくてはならない時があります。
> >>>>>>>
> >>>>>>> 実運用時は、本当に遠隔で見えないため書き換え失敗は痛手です。
> >>>>>>>
> >>>>>>> 手順としては、遠隔接続先からftpでromfs.img.gzでSDに転送して、転送完了でソケット通信で実行中のアプリ
> >>>>>>> にバージョンアップ指示を送ります。
> >>>>>>> アプリでバージョンアップ指示を受け取ると、基本的には他の処理はしないように停止状態にしてsystem関数で
> >>>>>>> "netflash -bknusr /dev/flash/userland SD内ファイル名"でファームウェアバージョンアップを実施し。
> >>>>>>> バージョンアップ完了でWDを停止してリセットをかけています。
> >>>>>>>
> >>>>>>> 不良SDによるものか、時々ファームウェアバージョンアップ後起動しなくなります。
> >>>>>>>
> >>>>>>> せめて、何かromfs.img.gzに異常がないか確認する方法がないでしょうか?
> >>>>>>>
> >>>>>>> 可能なら、失敗時に元の状態に自動的に戻して起動できれば言うことないですが・・・
> >>>>>>>
> >>>>>>> よろしくお願いします。
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> armadillo mailing list
> >>>>>>> email@hidden
> >>>>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >>>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Koyo Takenoshita
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> armadillo mailing list
> >>>>>> email@hidden
> >>>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>> --
> >>>> Koyo Takenoshita
> >>>>
> >>>> _______________________________________________
> >>>> armadillo mailing list
> >>>> email@hidden
> >>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >>>>
> >>>
> >>>
> >>> _______________________________________________
> >>> armadillo mailing list
> >>> email@hidden
> >>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> >>>
> >>
> >> _______________________________________________
> >> armadillo mailing list
> >> email@hidden
> >> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> > 
> > 
> > _______________________________________________
> > armadillo mailing list
> > email@hidden
> > http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> > 
> > 
> 
> 
> -- 
> ______________________________________
> 
> 株式会社アットマークテクノ
> 開発部
> 伊藤 透(Toru Ito)
> 
> TEL: 011-207-6550 FAX: 011-207-6570
> URL: http://www.atmark-techno.com/
> E-mail: email@hidden
> ______________________________________
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo





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