ブログ

Armadillo-400シリーズで、MicroSDカードでatmark-distを動かす

at_kazutaka.bito
2014年12月26日 18時24分

1.ATDEを起動して、MicroSDカードを接続してアンマウントする

SDカードを接続すると自動的にマウントされる

[atde ~]$ mount
/dev/sdb1 on /media/略

ので、下記コマンドでアンマウントする。

[atde ~]$ sudo umount /dev/sdb1

2.fdiskコマンドでMicroSDカードのパーティションを構成

[atde ~]$ sudo fdisk /dev/sdb
WARNING: 略
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-2029, default 1):  // そのまま
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2029, default 2029): // そのまま
Using default value 2029
 
Command (m for help): w  // wを入力
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.

3.フォーマットを行う

[atde ~]$ sudo mke2fs -j /dev/sdb1
[atde ~]$ sudo tune2fs -i 0 /dev/sdb1

上記2,3の手順の詳細は Armadillo実践開発ガイド第2部 4.1.1. パーティションの作成とフォーマット http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-2.2.2/ch04.html を参考。

以下、イメージの書き込みについては、 ATDEのホームディレクトリに  カーネルイメージ:linux.bin.gz  ユーザーランドイメージ:romfs.img.gz が存在するものとして説明。

4.カーネルイメージの配置

[atde ~]$ mkdir sd
[atde ~]$ sudo mount -t ext3 /dev/sdb1 sd
[atde ~]$ sudo mkdir -p sd/boot
[atde ~]$ sudo cp linux.bin.gz sd/boot/linux.bin.gz
[atde ~]$ sudo umount sd
[atde ~]$ rmdir sd

5.atmark-distのユーザーランドイメージのマウント

[atde ~]$ mkdir romfs
[atde ~]$ gzip --stdout --decompress romfs.img.gz > romfs.img
[atde ~]$ sudo mount -o loop romfs.img romfs

6.atmark-distのルートファイルシステムの構築

[atde ~]$ mkdir sd
[atde ~]$ sudo mount -t ext3 /dev/sdb1 sd
[atde ~]$ sudo cp -a romfs/* sd
[atde ~]$ sudo umount romfs
[atde ~]$ rmdir romfs

7./etc/fstabの編集

[atde ~]$ sudo vi sd/etc/fstab

編集前

/dev/ram0               /               ext2    defaults                0 1
proc                    /proc           proc    defaults                0 0
usbfs                   /proc/bus/usb   usbfs   defaults                0 0
sysfs                   /sys            sysfs   defaults                0 0

1行目のram0をmmcblk0p1に、ext2をext3にする。 編集後

/dev/mmcblk0p1          /               ext3    defaults                0 1
proc                    /proc           proc    defaults                0 0
usbfs                   /proc/bus/usb   usbfs   defaults                0 0
sysfs                   /sys            sysfs   defaults                0 0

[atde ~]$ sudo umount sd [atde ~]$ rmdir sd

上記4-7の手順の詳細は Armadillo-840製品マニュアル 第16章 SDブートの活用 http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.5.0/ch16.html を参考。

8.上記7までの手順で作成したMicroSDをArmadilloに挿入。

9.ブートデバイスとカーネルパラメーターの設定

Armadilloを保守モードで起動して、下記のように設定する。

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

参考)
Armadillo実践開発ガイド第2部 4.1.4. ブートデバイスとカーネルパラメーターの設定 http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-2.2.2/ch04.html

Armadilloを再起動すると、SD上のatmark-distで起動する。