ブログ

Armadillo-440:USBメモリにDebianルートファイルシステムを構築

at_kazutaka.bito
2017年7月10日 16時48分

Armadillo-440で、USBメモリにDebianルートファイルシステムを構築する方法です。
(ブートローダーとカーネルは、ROMに書き込んだもので動作します。)

Armadillo-400 シリーズソフトウェアマニュアル
第8章 カーネル/ユーザーランドの配置
8.2. ストレージに配置する

に記載のSDカードにDebian環境を構築する方法をベースにします。
下記手順内の詳細な説明については、上記マニュアル内の記述を参照願います。

1.パーティションの作成

Armadillo-440にUSBメモリを挿入します。
fdiskコマンドでパーティションを作成します。

[root@armadillo440-0 (ttymxc1) ~]# fdisk /dev/sda
Command (m for help): d // dと入力
Selected partition 1

Command (m for help): n // nと入力
Command action
   e   extended
   p   primary partition (1-4)
p                 // pと入力
Partition number (1-4): 1  // 1と入力
First cylinder (1-487, default 1): Using default value 1 // Enter
Last cylinder or +size or +sizeM or +sizeK (1-487, default 487): Using default value 487 // Enter

Command (m for help): w  // wと入力
The partition table has been altered.
Calling ioctl() to re-read partition table
sd 0:0:0:0: [sda] No Caching mode page found
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1

2.ファイルシステムの作成

mke2fsコマンドでファイルシステムを作成します。

[root@armadillo440-0 (ttymxc1) ~]# mke2fs -j /dev/sda1
mke2fs 1.25 (20-Sep-2001)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
489600 inodes, 977949 blocks
48897 blocks (4%) reserved for the super user
First data block=0
30 block groups
32768 blocks per group, 32768 fragments per group
16320 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 27 mounts or -i to override.

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

Armadillo-440から手順2のUSBメモリを抜いて、PCに挿してATDEに認識させます。
ATDEにdebianルートファイルシステム(下記では、debian-wheezy-armel_a440_20151218.tar.gz)をダウンロード済みを前提としています。
下記のコマンドでUSBメモリにdebianルートファイルシステムを展開します。

atmark@atde5:~$ ls debian*
debian-wheezy-armel_a440_20151218.tar.gz
atmark@atde5:~$ mkdir sd
atmark@atde5:~$ sudo mount -t ext3 /dev/sdb1 sd
atmark@atde5:~$ sudo tar zxf debian-wheezy-armel_a440_20151218.tar.gz -C sd
atmark@atde5:~$ sudo umount sd
atmark@atde5:~$ rmdir sd

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

Armadillo-440に手順4のUSBメモリを挿して、保守モードで起動します。
(保守モードにするには、SW1を押しながら、電源ONします。)
setenvコマンドで、USBメモリのDebianルートファイルシステムで起動するように設定します。

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

以降、USBメモリのDebianルートファイルシステムで起動します。

気づいたこと)
起動中に10秒くらいログがでない状態になりますが、待っていると起動しました。