2011年7月10日日曜日

[KERNEL] Galaxy S2 BLN support kernel *TEST* version part-2

kernelについては、まだまだかかりそうなので、先にBLNに必要なliblightsのビルドについて。とにかくビルドできる環境を作るところまで。前回も書いたとおりmsm7kのソースそのままでいけそうなので、SGS2は2.3.3(Gingerbread)ということもあるので64bitのUbuntuを導入して、ビルドすることにした。基本的にVMWare Playerなので気軽に、サイトからisoを落としてそこからインストールする。
http://www.ubuntu.com/download/ubuntu/download
ここから64bit版をおとして、VMWare Playerでインスタンスをつくり、isoからインストールを選んでインストールしておく。ちなみにJavaはopen-javaなので、sun-javaがいい人はapt-getしておく、それからsun-java5も入れておく。Ubuntu 11.04 でJDK5を入れるには以下のようにするべし、jaunty(Ubuntu 9.04)が既にサポートを終了のため普通にはaptで落とせない
sudo vi /etc/apt/sources.list

追加
deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse
deb http://us.archive.ubuntu.com/ubuntu/ hardy-updates multiverse

sudo apt-get update
sudo apt-get install sun-java5-jdk

切り替え
sudo update-alternatives --config java
sudo update-alternatives --config javac
さて、lightsはmsm7kに含まれるので、一番簡単にビルドするのはHTC dream用?としてビルドすることでそうなるとfroyoのソースが必要となる。gingerbreadだけのソースを取得するとdevice/htc/dreamが存在しないので注意。

余談だが、2.3(gingerbread)のビルドに64bitOSが必要だったのは過去の話のようで、現在は32bitでもビルドできるパッチが導入されているので普通に32bit UbuntuでもOK。64bit推奨なのは変わらないようですが。

それじゃ、64bitのAndroidビルド環境を整える方法は、別のサイトかGoogleさんに頼るとして、lightsの楽なビルド方法は。
mkdir froyo
cd froyo
repo -u init git://android.git.kernel.org/platform/manifest.git -b froyo
でFroyo指定でソースをチェックアウトする。かなり時間かかります。ダウンロードが完了したら
環境のセットアップ
source ./build/envsetup.sh
これでlunchやmなどのコマンドが使えるようになる。ここでは下記のように選択。
creams@nexus:~/android/froyo$ lunch

You're building on Linux

Lunch menu... pick a combo:
     1. generic-eng
     2. simulator
     3. full_dream-userdebug
     4. full_passion-userdebug
     5. full_sapphire-userdebug

Which would you like? [generic-eng] full_dream-user
そしてビルド。(VMWare playerに割り当てたCPU Core数に応じて)
make -j4
しばらく待ちます。うまくいけば下記にshared-libが作成される。
./target/product/dream/system/lib/hw/lights.msm7k.so
ダメだって人はlunchでdreamがちゃんと選ばれてるかどうか確認して。それでもダメなら
cd ./hardware/msm7k/liblights
mm
でターゲットだけビルドはじめるはずです。足りないものがあればエラーがでるので、足りないものをmmでビルドしていけばできると思う。

次回は。lightsの修正とビルド。基本的にはlights.cを修正してmakeするだけの簡単なお仕事。。

0 コメント:

コメントを投稿