ブログ

netflashでフラッシュに書かれたイメージのベリファイを行う

at_ito
2015年3月30日 6時58分

netflashコマンドでイメージをフラッシュ書いた後、正しく書かれたかチェックしたい場合があるかと思います。

ここでは、netflashコマンドで、正しくイメージが書かれたかどうかをチェックする機能について紹介します。

1. チェック方法

netflashには-Cオプションがあり、このオプションを付けることによって、指定されたイメージと同じイメージが、フラッシュにかかれているかどうかをチェックすることができます。

コマンド例としては、以下のようになります。

netflash -knubC -r /dev/flash/kernel linux.bin.gz

2. ベリファイ実行例

2.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.2. kernel領域に書き込まれたイメージが正しいかのチェックを行う
2.2.1. ベリファイ例

kernel領域に書き込まれたイメージが引数に渡されたファイルと 同じかどうかのチェックを行います。 チェックを行う際は、netflashの"-C"オプションを付けて実行します。 ("-C"オプションを付けたときは、チェックのみ行い、フラッシュへの書き込みは行いません)

例えば、kernel領域にlinux-a400-1.08.bin.gzが書き込まれた状態で、 フラッシュのデータが、linux-a400-1.08.bin.gzと同じかどうかを チェックすると、以下のような結果となります。

[root@armadillo440-0 (ttymxc1) ~]# netflash -knubC -r /dev/flash/kernel
http://download.atmark-techno.com/armadillo-440/image/linux-a400-1.08.bin.gz > /dev/null
[root@armadillo440-0 (ttymxc1) ~]#
2.2.2. ベリファイ時のエラー例

例えば、kernel領域にlinux-a400-1.08.bin.gzが書き込まれた状態で、 フラッシュのデータが、linux-a400-1.07.bin.gzと同じかどうかを チェックすると、以下のような結果となります。

[root@armadillo440-0 (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
[root@armadillo440-0 (ttymxc1) ~]#