Armadillo-IoT(G3L/G3)/X1で、USBメモリでのアップデート方法です。
(下記の手順では、Armadillo-IoT(G3L)で説明しています。)
注意)node-eyeを使用している場合、ここで紹介するboot.scrを変更する方法は、使用できません。
USBメモリで起動可能にする
予め、
Howto : Armadillo-X1,Armadillo-IoT G3/G3LでUSBストレージ内のLinuxカーネルを起動する方法
の
U-Bootコマンドのテキストファイル(boot.txt)作成
boot.scrの生成
boot.scrの配置
の手順で、USBメモリのイメージで起動するboot.scrをArmadilloに書き込んでおきます。
アップデート用USBメモリの作成
1.USBメモリにルートファイルシステムを構築
Armadillo-IoT ゲートウェイ G3L製品マニュアル
第15章 SDブートの活用
の
15.3. LinuxカーネルイメージとDTBの配置
までの手順で「USBメモリ」(※)にブートディスクを作成します。
※)手順内の"SDカード"等は、USBメモリと読み替える必要はありますが、コマンドは同じです。
2.USBメモリにusbboot_enable(※)を追加
※)手順1のboot.scrは、usbboot_enableファイルを見つけるとUSBブートするため。
手順2.1のUSBメモリをArmadilloに挿入します。
sda: sda1 sda2
という行が含まれるログが見えます。
下記のコマンドを実行します。
root@armadillo:~# mount /dev/sda1 /mnt
root@armadillo:~# touch /mnt/usbboot_enable
root@armadillo:~# sync
root@armadillo:~# umount /mnt
3.アップデート用イメージファイルとスクリプトの追加
ここでは、アップデート用イメージファイルを
ブートローダ:u-boot.bin
カーネル:uImage
DTB:armadillo_iotg_g3l.dtb
ルートファイルシステム:debian-jessie-armhf.tar.gz
ブートスクリプト(手順1のもの):boot.scr
とします。
root@armadillo:~# mkdir /images
を実行して、/imagesディレクトリを作成して、上記のアップデート用イメージファイルを/imagesに置きます。
イメージアップデートのスクリプト
/images/install.sh
を下記のような内容で作成します。
/images/install.sh
#!/bin/sh
echo 1 > /sys/class/leds/led3/brightness
# 1. Bootloader
dd if=/images/u-boot.bin of=/dev/mtdblock0
sync
# 2. Kernel
mount -t vfat /dev/mmcblk2p1 /mnt
cp /images/uImage /mnt/uImage
umount /mnt
# 3. DTB
mount -t vfat /dev/mmcblk2p1 /mnt
cp /images/armadillo*.dtb /mnt/
umount /mnt
# 4. Debian
mount -t ext4 /dev/mmcblk2p2 /mnt
rm -rf /mnt/*
tar zxf /images/debian-jessie-armhf.tar.gz -C /mnt
umount /mnt
# 5. boot.scr
mount -t vfat /dev/mmcblk2p1 /mnt
cp /images/boot.scr /mnt/
umount /mnt
echo 0 > /sys/class/leds/led3/brightness
root@armadillo:~# chmod +x /images/install.sh
を実行して、install.shに実行権限を付けます。
4.ブート時にインストールスクリプトが実行されるよう設定
/etc/rc.local
の末尾、exit 0の前に
sh /images/install.sh
poweroff
の2行を追加します。
以上で、アップデートディスクの作成は完了です。
USBメモリをArmadilloに挿入して電源をONにしてください。
/images/install.sh
内の
echo 1 > /sys/class/leds/led3/brightness
により、アップデート開始時にLED3が点灯します。
(LED3が点灯するまで30秒くらいかかります。)
echo 0 > /sys/class/leds/led3/brightness
により、アップデート終了時にLED3が消灯します。
(LED3が消灯するまで30秒くらいかかります。)
LED4も消灯しましたら、Armadilloの電源をOFFにしてください。
(LED4が消灯するまで30秒くらいかかります。)
USBメモリを抜いて、電源をONすると、アップデートされたイメージで起動します。