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に書きこまれているイメージをチェックすることができます。