ブログ

Armadillo-800シリーズ:NORに書き込み済みのイメージのチェック方法

at_kazutaka.bito
2019年5月7日 9時50分

Armadillo-800シリーズで、NORに書き込み済みのイメージがオリジナルのイメージと同じかどうか確認する方法です。

ここでは、例として、Armadillo-840を使用して、
ブートローダー、カーネル、ユーザーランドのオリジナルのイメージのファイル名が
 loader-armadillo840-nor-v3.11.0.bin
 linux-a840-v1.21.bin.gz
 romfs-a840-v1.14.img.gz
のものをNORに書き込み済みとします。

1.オリジナルのイメージのサイズとチェックサムを確認

オリジナルのイメージのサイズとチェックサムを確認します。
(下記は、開発環境(ATDE)で確認しています。)

ファイルサイズは、lsコマンド(-lオプション)で確認できます。

atmark@atde:~$ ls -l loader-armadillo840-nor-v3.11.0.bin
-rw-r--r-- 1 atmark atmark 55488  3月 30  2018 loader-armadillo840-nor-v3.11.0.bin
 
atmark@atde:~$ ls -l linux-a840-v1.21.bin.gz
-rw-r--r-- 1 atmark atmark 2837419  3月 31  2018 linux-a840-v1.21.bin.gz
 
atmark@atde:~$ ls -l romfs-a840-v1.14.img.gz
-rw-r--r-- 1 atmark atmark 44213944  3月 31  2018 romfs-a840-v1.14.img.gz


チェックサムはmd5sumコマンドで確認できます。

atmark@atde:~$ md5sum loader-armadillo840-nor-v3.11.0.bin
87a31c2473002ea851304de5965b4d8e  loader-armadillo840-nor-v3.11.0.bin
 
atmark@atde:~$ md5sum linux-a840-v1.21.bin.gz
efe087ca0d5cdf9e8cc92874b44fa08f  linux-a840-v1.21.bin.gz
 
atmark@atde:~$ md5sum romfs-a840-v1.14.img.gz
94135ed6e73821b6700baa392abca7ea  romfs-a840-v1.14.img.gz

以上の結果より、
ブートローダー:loader-armadillo840-nor-v3.11.0.bin
 サイズ:55488[Byte]
 チェックサム:87a31c2473002ea851304de5965b4d8e

カーネル:linux-a840-v1.21.bin.gz
 サイズ:2837419[Byte]
 チェックサム:efe087ca0d5cdf9e8cc92874b44fa08f

ユーザーランド:romfs-a840-v1.14.img.gz
 サイズ:44213944[Byte]
 チェックサム:94135ed6e73821b6700baa392abca7ea
であることが確認できました。

2.オリジナルのイメージとNORに書き込んだイメージをチェックサムで比較

Armadilloを起動します。
(以下、Aramdillo-840での実施例)

ブートローダー、カーネル、ユーザーランドが書き込まれているNORの領域(デバイスファイル)
 ブートローダー:/dev/mtd0
 カーネル:/dev/mtd4
 ユーザーランド:/dev/mtd5
から、オリジナルのファイルサイズ分だけのデータを取り出して、チェックサムを確認します。

補足)Armadillo-810の場合も、上記のデバイスファイルは同じです。

基本的な手順は、

cat [NORの領域(デバイスファイル名)] | head -c [オリジナルのファイルサイズ] > /home/ftp/pub/temp

で、
/home/ftp/pub/temp(※)
にNORに書き込まれているイメージをコピーして、

md5sum /home/ftp/pub/temp

で確認したチェックサムが、オリジナルのチェックサムと同じであることを確認します。

コピーしたイメージは、都度、削除します。

rm /home/ftp/pub/temp


※)イメージのファイルサイズが大きいため、ramfsである
/home/ftp/pub/
の下にイメージをコピーしています。
メモリの使用量によって、容量不足により/home/ftp/pub/にコピーできない場合は、
USBメモリをマウントして、USBメモリ上にコピーする方法がとれます。

上記の基本の手順に基づいて、本例の各イメージのチェックサムを確認します。

ブートローダー(本例では、オリジナルのファイルサイズが55488[Byte])の場合、

[armadillo ~]# cat /dev/mtd0 | head -c 55488 > /home/ftp/pub/temp
[armadillo ~]# md5sum /home/ftp/pub/temp
87a31c2473002ea851304de5965b4d8e /home/ftp/pub/temp
[armadillo ~]# rm /home/ftp/pub/temp


カーネル(本例では、オリジナルのファイルサイズが3144805[Byte])の場合、

[armadillo ~]# cat /dev/mtd4 | head -c 2837419 > /home/ftp/pub/temp
[armadillo ~]# md5sum /home/ftp/pub/temp
efe087ca0d5cdf9e8cc92874b44fa08f /home/ftp/pub/temp
[armadillo ~]# rm /home/ftp/pub/temp


ユーザーランド(本例では、オリジナルのファイルサイズが15294660[Byte])の場合、

[armadillo ~]# cat /dev/mtd5 | head -c 44213944 > /home/ftp/pub/temp
[armadillo ~]# md5sum /home/ftp/pub/temp
94135ed6e73821b6700baa392abca7ea /home/ftp/pub/temp
[armadillo ~]# rm /home/ftp/pub/temp


それぞれのチェックサム(md5sum)の結果が、 上記1の手順で確認したオリジナルのチェックサムと同じかどうかで、
NORに書きこまれているイメージをチェックすることができます。