とりあえず動いて、Build numberに自分の名前が出るだけです。快適になるっというレベルではありません。
とりあえずmakeしてみたかっただけです。
●手順のまとめ
基本的にここ書いてあるようにすれば、環境はできる。
- ubuntuを用意
- 必要なパッケージをインストール
- gitでソース取得
- make
- SDカードに展開
- makeしたもののみ -> 起動不可
- 古い環境に上書き -> 起動不可
- 古い環境に上書き+init.rcは古い物を使用 -> 起動可
●わかったこと
- initrcで起動できるか分かれる → initrcの記述を見比べれば、なにかわかるかも。
- rootfsのレベルでwifiが使えるか別れる → カーネルレベルで対応しているだけでは、ダメ
●細かい手順
環境は、ubuntu9.04です。
$sudo -s
$apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
参考ページでは、次に"valgrind"をインストールしているが、デバッグのツールなのでとばしました。
$apt-get install lib32readline5-dev
ソース取得用のスクリプトをつくる
$mkdir ~/bin
$export PATH=~/bin:$PATH
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo
ソースの取得(途中で、名前とメアドが必要。コミット(gitでも?しない限りgmailである必要はないようです。)
$mkdir mydoroid
$cd mydoroid
$repo init -u git://android.git.kernel.org/platform/manifest.git (10分ほどかかった)
$repo sync (1時間ほどかかった)
make
$cd mydoroid
$make (8時間かかった。速いマシンでも5時間ぐらいかかるようです。)
コピー("rootディレクトリの中" と "systemディレクトリそのまま")
$mount /dev/sdb2 /mnt (SDの2番目のパーティションをマウント)
$cp /mnt/init.rc ~
$cp -ar /out/target/product/generic/root/* /mnt
$cp -ar /out/target/product/generic/system /mnt
$cp ~/init.rc /mnt
$sync && umount /mnt
とりあえず、動いたから満足。setting - About phone - Build numberにソースを取得したときの名前が表示されます。
待ち時間中にカーネルのオプションを眺めたりしていたけれど、ソースをいじらないとダメぽい。
オプションを変えるぐらいなら、何とかなるけれど、ソースの変更は無理。
少しだけ妄想。
Android用のカーネルと元のカーネルの差分をとってAndroid用のパッチを作る。
arm用(SmartQ用)のubuntuのカーネルソースにパッチを適用。
arm用のクロスコンパイラでmake。
ubuntuがお勧め(標準)の環境らしいので、はじめてPlamoLinux以外を使った。
makeしている間に、いろいろと触ってみたけれど、慣れない。
インストーラが普通にGUIでびっくりした。
久々に長い時間がかかるコンパイルしたけれど、やっぱり速いマシンがほしくなる。
0 件のコメント:
コメントを投稿