BeagleBoard-xM RevCにGingerbreadをのせる [Android開発]
BeagleBoard-xM RevCを会社で購入しました。これにAndroid2.3こと、Gingerbreadを入れて動かそうと挑戦したのですが、あれこれ情報を探して挑戦しては失敗の繰り返しで疲れ果てたので、まとめてみました。ですが、やり方が分かるととてつもなく簡単です。
こちらのサイトhttp://android.jpn.org/2011/05/beagleboard-xm-rev-c.html を絶賛参考にしました。
はじめに
ここでご紹介するやり方はとりあえず動けば良いレベルのやり方です。Androidのコンパイル等は一切行いません。実際はコンパイル等をして試してみたのですが、コンパイルには全て成功したにも関わらずどうしてもブートできませんでした。今後、情報がこなれてきたら再度挑戦したいと思います。
購入するもの
BeagleBoard-xM RevCは輸入するしかありません。代行業者等もあるので、そちらで購入するのが良いでしょう。検索するとヒットします。
PCとつないでログなどを確認するために、RS232Cのケーブルが必要です。BeagleBoard本体にはメス端子なので、オス端子のあるケーブルが必要です。USB変換機だと便利です。
バッファローコクヨサプライ Arvel USBシリアルケーブル 1M グラファイト カラー SRC06USB
- メーカー: バッファローコクヨサプライ
5VのACアダプター。もしくはminiUSBケーブル。どちらかないと電源入りません。
マイクロSDカード。8GBがあれば嬉しいところ。
Sandisk microSDHC 8GB SD変換アダプター付属 バルク品
- メーカー: SanDisk
SDカードリーダーライター。後で記述しますが、VM Ware上でUbuntuを動かすのですが、SDカードスロットが認識しない場合があるので、リーダーライターがあると助かります。
HDMIケーブル BeagleBoard-xMはHDMI出力なのでHDMIケーブルを買いましょう。DVI変換機でも構わないです。解像度の制約で変な表示になるときがあるので、DVI変換の方が良いかも知れません。
PLANEX HDMI-DVI変換ケーブル 2.0m PL-HDDV02
- メーカー: プラネックス
全部つなげるとこんな感じです。
環境構築
私が今回利用したPCはVAIO F (VPCF1) Windows7 64bitです。
Ubuntu10の64ビット環境が必要です。但し今回はコンパイルをしないので32bitでも大丈夫です。また環境は仮想環境でも問題ありません。
私はVMWare Player上にUbuntu10をインストールしました。実はUbuntuは初めてだったり。
Windows上にはTera Termなどのターミナルエミュレーターをインストールします。このターミナルエミュレーターでBeagleBoardのログを見ます。
SDカードの作成
以下Ubuntu上で作業をします。あと面倒なのでrootで作業をしています。
1.Texas InstrumentsのTI_Android_GingerBread_2_3_DevKit_1_0 ProductからPre-built ImagesのBeagleBoard xMをダウンロードします。
ダウンロードしたディレクトリは/home/root/downloadとします。
2.ダウンロードしたbeagleboard-xm.tar.gzを解凍します。
$ tar zxvf beagleboard-xm.tar.gz
3.実は上のイメージでUSBが動作しないので、パッチをダウンロードします。
絶賛参考にした http://android.jpn.org/2011/05/beagleboard-xm-rev-c.html からダウンロードします。ダウンロードしたディレクトリは/home/root/downloadとします。
4.ダウンロードしたxMRevC_patched_img.tar.gz を解凍します。
$ tar zxvf xMRevC_patched_img.tar.gz
5.U-BootとLinux Kernelを差し替えます。
$ cd beagle-xm/Boot_Images
$ rm u-boot.bin uImage
$ cp /home/root/download/xMRevC_patched_img/u-boot.bin .
$ cp /home/root/download/xMRevC_patched_img/uImage .
6.起動用micro SDの作成
SDカードをセットしてmkmmc-android.shというスクリプトファイルを実行すると、
SDカードのパーティション生成からフォーマット、ファイルのコピーまで自動でしてくれます。これは神スクリプトです。
このスクリプトファイルは、日本語環境のUbuntuで実行するとパーティションを作るときにおかしくなるらしいので、言語設定を変えます。
$ export LANG=C
引数はSDカードのデバイスファイル。dfコマンドなどでSDカードの場所を確認しましょう。
$ cd ..
$ ./mkmmc-android.sh /dev/sdb1
しばらく待つと[Done]と表示されます。後は出来上がったSDカードをBeagleBoard-xMに刺してResetボタン押すと起動できます。
補足
PCとRS232Cで接続してTera Termなどのターミナルエミュレーターで見ると、ログを見る事ができます。但し設定を変更しないと文字化けで見れません。設定→シリアルポートで、ボー・レートを115200に変更します。
起動させてみましたが、もう恐ろしいぐらいに遅いです。起動には約10分ぐらいかかりますし、動作も遅すぎる。これをチューニングする自信はこれっぽっちもありません。。。
ちなみに、戻るボタンは右クリックで行えます。あと、シャットダウンはSHIFT + End キー長押しです。
唯一無二の参考書。但しGingerbreadについては書いてないそうです。。。
BUFFALO カードリーダー/ライター 43+7メディア対応 ホワイト BSCRA26U2WH
- メーカー: バッファローコクヨサプライ
おおっ、これは面白そうですね!
小さなWebServerならこれでいけそうなんですけど…調べるとDigi-Keyで入手可、価格が¥13,000程度と出てますね。
by 白吉 (2011-06-18 17:08)
白吉さん
物凄い小さいので、遊びにはもってこいだと思います。テスト用に入っていたLinuxは結構普通に動いていましたが、Androidは使い物にならないレベルでした(苦笑)これで開発なんて、この先どうなることやらです。。。
by taiseiko (2011-06-18 20:04)
BBxm付属のSDカードはめちゃくちゃ遅いんで、SDカードを変えると重いの治ると思いますよ。
by ksksue (2011-06-20 09:38)
ksksue さん
SDカード変えてても遅いんですよね。コンパイルしてやらないとダメなのでしょうか...
by taiseiko (2011-06-20 23:54)