Howto

Armadillo-500 FXでAndroidを使ってみる

Armadillo-500 FXでAndroidを簡単に試す方法を紹介します。動作させる手順は下記のようになります。

  1. USB SSDを初期化する
  2. AnrdoidをSSDにコピーする
  3. カーネルを書き換える
  4. ユーザランドを書き換える
  5. Anrdoidを起動してみる
  6. 起動時にAndroidを自動的に起動させる

本 Howto で動作させる Android のバージョンは 1.0 です。

1. USB SSDを初期化する

出荷状態ではSSDにパーティンションが作成されていないので、まずはfdiskコマンドを利用して作成します。

[armadillo ~]# fdisk /dev/sda
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1011, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1011, default 1011):
Using default value 1011

Command (m for help): w

そして新しく作成したパーティンションにファイルシステムを作成します。ここではmke2fsコマンドで ext3 のファイルシステムを作成します。

[armadillo ~]# mke2fs -j /dev/sda1

2. AnrdoidをSSDにコピーする

SSDに作成したファイルシステムをマウントします。

[armadillo ~]# mount /dev/sda1 /mnt/

そして、マウントしたディレクトリに移動してから、Androidユーザランドのアーカイブをダウンロードします。

[armadillo ~]# cd /mnt/
[armadillo /mnt]# wget https://download.atmark-techno.com/misc/android/android-a500fx-tmp-081210.tar.gz

最後にダウンロードしたアーカイブを展開します。

[armadillo /mnt]# tar xzf android-a500fx-tmp-081210.tar.gz
[armadillo /mnt]# ls
android/                          lost+found/
android-a500fx-tmp-081210.tar.gz

3. カーネルを書き換える

Androidに対応しているカーネルをダウンロードして、フラッシュメモリに書き込みます。ここでnetflashを利用して一気にやります。

[armadillo ~]# netflash -nkur /dev/flash/nor.kernel https://download.atmark-techno.com/misc/android/linux-a500fx-android-tmp-081210.bin.gz

4. ユーザランドを書き換える

出荷状態でデモアプリケーションが液晶パネルで表示されるようになっています。Androidを起動できるようにデモアプリケーションが起動しないAtmark Distユーザランドをフラッシュメモリに書き込みます。

[armadillo ~]# netflash -nkur /dev/flash/nor.userland https://download.atmark-techno.com/misc/android/romfs-a500fx-android-tmp-081030.img.gz

5. Anrdoidを起動してみる

chrootコマンドを利用してAndroidの環境に入って起動します。ArmadilloのロゴそしてAndroidのロゴが表示されてから、Androidのホームスクリーンが立ち上がります。

[armadillo ~]# chroot /mnt/android /init

6. 起動時にAndroidを自動的に起動させる

次のように/etc/config/rc.localを編集することでArmadillo-500 FXのJumper 2がOPENの時のみ、Androidが自動的に起動するようにできます。

[armadillo ~]# vi /etc/config/rc.local
#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH

jp2=`cat /sys/devices/platform/armadillo5x0_gpio.0/ports/gpio1_8_data`
if [ "$jp2" = "1" ]; then
        echo Booting Android...
        mount /dev/sda1 /mnt
        chroot /mnt/android /init
fi

編集してから実行権を付けてflatfsdコマンドでファイルを保存します。

[armadillo ~]# chmod +x /etc/config/rc.local
[armadillo ~]# flatfsd -s

ソースコードアーカイブからイメージをビルドするには、作業用 PC で以下のようにコマンドを実行します。

[PC ~]$ tar xzf linux-2.6.26-at1.tar.gz
[PC ~]$ cd linux-2.6.26-at1
[PC ~]$ patch -p1 < ../linux-2.6.26-at-android-tmp-081210.patch
[PC ~]$ make armadillo500fx_dev_android_defconfig
[PC ~]$ make && gzip -c arch/arm/boot/Image > ./linux-a500-fx-android.bin.gz

linux-a500-fx-android.bin.gz がカーネルイメージです。