ブログ

Armadillo-IoT(G3/G3L)/X1: 簡易的なインストールディスクイメージの作成方法

at_yuma.arakawa
2017年1月16日 8時46分

インストールディスクの実態は、SDのブートディスクです。Armadilloの内臓ストレージ(eMMC及びQSPIフラシュメモリ)へ書き込むイメージファイルと、インストールスクリプトを含んでおり、SDブート時にインストールスクリプトが実行されるよう設定されています。

ブートディスクの作成方法や、内臓ストレージへイメージを書き込む方法はマニュアルで公開しており、これらの手順を組み合わせることで、簡易的にインストールディスクイメージを作成できます。

マニュアルのいくつかの手順を組み合わせることで、簡易的なものを作成可能です。

この方法以外にも、ツールを使って作成する方法もあります。詳しくはArmadillo-X1, Armadillo-IoT G3/G3L: インストールディスクイメージ作成ツールとその使用方法を参照してください。

ブートディスクの作成

マニュアルに従い、SDのブートディスクを作成してください。

このブートディスクがインストールディスクとなります。 以降の手順で、内臓ストレージへ書き込むイメージファイルやインストールスクリプトの配置等を行いますので、作成したブートディスクでSDブートしておいてください。

イメージファイルの配置

イメージファイルやインストールスクリプトは、インストールディスクの /images/ へ配置することとします。

SDブートしたArmadillo上で、以下のようにディレクトリを作成してください。

[armadillo]# mkdir /images

そして、作成したディレクトリへイメージファイルを配置してください。 各イメージは、以下のファイル名で配置することとします。

ブートローダーイメージ
u-boot.bin
Linuxカーネルイメージ
uImage
Device Tree Blob
armadillo_iotg_g3.dtb / armadillo_iotg_g3l.dtb / armadillo_x1.dtb
Debian GNU/Linux ルートファイルシステム
debian-jessie-armhf.tar.gz

インストールスクリプトの作成・配置

イメージを内臓ストレージへ書き込む方法は、マニュアルの以下の箇所で説明しています。

マニュアルではシェル上で実行するコマンドを紹介していますので、各イメージを書き込むコマンドをテキストファイルに並べる事で、簡易的にインストールスクリプトを作成できます。

【参考】

#!/bin/sh

# 1. ブートローダーイメージの書き換え
dd if=/images/u-boot.bin of=/dev/mtdblock0
sync

# 2. Linuxカーネルイメージの書き換え
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. ルートファイルシステムの書き換え
mount -t ext4 /dev/mmcblk2p2 /mnt
rm -rf /mnt/*
tar zxf /images/debian-jessie-armhf.tar.gz -C /mnt
umount /mnt

なお、インストールスクリプトは install.sh というファイル名で /images/ ディレクトリへ配置することとします。

そして、以下のように、実行権限を付与してください。

[armadillo]# chmod +x /images/install.sh

ブート時にインストールスクリプトが実行されるよう設定

ブート時にインストールスクリプトが実行されるよう /etc/rc.local へ設定を追加します。

以下の2行を /etc/rc.local へコマンドを追加して下さい。

・・・省略・・・

sh /images/install.sh    <== 追加

halt    <== 追加

exit 0

ここでは、インストールスクリプトの実行と、インストールスクリプト終了後にhaltを追加しています。

以上で、インストールディスクの作成は完了です。

インストールディスクイメージの作成

インストールディスクを2枚以上作成する場合、インストールディスクイメージを作成し、2枚目以降はイメージからインストールディスクを作成すると便利です。

Windows上では、たとえば、Win32 Disk Imager といったツールで、SDカードからイメージファイルを作成できます。 また、イメージファイルからSDカードへの書き込みも、このツールで行うことができます。

Win32 Disk Imagerを使用したイメージファイルの書き込み方法は、以下のブログ記事で紹介しています。

SDカードからイメージファイルを作成する場合は、イメージ書き込みとは逆に、 保存するイメージファイル名を指定し、 Read ボタンで、イメージファイルの作成を行うことができます。 詳しくは、ツールのREADMEを参照してください。

参考: インストールスクリプトのカスタマイズ

インストールスクリプトはマニュアルでも紹介しているコマンドを並べたシェルスクリプトです。 コマンドの追加や変更でカスタマイズ可能です。

例えば、Armadillo-IoT G3のユーザーLED3(5つ並んだLEDの真ん中のLED)で

  • インストールスクリプト開始: 点灯
  • インストールスクリプト終了: 消灯

とする場合、以下のようにコマンドを追加します。

#!/bin/sh

echo 255 > /sys/class/leds/led3/brightness    <== 追加(点灯)

# 1. ブートローダーイメージの書き換え
dd if=/images/u-boot.bin of=/dev/mtdblock0
sync

# 2. Linuxカーネルイメージの書き換え
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. ルートファイルシステムの書き換え
mount -t ext4 /dev/mmcblk2p2 /mnt
rm -rf /mnt/*
tar zxf /images/debian-jessie-armhf.tar.gz -C /mnt
umount /mnt

echo 0 > /sys/class/leds/led3/brightness    <== 追加(消灯)

Armadillo-IoT G3のLED制御方法について、詳しくは以下のマニュアルを参照して下さい。

また、Armadillo-X1でのLEDの制御方法については、以下のマニュアルを参照して下さい。

制御方法はArmadillo-IoT G3と同じですが、制御できるLEDの番号が異なります。