Armadillo-400シリーズで、NORに書き込み済みのイメージがオリジナルのイメージと同じかどうか確認する方法です。
ここでは、例として、ブートローダー、カーネル、ユーザーランドのオリジナルのイメージのファイル名が
loader-armadillo4x0-v3.11.0.bin
linux-a400-2.06.bin.gz
romfs-a440-2.04.img.gz
のものをNORに書き込み済みとします。
1.オリジナルのイメージのサイズとチェックサムを確認
オリジナルのイメージのサイズとチェックサムを確認します。
(下記は、開発環境(ATDE)で確認しています。)
ファイルサイズは、lsコマンド(-lオプション)で確認できます。
atmark@atde:~$ ls -l loader-armadillo4x0-v3.11.0.bin -rwxrwxrwx 1 atmark atmark 52168 4月 24 2018 loader-armadillo4x0-v3.11.0.bin atmark@atde:~$ ls -l linux-a400-2.06.bin.gz -rw-r--r-- 1 atmark atmark 3144805 3月 31 2018 linux-a400-2.06.bin.gz atmark@atde:~$ ls -l romfs-a440-2.04.img.gz -rwxrwxrwx 1 atmark atmark 15294660 4月 24 2018 romfs-a440-2.04.img.gz
チェックサムはmd5sumコマンドで確認できます。
atmark@atde:~$ md5sum loader-armadillo4x0-v3.11.0.bin bfa6873b442add42181c668195ed13b5 loader-armadillo4x0-v3.11.0.bin atmark@atde:~$ md5sum linux-a400-2.06.bin.gz 703e56060b44efe285e6b52f839fb457 linux-a400-2.06.bin.gz atmark@atde:~$ md5sum romfs-a440-2.04.img.gz acad00e7e7dfe19d3accb5fce635a655 romfs-a440-2.04.img.gz
以上の結果より、
ブートローダー:loader-armadillo4x0-v3.11.0.bin
サイズ:52168[Byte]
チェックサム:bfa6873b442add42181c668195ed13b
カーネル:linux-a400-2.06.bin.gz
サイズ:3144805[Byte]
チェックサム:703e56060b44efe285e6b52f839fb457
ユーザーランド:romfs-a440-2.04.img.gz
サイズ:15294660[Byte]
チェックサム:acad00e7e7dfe19d3accb5fce635a655
であることが確認できました。
2.オリジナルのイメージとNORに書き込んだイメージをチェックサムで比較
Armadilloを起動します。
(以下、Aramdillo-440での実施例)
ブートローダー、カーネル、ユーザーランドが書き込まれているNORの領域(デバイスファイル)
ブートローダー:/dev/mtd0
カーネル:/dev/mtd1
ユーザーランド:/dev/mtd2
から、オリジナルのファイルサイズ分だけのデータを取り出して、チェックサムを確認します。
基本的な手順は、
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メモリ上にコピーする方法がとれます。
上記の基本の手順に基づいて、本例の各イメージのチェックサムを確認します。
ブートローダー(本例では、オリジナルのファイルサイズが52168[Byte])の場合、
[root@armadillo440-0 (ttymxc1) ~]# cat /dev/mtd0 | head -c 52168 > /home/ftp/pub/temp [root@armadillo440-0 (ttymxc1) ~]# md5sum /home/ftp/pub/temp bfa6873b442add42181c668195ed13b5 /home/ftp/pub/temp [root@armadillo440-0 (ttymxc1) ~]# rm /home/ftp/pub/temp
カーネル(本例では、オリジナルのファイルサイズが3144805[Byte])の場合、
[root@armadillo440-0 (ttymxc1) ~]# cat /dev/mtd1 | head -c 3144805 > /home/ftp/pub/temp [root@armadillo440-0 (ttymxc1) ~]# md5sum /home/ftp/pub/temp 703e56060b44efe285e6b52f839fb457 /home/ftp/pub/temp [root@armadillo440-0 (ttymxc1) ~]# rm /home/ftp/pub/temp
ユーザーランド(本例では、オリジナルのファイルサイズが15294660[Byte])の場合、
[root@armadillo440-0 (ttymxc1) ~]# cat /dev/mtd2 | head -c 15294660 > /home/ftp/pub/temp [root@armadillo440-0 (ttymxc1) ~]# md5sum /home/ftp/pub/temp acad00e7e7dfe19d3accb5fce635a655 /home/ftp/pub/temp [root@armadillo440-0 (ttymxc1) ~]# rm /home/ftp/pub/temp
それぞれのチェックサム(md5sum)の結果が、
上記1の手順で確認したオリジナルのチェックサムと同じかどうかで、
NORに書きこまれているイメージをチェックすることができます。