第14章 Armadillo-IoT 上に Debian GNU/Linux を構築する

Armadillo-IoT の標準ルートファイルシステムは、Atmark Dist で作成された initrd です。initrd を使う方法は実環境での運用には向いていますが、ルートファイルシステムの空き容量が少ない、変更を簡単に保存できないなどの問題があるので開発段階には適切ではありません。

Debian GNU/Linux を構築しておけば、開発に役立つ様々なツールを apt-get コマンド一発でインストールできたり、セルフコンパイルできるようになったりと、大変便利です。Debian GNU/Linux のバージョンは、Debian 7 wheezy を使用します。

Armadillo-IoTでは、ユーザーランドのルートファイルシステムは microSD/SD カードまたは USB メモリにも配置することができます。本章では、例としてmicroSD/SD カードにDebian GNU/Linux ルートファイルシステムを構築する手順を説明します。

[警告]

ルートファイルシステムに Debian GNU/Linux を構築する場合は、パーティションの空き容量が約 1GB 以上必要です。

14.1. パーティションの作成とフォーマット

Armadillo-IoTに microSD、またはSDを接続してください。

[ティップ]

microSD/SDが複数接続された場合、デバイスファイルの番号(/dev/mmcblkN の 'N')は認識順で0からの連番が割り当てられます。

Armadillo-IoTにmicroSD(Armadillo-410:CON1)、SD(ベースボード:CON4)のどちらも接続した場合、microSDが/dev/mmcblk0、SDが/dev/mmcblk1となります。

以下は、microSD、SDのどちらか1つのみを接続した場合の手順となります。

まず、microSD/SD に1つのプライマリパーティションを作成します。

図14.1「パーティション作成手順」のようにしてパーティションを構成してください。

[armadillo ~]# fdisk /dev/mmcblk0
The number of cylinders for this disk is set to 4744
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): d                                                     1
Selected partition 1

Command (m for help): n                                                     2
Command action
   e   extended
   p   primary partition (1-4)
p                                                                           3
Partition number (1-4): 1                                                   4
First cylinder (1-4744, default 1):                                         5
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-4744, default 4744):          6
Using default value 4744

Command (m for help): w                                                     7
The partition table has been altered!
Calling ioctl() to re-read partition table.
 mmcblk0: p1
[armadillo ~]#

図14.1 パーティション作成手順


1

まずは、既存のパーティションを削除します。複数のパーティションがある場合は、全て削除してください。

2

新しくパーティションを追加します。

3

パーティション種別にはプライマリを指定します。

4

パーティション番号には1を指定します。

4

開始シリンダにはデフォルト値(1)を使用するので、そのまま改行を入力してください。

5

最終シリンダにもデフォルト値(4744)を使用するので、そのまま改行を入力してください。

6

変更をmicroSD/SDに書き込みます。

[ティップ]

使用する microSD/SD カードによって仕様が異なるため、表示されるシリンダ数は手順通りとはならない場合があります。

次に、図14.2「ファイルシステム作成手順」のようにして、EXT3 ファイルシステムでフォーマットします。

[armadillo ~]# mke2fs -j -L rootfs /dev/mmcblk0p1
mke2fs 1.25 (20-Sep-2001)
Filesystem label=rootfs
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
490560 inodes, 979710 blocks
48985 blocks (4%) reserved for the super user
First data block=0
30 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 25 mounts or
180.00 days, whichever comes first.  Use tune2fs -c or -i to override.

図14.2 ファイルシステム作成手順


14.2. ルートファイルシステムの構築

Debian GNU/Linux を構築する場合、付属 DVD の debian ディレクトリ以下のアーカイブを使用するか、弊社ダウンロードサイトからアーカイブを取得します。新機能の追加や不具合の修正などが行われているため、DVD に収録されているものよりも新しいバージョンがリリースされているかを確認して、最新バージョンのアーカイブを利用することを推奨します。

アーカイブをファイルシステム上に展開することでルートファイルシステムを構築することができます。

ここで説明する例では、debian アーカイブの取得に curl コマンドを使用します。

[armadillo ~]# mount /dev/mmcblk0p1 /mnt/
[armadillo ~]# cd /mnt
[armadillo /mnt]# curl -O http://armadillo.atmark-techno.com/files/downloads/armadillo-iot/debian/debian-wheezy-armel_aiot_yyyymmdd.tar.gz
[armadillo /mnt]# tar zxf debian-wheezy-armel_aiot_yyyymmdd.tar.gz
[armadillo /mnt]# rm debian-wheezy-armel_aiot_yyyymmdd.tar.gz
[armadillo /mnt]# cd
[armadillo ~]# umount /mnt

図14.3 Debian アーカイブによるルートファイルシステムの構築例


14.3. カーネルパラメータの設定

ユーザーランドの場所は、カーネルパラメータで指定します。

カーネルパラメータの指定をおこなうため、Armadillo-IoTを保守モードで起動してください。

ルートファイルシステムを microSD/SD のパーティション1にする場合は、図14.4「ルートファイルシステム指定例」を実行してください。

hermit> setenv console=ttymxc1,115200 root=/dev/mmcblk0p1 noinitrd rootwait

図14.4 ルートファイルシステム指定例


以上の設定をおこない、boot コマンドを実行するかオートブートモードで再起動すると、microSD/SD カード上に構築されたDebian GNU/Linux が起動します。

カーネルパラメータの設定を元に戻す方法については、図14.5「カーネルパラメータの設定を元に戻す」を参照してください。

hermit> clearenv

図14.5 カーネルパラメータの設定を元に戻す


インストール直後の Debian GNU/Linuxで、ログイン可能なユーザーを表14.1「ユーザー名とパスワード」に示します。

表14.1 ユーザー名とパスワード

ユーザー名パスワード権限
atmarkatmark一般ユーザー
rootroot特権ユーザー