ブログ

Armadillo-X1, Armadillo-IoT G3/G3L: U-Bootブートスクリプト(boot.scr)の使い方

at_keita.mogaki
2017年11月15日 10時20分

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」を利用することが出来ませんのでご注意ください。