Wiiリモコンで操作できるプレゼン・マシンの製作(1) ―― オリジナルのAndroidマシンを自作する
tag: 組み込み ディジタル・デザイン
技術解説 2009年9月11日
4.Androidの起動
●周辺機器を接続する
BeagleBoardにSDカードを挿入し,写真1のように周辺機器を接続します.
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