このHowtoでは、Armadillo-X1,Armadillo-IoT G3/G3L(以降Armadilloと記載)で、U-Bootブートスクリプトを使用する方法をご紹介します。
1.はじめに
Armadilloで採用しているブートローダであるU-Bootには、起動時にスクリプトファイル(boot.scr)を読み込んで自動起動してくれる機能あります。boot.scrはu-bootコマンドを記述したテキストファイルを作成し、mkimageツールを使って生成することができます。 複数のArmadilloで同一のsetenv環境変数設定を行いたい場合などに便利です。
このHowtoでは例としてLinuxカーネル起動オプションでoverlayfsを有効にします。
2.u-bootコマンドを記述したテキストファイルの作成
ATDE上でテキストファイル"boot.txt"を作成します。
[ATDE]$ vi boot.txt
"boot.txt"は以下のように記載します。
setenv optargs overlay
mmc dev ${mmcdev};
if mmc rescan; then
if run loadimage; then
run mmcboot;
fi
fi
3.boot.scrの生成
ATDE上でboot.scrを生成します。
[ATDE]$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
生成した"boot.scr"をArmadilloに転送して下さい。
4.boot.scrの配置
ATDEからArmadilloに転送した"boot.scr"を、eMMCの第1パーティション(/dev/mmcblk2p1)にコピーします。
[armadillo]$ sudo mount /dev/mmcblk2p1 /mnt/
[armadillo]$ cp boot.scr /mnt/
[armadillo]$ sync
[armadillo]$ sudo umount /mnt/
5.再起動とLinuxカーネル起動オプションとoverlayfsの確認
Armadilloを再起動して、設定が反映されている事を確認します。
[armadillo]$ sudo reboot
catコマンドを用いて/proc/cmdlineを確認し、Linuxカーネル起動オプション"overlay"が有効になっていることを確認します。
[armadillo]$ cat /proc/cmdline
console=ttymxc4,115200 root=/dev/mmcblk2p2 rootwait rw overlay
dfコマンドを用いてファイルシステムの状態を確認します。
[armadillo]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 262144 1256 260888 1% /
udev 10240 0 10240 0% /dev
tmpfs 100272 4828 95444 5% /run
/dev/mmcblk2p2 3457408 1242848 2019216 39% /overlay/system
none 262144 1256 260888 1% /overlay/ramdisk
tmpfs 250672 0 250672 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 250672 0 250672 0% /sys/fs/cgroup
tmpfs 50136 0 50136 0% /run/user/0
コマンド結果よりルートディレクトリ("Mounted on"の値が"/"になっている行)の"Filesystem"の値が"overlay"になっている事が確認できます。
6.注意点
IoTゲートウェイ管理クラウド「node-eye」に必要なnode-eyeパッケージをArmadilloにインストールすると、node-eye専用のboot.scrに上書されますのでご注意ください。 また、独自作成した"boot.scr"を使用したい場合、IoTゲートウェイ管理クラウド「node-eye」を利用することが出来ませんのでご注意ください。