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

Toru Ito email@hidden
2013年 10月 3日 (木) 10:52:34 JST


伊藤です。

横から失礼いたします。

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 メーリングリストの案内