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

渡邊 賢二

4.Androidの起動

●周辺機器を接続する

 BeagleBoardにSDカードを挿入し,写真1のように周辺機器を接続します.


写真1 BeagleBoardと周辺機器の接続例

 Ubuntuのコマンド・ラインでckermit(※8)を起動しておきます(起動後はconnectサブコマンドで接続する).

※8 端末エミュレータはminicomやcuコマンドでも構いません.シリアル・ケーブルをWindowsパソコンに接続する場合は,Tera Termやハイパーターミナルを使用します.

$ kermit -C "set flow auto, set speed 115200, set serial 8n1, set escape 27,
set carrier-watch off, set prefixing all, set line /dev/ttyS0" ※9
C-Kermit 8.0.211, 10 Apr 2004, for Linux
Copyright (C) 1985, 2004,
Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/android/) C-Kermit>connect ※10

※9 ttyデバイス名は環境に合わせて変更してください(USB-シリアル変換を使用する場合は通常"/dev/ttyUSB0").
※10 C-Kermitを終了させるには"Esc"キーを押下した後,"C"を押下し(同時ではない),quitと入力してください.

 最後にACアダプタを接続してBeagleBoardを起動させます.
 

●u-bootの設定を行う

 xloader(MLO)からu-bootが起動されます.起動のログからSDカード上のu-bootが起動していることを確認してください.

Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
Reading boot sector
Loading u-boot.bin from mmc ←"mmc"となっていればOKです.

U-Boot 2009.01-dirty (Feb 19 2009 - 12:23:21)
(以下省略)

 u-bootの環境変数がデフォルト設定であれば,10秒後にKernelが自動で起動します.10秒経過する前にリターン・キーを押下すれば,自動起動をキャンセルし,u-bootのコマンド・プロンプトに移ることができます.

Hit any key to stop autoboot: 8 ←10秒経過前にリターン・キーを押下
OMAP3 beagleboard.org # ←u-bootのコマンド・プロンプト記号

 自動起動までの待ち時間を短くしたい場合は,u-bootのコマンド・プロンプトで環境変数bootdelayを修正します.

OMAP3 beagleboard.org # setenv bootdelay 1 ←自動起動の待ち時間を1秒に変更
OMAP3 beagleboard.org # saveenv ←環境変数の変更をNANDに保存

 Kernel起動後にAndroidのinitプロセスを直接起動するため,kernelの起動オプションを修正します.

OMAP3 beagleboard.org # setenv bootargs console=ttyS2,115200n8 noinitrd
root=/dev/mmcblk0p2 init=/init rootfstype=ext3 rw rootdelay=1
init=/init ←"init"の項目にAndroidのinitプロセスを指定

 さらに,u-bootのデフォルトのブート処理として,SDカードのuImageのロード処理を実行するように修正します.

OMAP3 beagleboard.org # setenv mmcboot 'mmcinit;fatload mmc 0 0x80000000
uImage;bootm 0x80000000'  ←SDカードのuImageをロード
OMAP3 beagleboard.org # setenv bootcmd run mmcboot  ←デフォルト・ブート・コマンド

 最後にこれまでの環境変数の変更をNANDに保存します.

OMAP3 beagleboard.org # saveenv  ※11

 ※11 リビジョンC3ではsaveenvコマンドで正常に環境変数を保存できない問題があるようです.パーティション1のu-bootを以下のものと入れ替えることで,この問題に対処できます.http://beagleboard.googlecode.com/files/u-boot-f_revc_v3.bin (u-boot.binにリネームして配置してください)

 

●Androidを起動する

 u-bootのコマンド・プロンプトからリブートします.

OMAP3 beagleboard.org # reset 

 以後,BeagleBoardに電源を投入すれば自動でAndroidが起動します. Androidは初回起動でdalvikのキャッシュや各種ディレクトリの作成,システム・アプリケーションのインストールなどを行うため,多少時間がかかりますが,以後の起動は速くなります.


*                              *                         *


 次回はWillリモコンを動かすためのミドルウェアをAndroidに組み込む方法をご紹介します.

 


わたなべ・けんじ
(株)アイ・エス・ビー /
Open Embedded Software Foundation ディストリビューションWG /
日本Androidの会 組み込みWG

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日