a2c-maru
2024年2月9日 21時32分
node-eyeマニュアル
Armadillo-IoT ゲートウェイ G3L
の「4.5.5. リカバリーイメージの書き込み方法」には、
node-eye と Webサーバによるリカバリーイメージの
書き込み方法が記載されていますが、
リカバリーイメージを(node-eyeを介さず)microSDで
書き込むことはできないでしょうか?
背景は次の通りです。
・エンドユーザーへの設置後の作業を最小限にしたい、
・設置前の準備段階で実施するとしても、
必要な構成は極力シンプルにしたい。
期待としては、インストールディスクイメージと一緒に
書き込みたいです。
よろしくお願いいたします。
コメント
at_syunya.ohshio
大塩です。
> リカバリーイメージを(node-eyeを介さず)microSDで
> 書き込むことはできないでしょうか?
>
> ・エンドユーザーへの設置後の作業を最小限にしたい、
> ・設置前の準備段階で実施するとしても、
> 必要な構成は極力シンプルにしたい。
>
> 期待としては、インストールディスクイメージと一緒に
> 書き込みたいです。
お待たせして申し訳ありません。
インストールディスクイメージ作成ツールを修正し、node-eye リカバリーイメージに対応するようにしました。
暫定版ではありますが、インストールディスクイメージ作成ツールのURLを添付しますのでこちらで動作確認をしてみてください。
https://download.atmark-techno.com/misc/forum/make_install_disk_image_n…
■使用方法
通常では sudo ./build.sh ...
とするところを sudo ./build.sh -r ...
とオプション設定することで、node-eye リカバリーイメージを書き込めるようになります。
sudo ./build.sh -r BOARD UBOOT KERNEL DTB USERLAND [RECOVERY] [RECOVERY_DTB] [RECOVERY_BOOTSCR] [BOOTSCR]
この内容で作成したインストールディスクイメージを使用すると、mmcblk2p3(リカバリーイメージ用パーティション)にリカバリーイメージが設置されます。
このインストールディスクイメージ作成ツールにつきまして、正式版は2月末リリースを予定しております。
以上です。
a2c-maru
a2c-maru
at_syunya.ohshio
大塩です。
> > sudo ./build.sh -r BOARD UBOOT KERNEL DTB USERLAND [RECOVERY] [RECOVERY_DTB] [RECOVERY_BOOTSCR] [BOOTSCR]
>
> [RECOVERY_DTB]の部分は、Webサーバに格納する場合と同じアーカイブの形(uImage.recovery.dtb.zip)でよいのでしょうか?
node-eye マニュアルで armadillo_iotg_g3.dtb.recovery を uImage.recovery.dtb.zip にしていますが、この zip にする前のファイル armadillo_iotg_g3.dtb.recovery を指定してください。
以上です。
at_syunya.ohshio
大塩です。
追記となりますが、RECOVERY_BOOTSCR が必要となりますので
以下を参考に作成して同様に書き込むと良いです。
以下は、node-eye を用いて リカバリーイメージを書き込んだ際、/dev/mmcblk2p3 パーティションに生成される boot.ser の例です。
setenv ne_main_boot echo nemainboot setenv bootstate boot_state setenv bootstatepart 1 setenv loadboot_state fatload mmc ${mmcdev}:${bootstatepart} ${loadaddr} ${bootstate}; setenv recoverypart 3 # recovery boot memory map (uboot text start from 0x9D80 0000) #| start addr | usage | size | #|-------------+--------+------| #| 0x8800 0000 | uImage | 120M | #| 0x8F00 0000 | fdt | 2M | #| 0x8F20 0000 | initrd | 14M |(unused) setenv setrecovery echo Setting up recovery env... \; setenv mmcpart ${recoverypart} \; setenv image ${image}.recovery \; setenv fdt_addr 0x8F000000 \;setenv fdt_file ${fdt_file}.recovery \; setenv initrd_addr 0x8F200000 \; setenv loadaddr 0x88000000 ; if run loadboot_state; then echo Compare boot_state... else echo WARNNING: boot_state file not found. Generating boot_state file... # 0x2c302c30 means "0,0," in hex mw.l ${loadaddr} 0x2c302c30 #TODO: calc MD5 checksum in ascii and write boot_state fatwrite mmc ${mmcdev}:${bootstatepart} ${loadaddr} ${bootstate} 0x4 fi #GET value of try kernel_try=1 mw ${fdt_addr} 0x30 #write "0 (=0x30)" for compare if cmp.b ${fdt_addr} ${loadaddr} 1; then kernel_try=0 fi #GET value of success kernel_success=1 mw ${fdt_addr} 0x30 #write "0 (=0x30)" for compare setexpr success_addr ${loadaddr} + 2 if cmp.b ${fdt_addr} ${success_addr} 1; then kernel_success=0 fi echo DEBUG:KERNEL_TRY is ${kernel_try} echo DEBUG:KERNEL_SUCCESS is ${kernel_success} # Selection MAIN or RECOVERY kernel image #| try | success | stete | #|-----+---------+-------------------------------------------| #| 0 | 0 | First time boot; try=1, main boot | #| 1 | 1 | Successfully boot before; main boot | #| 1 | 0 | Failed boot before; recovery boot | #| 0 | 1 | Invalid "boot_state"; recovery boot | if itest ${kernel_success} == ${kernel_try}; then if itest ${kernel_try} == 0; then echo First time boot after update run loadboot_state mw.b ${loadaddr} 0x31 # 0x31 means ascii "1" fatwrite mmc ${mmcdev}:${bootstatepart} ${loadaddr} ${bootstate} ${filesize} fi echo *MAIN KERNEL BOOT* # MAIN KERNEL BOOT routine has fall through below. else echo *RECOVERY KERNEL BOOT* #TODO: increace fdtaddr and initrdaddr before loading recovery (big) kernel run setrecovery fi #MAIN BOOTCMD mmc dev ${mmcdev}; if mmc rescan; then if run loadimage; then run mmcboot; fi echo WARNNING: MAIN KERNEL NOT FOUND echo *RECOVERY KERNEL BOOT* run setrecovery fi mmc dev ${mmcdev}; if mmc rescan; then if run loadimage; then run mmcboot; fi fi echo "No kernel found"
以上です。
at_koseki
2024年2月14日 18時25分
古関です。
確かに不便ですね。リカバリイメージの書き込みができるように
インストールディスクイメージ作成ツールに手を加えてみます。
来週の頭くらいに、ご提供出来ると思います。遅くなる場合はご一報いたします。
https://armadillo.atmark-techno.com/resources/software/armadillo-iot-g3…