Armadilloフォーラム

netflashコマンドの-mオプションの使い方について

kominami

2016年10月17日 14時38分

お世話になります。

netflashコマンドの-mオプションの使い方について、
ご教示いただけないでしょうか。

以下に詳しい状況を記載します。

■状況
netflashコマンドでhttpサーバから取得したユーザランドを書き込んだ時に
書き込みに失敗し、hermitから書き込みを行わなければいけない時があります。

リブート前に書き込み失敗したことがわかればと思い、方法がないかと調査を行いました。

netflashのコードを確認したところ「CONFIG_USER_NETFLASH_HMACMD5」を有効にすることで、
-mオプションのMD5チェックサム機能が存在することがわかりました。

※ほかに下記URLの方法は見つけましたが、いろいろ方法を検討して都合のいい方法を選択したいと考えています
 http://lists.atmark-techno.com/pipermail/armadillo/2013-October/009244…

以下のように使用できるのではと思い検証してみたのですが、うまくいきませんでした。
1.ユーザランドのmd5キー値を取得
 [ATDE ~]# md5sum romfs.img.gz
結果
 「0e6b179e337589ba9eb881f2de9d1523 romfs.img.gz」と出力される

2.netflashのオプションに-mを追加し、1.結果の値を指定
 [armadillo ~]# netflash -m 0e6b179e337589ba9eb881f2de9d1523 -b -k -n -u -s -r /dev/flash/userland http://192.168.0.20:8080/romfs.img.gz
結果
 ダウンロード終了後、「netflash: bad HMAC MD5 signature」と出力され、書き込みが行われない

-mに指定する文字列が間違っているのでしょうか。

大変お手数ですが、ご教示いただけますと幸いです。
よろしくお願いいたします。

コメント

伊藤様

早速ご回答頂き、ありがとうございます。

後出しになってしまい大変恐縮ですが、実はこの方法での検証も行っており、
うまくいくことは確認できております。

ただ、この方法でも最終的にやりたいことは実現可能なのですが、
ダウンロードを2回行うことになりますので、非常に時間がかかるのが気になっています。

何らかの方法で端末内に保存後、netflashという手もあるのですが、
外部ストレージを付ける予定もなく、本体容量も不安があります。

そのため、一度のダウンロード時間で済む別の方法はないかと調査しておりました。

もし、心当たりがあればご教示いただけますと幸いです。
よろしくお願いいたします。

> 伊藤です。
>
> netflashコマンドの-mオプションの使い方ではありませんが、
> 以下のブログは参考になりませんでしょうか。
>
> netflashでフラッシュに書かれたイメージのベリファイを行う
> https://users.atmark-techno.com/blog/53/1297
>

> 何らかの方法で端末内に保存後、netflashという手もあるのですが、
> 外部ストレージを付ける予定もなく、本体容量も不安があります。

tmpfs を mount しておいて、そこに download。
その後ファイルを指定して netflash を実施。
終わったら、tmpfs を umount

というのは、どうでしょう?

at_yashi様

tmpfsは空き領域がありましたので、今のところ、その方法が一番良さそうだと思います。
検証してみます。

ご回答頂きありがとうございました。

> > 何らかの方法で端末内に保存後、netflashという手もあるのですが、
> > 外部ストレージを付ける予定もなく、本体容量も不安があります。
>
> tmpfs を mount しておいて、そこに download。
> その後ファイルを指定して netflash を実施。
> 終わったら、tmpfs を umount
>
> というのは、どうでしょう?
>