mae3xx_devel:custom_firmware:start

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
mae3xx_devel:custom_firmware:start [2014/03/19 18:09]
admin 作成
mae3xx_devel:custom_firmware:start [2015/09/15 10:07] (現在)
admin
ライン 1: ライン 1:
 +====== ファームウェア更新時に任意の処理を行うファームウェアの作成 ======
 +
 +MA-E3xx のファームウェアは、ZIP アーカイブ形式となっています。(参照:​ [[mae3xx_ope:​firmware_structure:​start]])\\
 +下記の動作をファームウェアファイルの中に含めることが可能です。
 +  * ファームウェア更新の準備処理 (firmup-pre.sh)
 +  * ファームウェア更新の事後処理 (firmup-post.sh)
 +
 +もしくは
 +
 +  * ファームウェア更新処理((v2.1.9 までは、処理後ファームウェアを umount せず exit しているため、手動での ファームウェア umount 処理が必要です)) (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)''​
 +      * ファームウェア更新スクリプト終了((ここに cleanup 処理が抜けています。のちほど追加予定))
 +  * 規定のファームウェア更新処理 (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 のパッケージを更新させるファームウェアとすることができます。
 +
 +<file shell firmup.sh>​
 +#! /bin/bash
 +
 +apt-get update
 +apt-get -f upgrade
 +</​file>​
 +
 +
 +
 +
  
mae3xx_devel/custom_firmware/start.1395220163.txt.bz2 · 最終更新: 2014/03/19 18:09 by admin