Wiiリモコンで操作できるプレゼン・マシンの製作(1) ―― オリジナルのAndroidマシンを自作する

渡邊 賢二

本稿では市販の組み込み評価ボードを使用して,オリジナルのAndroidマシンを作ってみたいと思います.最終的にはWiiリモコンで操作可能なプレゼン・マシンを目指しますが,工夫次第でいろいろな用途のシステムを作れると思います.使用しているパーツはすべて,「Digi-Key」や「Amazon」などのWebサイトから入手できます.連載1回目の今回は機器や環境を用意して,実際にAndroidを起動するまでを説明します.(編集部)

 ※ 本稿で使用するパッチ・ファイルはこちらからダウンロードできます. 

● BeagleBoardで自分だけのAndroidマシンを作ろう!

 米国Texas Instruments社の「BeagleBoard」が発売されてから約1年が経過しました.BeagleBoardは同社のプロセッサ「OMAP3530」を積んでおり,さらにDSP(Digital Signal Processor)やディジタル映像出力,さまざまなインターフェースを備える強力な評価ボードが149ドルという低価格で入手できることから,一躍いろいろな人に愛用されるボードとなりました.この間,さまざまな人がBeagleBoardにAndroidをポーティングして独自のAndroidマシンを作り上げています.

 本稿ではあらためて,BeagleBoardでAndroidを起動させる方法を解説します.Androidのビルド環境を作るところからAndroidの起動までをおさらいした上で,Wiiリモコンを動作させるためにBluetoothデバイス・ポーティングやAndroidに標準で入っていないミドルウェアのポーティングを実施します.そして,オリジナルのAndroidマシンを作りたいと思います.



写真1 製作するWiiリモコンで操作できるプレゼン・マシン

 

1.使用する機器や環境の準備

● BeagleBoardと周辺機器を準備する

 BeagleBoard本体は米国Digi-Key社のWebサイトで購入可能です.本稿で使用するデバイスのうち,Digi-Keyで購入可能なものを表1に,Amazonや家電量販店などで購入可能なものを表2に示します.

表1 Digi-Keyで購入可能な機器

 


表2 Amazonや家電量販店などで購入可能な機器


 

● 開発環境を準備する

 開発環境としては,Ubuntu Linux(32ビットx86)の6.06以降(8.10以上推奨)がインストールされたパソコンを用意してください.WindowsにインストールしたVMwareなどを使用しても構いません.

 Ubuntuのコマンド・ラインで以下を順に実行していきます.

 まずは,apt-getコマンドでAndroidのビルドの際に必要なパッケージのインストールを先に済ませておきましょう.

$ sudo apt-get install -y git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

 Kernelイメージはu-bootが扱えるuImage形式にする必要があるため,以下のパッケージもインストールしておきます.

$ sudo apt-get install -y uboot-mkimage

 シリアル・コンソールの端末エミュレータとして使用するC-Kermitをインストールします.ほかに使い慣れたものがあれば,この手順は飛ばしてください.

$ sudo apt-get install -y ckermit
 

 Androidのソース・コードの取得にはgitコマンドのラッパ・スクリプトであるrepoを使用するため,curlコマンドで取得しておきます.

$ mkdir ~/bin 
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

 repoスクリプトを配置したディレクトリをbashのサーチ・パスに追加します.

$ echo 'export PATH=$PATH:~/bin' >> ~/.bashrc
$ source ~/.bashrc

 

●ソース・コードを準備する

 Androidのソース・コードはプロジェクトごとにgitレポジトリで管理されており,repoスクリプトを使用して複数のレポジトリからソースを一括取得します.レポジトリは本家のandroid.kernel.orgのものを使用します.

$ mkdir ~/mydroid && cd ~/mydroid
$ repo init -u git://android.git.kernel.org/platform/manifest.git  ※1
$ repo sync

※1 repoスクリプトは内部でgitコマンドを実行しており,初回実行時のみgitコマンドの初期設定として,名前とメール・アドレスの入力を求められます.

 OMAP用のAndroid KernelはBeagleBoardのAndroidポーティングで有名なlabs.embinux.orgのものを使用することにします(※2).標準のmanifestに含まれていないレポジトリはlocal_manifest.xmlに追加することで取得できます.Android KernelのソースとALSA(Advanced Linux Sound Architecture)関連のソースを取得するため,"~/mydroid/.repo/" 配下に以下の内容でlocal_manifest.xmlファイルを作成します.

※2 labs.embinux.orgでもAndroidのポーティング方法やソース・コードを公開しています.ここで公開されているUserlandのソース・コードは多少古めなので,本稿ではこれは使用せずに本家の最新版のUserlandのソース・コードを使用しています.また,本家でもOMAP用のAndroid Kernelを公開していますが,本稿執筆時点ではBeagleBoard用のデフォルト・コンフィグレーションが入っていないため,Android Kernelのソース・コードに関してのみlabs.embinux.orgのものを使用することにしました.


 

 再度"repo sync"を実行し,local_manifest.xmlの内容で追加のソースを取得します.

$ repo sync

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日