Corona(コロナ)情報−ブリリアントサービス
2009-08-24
Androidコンパイル環境の最適化手法
資料 | |
Androidのフレームワークのソースコードを日々コンパイルされているみなさん、お元気ですか?
今回はコンパイルする時間を短縮する為のTipsを紹介します。
もちろんAndroid以外にも有効です。
Ubuntuのカーネルの最適化
デフォルトのカーネルでは最近主流のCPUのCore2Duoには最適化されていません。
その為、カーネルをCore2Duo向けに最適化されたコンパイルをしてカーネルを入れ替えてしまいましょう。
VMWareの場合
VMWare上でCore2Duoを有効にするには、手順の一番初めに
vmxファイルに
numvcpus = "2"
の記述を追加して再起動しておいてください。
これだけでも
make -j4
などでのコンパイルが速くなります。
コンパイルに必要なツールのインストール
まずは下記のコマンドで、apt-getを情報を最新の状態にします。
sudo apt-get update
そしてカーネルコンパイルに必要なツールをインストールします。
sudo apt-get install kernel-package libncurses-dev ncurses-dev libqt3-mt-dev
最新カーネルのソースコードの取得とコンパイル
sudo apt-get install linux-source
取得できたら、/usr/srcに移動します。
$ cd /usr/src
そして先ほど取得したカーネルのソースコードを解凍しましょう。
$ sudo tar xjvf linux-source-2.6.**.tar.bz2※**の部分は取得した時点のカーネルのヴァージョンに依存します。
$ cd /user/src/linux-source-2.6.**※**の部分は取得した時点のカーネルのヴァージョンに依存します。
現在のカーネルのconfigをコピーしておきます。
$ sudo cp /boot/config-2.6.**-**-generic .config※**の部分は現在のカーネルのヴァージョンに依存します。
/boot以下にある、最も新しいカーネルのconfigファイルを指定してください。
コピーしたconfigファイルの設定を反映させます。
$ sudo make oldconfig現在のカーネルと最新のカーネルの間でコンパイルオプションが追加されている場合はいくつか質問されますが、Enterを押してデフォルト値で構いません。
xconfigでGUIでカーネルのconfigを変更します。
$ sudo make xconfig※xを使っていない場合はmenuconfigで。
以下の項目を変更します。
Processor type and features->Processor family->Core 2/newer Xeon
Processor type and features->Preemptible Kernel(Low-Latency Desktop)
Processor type and features->Timer frequency->1000Hz
変更したらCtrl+Sで保存してウインドウを閉じます。
変更したカーネルを識別できるようにEXTRAVERSIONを変更しておきます。
$ sudo vi MakefileEXTRAVERSION = -**-core2duo※**は最新カーネルのヴァージョンに依存します。
「-core2duo」は任意の文字列で構いません。カーネルのヴァージョン番号の最後に付加されます。
コンパイルします。
$ sudo make-kpkg --initrd kernel_image
コンパイルが完了したら、カーネルパッケージをインストールします。
#ひとつ上のディレクトリにカーネルのdebパッケージが作成されているはずです。
$ cd .. $ sudo dpkg -i linux-image-2.6.**-**-core2duo_2.6.**-**-core2duo-10.00.Custom_i386.deb※**の部分は取得した時点のカーネルのヴァージョンに依存します。
成功していれば、OS再起動後に起動するカーネルを選択できるようになっているはずです。
適用されているかどうかは「uname -r」か「uname -a」で確認できます。
$ uname -r 2.6.**.**-core2duo
Android自体にはあまり関係ないですが、少しでもお役に立てば幸いです。
- 6 http://groups.google.co.jp/group/android-embedded-japan/browse_thread/thread/aba465380570b5e2
- 5 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GPTB_jaJP295JP295&q=android タブ 幅
- 5 http://www29.atwiki.jp/android/
- 4 http://d.hatena.ne.jp/
- 4 http://www.google.co.jp/reader/view/
- 3 http://android-go.seesaa.net/article/123014650.html
- 3 http://d.hatena.ne.jp/kzou/20090722/1248270960
- 3 http://twitter.com/
- 2 http://agilemedia.jp/ht03a/review_18_0.html
- 2 http://bit.ly/DPY26



