Beagle Board Rev.C2でAndroidを動かす


0.始めに

前回、Beaglebord Rev.B5をメインボードに使用しての、環境設定を公開しました。
Rev.C2に関しましても、環境設定方法を確認できましたので、ここに公開いたします。
参加したメンバーは以下の通りです。

<ソフト担当>
株式会社ブリリアントサービス
 技術部 梶谷 亮太、八木 佑馬、河原 豊、藤井 洋祐

某IT関連企業勤務
 S氏

★部品構成
メインボードは、Beagleboard Rev.C2を使用しています。
その他の構成に関しましては、下記URL記載の部品構成を参照してください。
http://d.hatena.ne.jp/bs-android/20090603/1244043649

★使用環境
 使用OS:Ubuntu8.10

1.準備

1.1 Android開発環境の設定

Linux環境
 下記リンクを参考にしてください。
 http://source.android.com/download
 http://d.hatena.ne.jp/bs-android/20090324/1237864332
 ※uboot-mkimageのインストールもしておきます。
 ※ubuntu8.10の場合、synapticマネージャーからインストールできます。
 ※ubuntu8.04の場合、apt-get install uboot-mkimageでインストールしました。

1.2 使用ツール等の設定

GNU C & C++ Compilersのインストール
 使用するリリースはarm-2007q3-51です。下記リンクからインストールできます。
 http://www.codesourcery.com/sgpp/lite/arm/portal/subscription3057
 ※インストールは、TARの解凍形式、インストーラー使用など、ユーザーの好みにしたがって各種用意されています。
  TARを解凍される場合は、インストール場所のパス設定を各自で行ってください。
  (~/.bashrcファイルに$PATHを記述します)

2.Beaglebord用Androidソースの取得

2.1 repoの初期化

まず、ベースとなるAndroidソースDownloadのための下準備を行ないます。
ターミナルウィンドウにコマンドを入力していきます。

$ mkdir  mydroid ★名前は任意です。
$ cd mydoroid
~mydroid$ repo init -u git://android.git.kernel.org/platform/manifest.git

上記操作で最新のAndroidソースをmydroidにDownloadする設定を行います。

2.2 ソースの取得準備

Beagleboard Rev.B5環境作成時にも述べた通り、Beagleboard Rev.C2上においてもAndroidを動かす場合、Androidのレポジトリから不要なサブプロジェクトの削除と標準プロジェクト群に含まれないプロジェクトをダウンロードする必要があります。
Beagleboard Rev.C2用に設定ファイルを作成しましたので、これを使用します。
Rev.B5で使用した設定ファイルとの大きな違いは、omap用カーネルの取得先が違うところです。
まずは、omapカーネル以外のソースを取得するために、mydroid/.repo/ に
local_manifest.xml(※ファイル名がlocal_manifest_rev_c2.xmlになっているのでlocal_manifest.xmlに変更してください) を作成します。
local_manifest.xmlの内容は次の通りにします。

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remove-project name="kernel/common"/>
  <project path="external/alsa-lib" name="platform/external/alsa-lib"/>
  <project path="external/alsa-utils" name="platform/external/alsa-utils"/>
  <project path="hardware/alsa_sound" name="platform/hardware/alsa_sound"/>
</manifest>
2.3 ソースの取得

2.1、2.2の準備が出来れば、Download準備完了です。

ターミナルウィンドウでコマンドを入力していきます。

~mydroid$ repo sync

上記、コマンド実行後、ソース取得が開始されます。
稀に失敗する場合がありますが、その場合、再度上記コマンドを実行してください。

2.4 OMAPカーネルソース取得

Beagleboard Rev.C2で使用するomapカーネルは、”git clone”コマンドを使用して取得します。

$ cd mydroid 
~mydroid$ git clone git://labs.embinux.org/repo/kernel.git

更にソースをandroid-2.6.29ブランチに切り替えます。

~mydroid$ cd kernel 
~mydroid/kernel$ git checkout -b kernel_android_2.6.29 origin/android-2.6.29

ブランチが切り替わったかを念のため確認します。

~mydroid/kernel$ git branch 
   android-2.6.27
 * kernel_android_2.6.29

kernel_android_2.6.29に「*」がついてればOK。
※git branchは、branchのListを表示するコマンドです。
*がついてるのは、現在作業中のbranchを表しています。

3.パッチの準備

3.1 Linuxカーネル環境構築

Beagleboard Rev.C2においても、Rev.B5同様、ALSAを使用してサウンドを鳴動させることに成功しています。

3.2.1 サウンドバイスのBuild定義追加

下記URLの3.2.1章を参照してください。
http://d.hatena.ne.jp/bs-android/20090603/1244043649

3.2.2 カーネルコンフィギュレーションの作成

弊社で作成したAndroid、ADB、ALSA、FrameBuffer機能有効化を追加したBeagleboard Rev.C2用カーネルコンフィギュレーションファイルです。
omap3_beagle_android_defconfig(※ファイル名がomap3_beagle_android_defconfig_rev_c2になっているので、omap3_beagle_android_defconfigに変更してください)をmydroid/kernel/arch/arm/configs に保存しておきます。

3.3 Android環境構築
3.3.1 ALSAサウンドドライバ

下記URLの3.3.1章を参照してください。
http://d.hatena.ne.jp/bs-android/20090603/1244043649

3.3.2 Batteryパッチ

下記URLの3.3.2章を参照してください。
http://d.hatena.ne.jp/bs-android/20090603/1244043649

3.3.3 USB EHCIファイルパッチ

ビルドエラー回避のため、usb-ehci.cにパッチを当てます。


※6/20のKernel環境では、ビルドエラーが修正されています。6/20以降に環境を構築される場合は、このパッチは不要となります。


diffファイル usb-ehci.patch
上記Linkからパッチファイルを取得し、ターミナルウィンドでコマンドを入力していきます。

~mydroid$ cd kernel/arch/arm/mach-omap2 
~mydroid/kernel/arch/arm/mach-omap2$ patch < usb-ehci.patch

パッチ後のソースファイル
mydroid/kernel/arch/arm/mach-omap2/usb-ehci.c

4.Build

下記URLの4章を参照してください。
http://d.hatena.ne.jp/bs-android/20090603/1244043649

5.Boot用SDカードの作成

下記URLの5章を参照してください。
http://d.hatena.ne.jp/bs-android/20090603/1244043649

6.ADB(デバッガ)

下記URLの6章を参照してください。
http://d.hatena.ne.jp/bs-android/20090603/1244043649

以上で完了です。