ユーザ用ツール

サイト用ツール


mae3xx_devel:custom_firmware:start

ファームウェア更新時に任意の処理を行うファームウェアの作成

MA-E3xx のファームウェアは、ZIP アーカイブ形式となっています。(参照: ファームウェアの構造)
下記の動作をファームウェアファイルの中に含めることが可能です。

  • ファームウェア更新の準備処理 (firmup-pre.sh)
  • ファームウェア更新の事後処理 (firmup-post.sh)

もしくは

  • ファームウェア更新処理1) (firmup.sh)


ファームウェア更新プログラム

ファームウェアの更新は、/usr/local/sbin/firmup スクリプトにより行います。
下記シーケンスで処理が行われます。

  • ファームウェアアーカイブ mount point (/tmp/.firmware) を mkdir
  • rootfs.img が含まれているか?
    • YES → 現在と反対側のエリアのみ更新対象とする
  • [事前処理] firmup-pre.sh が含まれているか?
    • YES →
      • 更新事前処理実行: # /bin/bash /tmp/.firmware/firmup-pre.sh /tmp/.firmware 更新対象エリア(0/1)
  • [更新処理] firmup.sh が含まれているか?
    • YES →
      • 更新処理実行: # /bin/bash /tmp/.firmware/firmup.sh /tmp/.firmware 更新対象エリア(0/1)
      • ファームウェア更新スクリプト終了2)
  • 規定のファームウェア更新処理 (kernel, kernel module, initramfs, rootfs, opt(JVM), device tree blob, bootloader)
  • オーバーレイエリア更新処理 (etc, home, other)
  • [事後処理] firmup-post.sh が含まれているか?
    • YES →
      • 更新事後処理実行: # /bin/bash /tmp/.firmware/firmup-post.sh /tmp/.firmware 更新対象エリア(0/1)
  • ファームウェアファイル umount 処理実行


実装の例

Debian package 更新

apt-get update, apt-get upgrade を行うスクリプトを “firmup.sh” として入れることで、
インターネットに接続された MA-E3xx のパッケージを更新させるファームウェアとすることができます。

firmup.sh
#! /bin/bash
 
apt-get update
apt-get -f upgrade
1)
v2.1.9 までは、処理後ファームウェアを umount せず exit しているため、手動での ファームウェア umount 処理が必要です
2)
ここに cleanup 処理が抜けています。のちほど追加予定
mae3xx_devel/custom_firmware/start.txt · 最終更新: 2015/09/15 10:07 by admin