Armadillo-500 FXでAndroidを簡単に試す方法を紹介します。動作させる手順は下記のようになります。
- USB SSDを初期化する
- AnrdoidをSSDにコピーする
- カーネルを書き換える
- ユーザランドを書き換える
- Anrdoidを起動してみる
- 起動時に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 がカーネルイメージです。