2011年7月7日木曜日

cm4is01のbuildメモ

CM6byDevRenax-06242011-IS01を対象とした6/28頃のメモです。

基本は、本家 を参照くださいm(_ _)m
=============
. build/envsetup.sh
間にスペース必要


lunch generic_nb30-userdebug
vendor/cyanogen/products/AndroidProducts.mk
cyanogen_harmony.mkの先頭を#
にするとエラー回避

export  USE_CCACHE=1 

sudo update-alternatives --config java
でjava-6-sunを選択(sun-jdk6のインストールは割愛)


vendor/renax/prebuild
二つライブラリ放り込む必要あり。libbattlog.soとlibsynergy_com.so

vendor/renax/gapps
フォルダを作成し、
http://wiki.cyanogenmod.com/wiki/Latest_Version
のhdpiを入れてみた。
全フォルダのファイルを、vendor/renax/gappsに全部全部放り込む。
#初回起動時にwizardが複数出たり無限ループになりそうになったりする。
#ある程度設定したら電源ボタンキーで終了して抜けてしまってごまかしている。

external/wpa_supplicant
中身をSH Developersのと総入れ替え。その後cm4is01を差し替える。
https://sh-dev.sharp.co.jp/android/modules/oss/index.php?/is01

これで一応コンパイルが通るはず?

作成されたsystemフォルダを実機に放り込む前に・・・
・/system/binの中身のアクセス権。chmod 755しておくと吉? ←不要であることを確認 2011/8/3
・/system/etc/dhcpcd/dhcpcd-run-hooks
中身の終わりのほう、
    if [ -f "${hook}" ]; then
の場合は、
    if ls "${hook}" >/dev/null 2>&1; then
としておくと、wifiアクセスエラーおきないかも。

7 件のコメント:

  1. すみません、質問です。

    「作成されたsystemフォルダを実機に放り込む前に・・・」とありますが、これは「cm4is01_android」フォルダ配下のSystemの事でしょうか。

    最終的にubi_boot.img は作成されたので、Recovery領域に焼いて起動させてみましたが、「cyanogenmod-2.2.1-support-headset」等が適用されいない状態です。

    ビルドすると「cm4is01_android/System」に何らかのファイルが作成されるのでしょうか?

    返信削除
  2. 黒犬殿。ごめんなさい。説明が足りませんでした。
    /(略)/System/out/target/product/nb30/system/bin
    の中を「実機に放り込む前に・・・」です。

    私の環境の場合、環境作りを間違えたのか、生成された   out/target/product/nb30/system/bin
    の中のファイルの一部のpermissionが644(?)になっていて、
    cm4is01の起動時にエラーが発生してしまっていました。
    system/binの中身をすべて755に統一したところ、
    無事起動が進んだため、それを注記にした次第です。

    返信削除
  3. cm4is01のbuildは2つに分けられます。
    ・AndroidKernelのビルド
     → 成果物:ubi-boot.img
    ・Androidのビルド
     → 成果物:out/target/product/nb30/の中のフォルダやファイル

    前者はubi-boot.imgをflash_image
    後者はnb30/systemの中身を、adb push します。

    たぶん黒犬殿は後者の成果物をまだ確認されていない感じでしょうか。
    後者の「make -j4」はcorei5のノートPCで25分程度かかる重い処理で、
    makeに成功すると、上記nb30フォルダに
    systemフォルダやsystem.imgファイルなどが作成されます。

    返信削除
  4. 回答ありがとうございます。

    後者のビルドが1分もかからず終了しているので、どこか間違って環境を作ってしまったようです。

    もう一度最初から環境を作り直してみます。

    返信削除
  5. 何度も質問して、すみません。

    Androidのビルドですが、outフォルダがSystemと同じフォルダに作られてしまいます。
    これは手順4のやり方が間違っていると考えてよいものでしょうか?
    ※解説では「でファイル取得後、 手順3で取得したソースを上書き。 間違っても手順3で取得したソースに上書きしないでください。」とありますが、これを「手順3で取得したソースで上書き。」と解釈しています。


    またIS01用のAndroidKernelのビルドですが、Gitでとれたソースが「is01_froyo_kernel」配下に作られています。

    そこで「CROSS_COMPILE=../cm4is01_android/prebuilt/以下略」を「../../cm4is01_android/」と変え、is01_froyo_kernel フォルダから実行しているのですがこれは間違いでしょうか?

    返信削除
  6. > Androidのビルドですが、outフォルダがSystemと同じフォルダに作られてしまいます。

    どういうフォルダ構成になっているのか分からないので回答が難しいです。
    ただ、kernelじゃない方のbuildは、最終的に
    repo syncを行ったフォルダでmakeを行います。
    またそこにoutフォルダが作られます。

    > ※解説では「でファイル取得後、(略)
    > これを「手順3で取得したソースで上書き。」と解釈しています。

    合っていると思います。

    make時のログはmake.logに出てくるので、
    とまった場合は中を見て、どこでとまっているか確認しつつ進める必要があります。

    > またIS01用のAndroidKernelのビルドですが、

    kernelのbuildはまだ実施していないので分かりません。
    CROSS_COMPILE=以下のパスはそれぞれの環境に合わせて下さい。

    本家の解説ページがとても詳しいので、
    何をやっているか参考になると思います。
    http://www44.atwiki.jp/is01rebuild/pages/18.html

    またcyanogenmod, androidのbuildに関する他のページも
    参考にしてくださいm(_ _)m

    cm4is01のソースは、現在のところ完全な状態ではありません。
    難しい修正ではありませんが、出てくるエラーを自力解決する必要があります。。

    がんばって下さい。

    返信削除
  7. 回答ありがとうございます。

    それっぽい物ができたので、ubi_boot.img とSystemフォルダ内のファイルをPUSHしてみたのですが、ISロゴで固まってますので、まだダメみたいです。

    早速教えていただいたページを参考に、手直してみます。

    返信削除