android 2.3.4 (Gingerbread) on NetWalker : 工学院大学 金丸研究室
ナビゲーション
工学院大学 金丸研究室

情報システム 画像処理システム
強化学習によるロボット制御
netwalker-gb
本ページでは、Sharp 製の NetWalker に android 2.3.4 (Gingerbread) を 移植する方法をまとめます。

android 2.2.2 (Froyo) のインストール法は左のナビゲーションからたどって下さい。

ベースとしては androidzaurus さんの Android on NetWalker (1.6 の移植) や
sola さんによるBeagleBoard に Froyo をのせる
を参考にさせて頂いております。
有益な情報を公開してくださっている androidzaurus さんと sola さんに感謝致します。

なお、repo のインストールなど、android のビルド環境の構築についての解説は省略しますので、
他のサイトを御参考ください。
なお、Gingerbread のビルドには JDK 1.6 と 64bit OS が必要ですので注意して下さい。

更新履歴
2011.7.29: 公開

Android をソースからビルドできる方は「1. Android ソースのダウンロード」から御覧下さい。
とにかく試してみたいと言う方は「7. NetWalker のセットアップ」から御覧下さい。

1. Android ソースのダウンロード

Android のビルドは NetWalker では行えませんので、Ubuntu などがインストールされた PC が別途必要になります。

まず、ビルド用PCでソースのダウンロード先を決めます。以下は環境に応じて読みかえてください。
$ export ANDROID=/home/kanamaru/gingerbread-netwalker
次に、ソースコードをダウンロードします。
$ mkdir -p $ANDROID
$ cd $ANDROID
$ repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.4_r1
$ repo sync

2. kernel のダウンロードと展開

$ cd $ANDROID
$ wget http://netbook-remix.archive.canonical.com/updates/pool/public/l/linux-fsl-imx51/linux-fsl-imx51_2.6.28-15.50fsl1araneo19.tar.gz
$ tar zxf linux-fsl-imx51_2.6.28-15.50fsl1araneo19.tar.gz

3. androidzaurus さんのパッチのダウンロードと適用

androidzaurus / droidwalker を訪れ、パッチをダウンロードします。
「Downloads」→「Download.tar.gz」とたどり、androidzaurus-droidwalker-61b2290.tar.gz を $ANDROID ディレクトリにダウンロードします。
$ cd $ANDROID
$ tar zxf androidzaurus-droidwalker-61b2290.tar.gz
$ cd jaunty-arm
$ patch -p1 < ../androidzaurus-droidwalker-61b2290/diff-araneo-android-2.6.28.patch
$ patch -p1 < ../androidzaurus-droidwalker-61b2290/disable_double_buffering.patch
$ patch -p1 < ../androidzaurus-droidwalker-61b2290/fbmem_8m.patch
$ patch -p1 < ../androidzaurus-droidwalker-61b2290/build-wifi-defconfig.patch

4. 本ページのパッチのダウンロードと適用

$ cd $ANDROID
$ wget http://brain.cc.kogakuin.ac.jp/research/files/vendor_tk-netwalker-gingerbread2.3.4-20110726.tar.gz
$ tar zxf vendor_tk-netwalker-gingerbread2.3.4-20110726.tar.gz
$ $ANDROID/vendor/tk/patch/tk_patch.sh

5. カーネルのビルド

$ cd $ANDROID/jaunty-arm
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- netwalker_android_defconfig
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- zImage modules
$ANDROID/jaunty-arm/arch/arm/boot/zImage が必要なファイルになります。
ビルド済みのものをテスト用にこちらに用意しました。

6. android のビルド

$ cd $ANDROID/
$ source build/envsetup.sh
$ lunch netwalker-eng
$ make -j8
ビルドが完了したら、
$  $ANDROID/vendor/tk/netwalker/image/netwalker-image.sh
(パスワードを一度要求されます) $ANDROID/vendor/tk/netwalker/image/gingerbread というディレクトリができます。 これが android のシステムのディレクトリとなります。
ビルド済みのものをテスト用にこちらに用意しました。

7. NetWalker のセットアップ

ここから先は、上でビルドした kernel (zImage) とAndroid システムが必要になります。

ビルドせずに試してみたいと言う方は、 こちらの zImageこちらの gingerbread2.3.4.tgz を利用して下さい。

NetWalker に gparted をインストールし、SD カードのパーティションを切ります。
gparted のインストールは sudo apt-get install gparted ですが、それが失敗したら、
gparted_0.4.3-0ubuntu1_armel.deb をネット上で探して
dpkg -i gparted_0.4.3-0ubuntu1_armel.deb して下さい。
sudo gparted /dev/mmcblk0
を実行します。パーティションは2つ必要で、 のように設定します。

終わったら、一度SD カードを抜き差ししてマウントします。
そして、下記の手順でインストールしていきます。作業はホームディレクトリなど、読み書き権限のある所で行います。
wget http://mit.sharp.co.jp/os.tar.bz2
sudo tar xf os.tar.bz2 -C /media/rootfs
sudo gedit /media/rootfs/etc/udev/rules.d/70-persistent-net.rules 
sudo mv /media/rootfs/etc/rc2.d/S01upfirm  /media/rootfs/etc/rc2.d/~S01upfirm
sudo gedit /media/rootfs/boot/boot.conf
wget http://brain.cc.kogakuin.ac.jp/research/files/zImage
sudo cp zImage /media/rootfs/boot/
sudo mkdir /media/rootfs/android
wget http://brain.cc.kogakuin.ac.jp/research/files/gingerbread2.3.4.tgz
sudo tar zxf gingerbread2.3.4.tgz -C /media/rootfs/android
sudo gedit /media/rootfs/etc/rc.local
sudo umount /media/*
sudo poweroff
主な仕様を以下にまとめます。 最後に、参考にさせて頂いたページをまとめます。皆様に感謝致します。