Armadillo-X1,Armadillo-IoT G3/G3L(以降Armadilloと記載)で、U-Bootブートスクリプトを使用する方法をご紹介します。
1.はじめに
Armadilloで採用しているブートローダであるU-Bootには、起動時にスクリプトファイル(boot.scr)を読み込んで
自動起動してくれる機能あります。boot.scrはエディタ等で u-bootコマンドを記述したテキストファイルを作成しmkimageツールを使って専用のヘッダ情報を付与することで生成することができます。
複数のArmadilloで同一のsetenv環境変数設定を行いたい場合などに便利です。
今回は例として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]# mount /dev/mmcblk2p1 /mnt/
[armadillo]# cp boot.scr /mnt/
[armadillo]# sync
[armadillo]# umount /mnt/
5.再起動とLinuxカーネル起動オプションとoverlayfsの確認
Armadilloを再起動して、設定が反映されている事を確認します。
[armadillo]# 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」を利用することが出来ませんのでご注意ください。