Android on Beagle ハンズオンを開催しました

5/29、 BeagleboardAndroidを起動するところまでをハンズオンで行う勉強会を開催しました。

ほぼ丸一日使った勉強会で、そのほとんどの時間は参加者に手を動かしてもらい、ハンズオン開始前後に必要な知識や、ハマりどころなどの情報共有を行いました。

Android on Beagleについて、知識として必要な情報は下記にまとめてる最中です。
http://sites.google.com/site/androidonbeagle/

ハンズオンの内容は下記の通りです。

ハンズオン内容

ハンズオン1 u-bootでBeagleboardの動作をチェックする

概要
u-bootのコマンド概要をu-bootレベルでできる最低限のバリデーション。ボード購入直後やHW不良?と思ったときに行う。
必要なもの

  • Beagle Board Rev.C4
  • 開発マシン
  • 電源
  • USBケーブル or
  • ACアダプタ
  • シリアル通信
  • 10ピンコネクタ→DSUB9ピン変換ケーブル
  • USB-Serial変換ケーブル
  • SDカード(Option)

手順

  • Beagleと開発マシンをシリアルケーブルで接続する
  • PC側でターミナルエミュレータを起動し、シリアルポートの設定を行う

115200n8

  • Beagleに電源を入れる
  • u-bootの各コマンドを実行し、正常に動作していることを確かめる
ハンズオン2 SDカードのパーティションを分ける

概要
BeagleでAndroidを起動させるためのパーティション設定を行う。GParted または GParted Live CDを使う。
必要なもの

  • SDカード
  • 開発マシン(CDドライブ付き)
    • Linux以外の場合はGParted Live CD

手順

ハンズオン3 Prebuiltイメージを取得し、起動する

概要
ビルド済みのAndroidをBeagleボードから起動する
必要なもの

  • 動作確認のために、あると良い
  • DVIディスプレイ、DVI-HDMI変換アダプタ、HDMIケーブル
  • USBハブ、USBマウス、USBキーボード

手順

  • ビルド済みイメージを取得する(今回はrowboatを使用)

http://code.google.com/p/rowboat/downloads/list

  • u-bootの起動パラメータを変更する
# setenv bootcmd 'mmc init; fatload mmc 0:1 0x80000000 uimage; bootm 0x80000000'
# setenv bootargs androidboot.console=ttyS2 console=ttyS2,115200n8 console=tty0 init=/init omapfb.mode=dvi:1024x768MR-24@60 root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait 
# saveenv
  • イメージをSDカードにコピーしてSDカードからAndroidを起動する

感想

prebuiltイメージを取得してAndroidを起動する、、、とそれだけの事に丸一日かけてもらいました。

普段は「kernel panicまで行ったよ!」なんて喜ぶことはまずないと思いますが、何も起こらないところからそこまでいくと嬉しいものなんですよね。組み込みやってると、オレンジの画面がでたよ!ピーっと音が出たよ!くらいで喜べます。この、0を1にした感じに喜びを感じれる人は組み込み向きです^^

また、web上には「この通りコマンド打てば動くよ」とか「このパッチあてれば動くよ」という情報はあっても、それがどういう意味を持っているのか、失敗する場合はどこをどう調べていけばいいのか、まで書かれていることはほとんどありません。
アプリだとコードをコピペすれば大概動きますが、低レイヤーだとそうはいかず、うまくいかないときに、ちゃんと理解してるか、分かった気になってるだけかが問われます。

Androidの起動までやればあとは実際にデバイスを繋いで動かす面白いところなので、今度はそっちをやりたいですねー。

謝辞

最後になりましたが、開催は株式会社FLATZさんのご厚意によりオフィス(株式会社SINAPさんのオフィス)およびディスプレイを使わせていただきました。
SINAPさんは条件に合う勉強会・セミナー・懇親会などを開催する方に会場を無償提供されているのでご興味のある方はコンタクトを取ってみてはいかがでしょうか。


以上。