現在時刻 - 2017年4月25日(火) 01:59


[SC03D]CM13のビルド手順について

カーネルやカスタムROMに関する話題・質問はこちらへ

モデレータ: Samsungモデレータ

  • 作成者
  • メッセージ

Jaken

  • 記事: 2
  • 登録日時: 2016年11月21日(月) 00:07

[SC03D]CM13のビルド手順について

投稿記事2016年11月21日(月) 00:49

はじめまして。ShowServiceModeなんてのを作ってたJakenと申します。

昔使っていたSC-03Dを活用したくなり、このCM13を入れたくて、今回ビルドに初挑戦しました。
(よっしゃここはビルドから!と意気込んで)
・・・そこで、いくつかはまったので、解決方法をご存じの方がおられましたら、教えていただきたいです。

お手伝い頂ければ、ここで、この後の手順メモも公開できるかもです。(投げ出さなければ!汗)
(CustomROM界隈ではイザコザ?があったのかよくわかりませんが、HomuHomuさん、失礼だったらごめんなさい)

■lunchコマンドで、add_lunch_comboしたのに以下のエラーになる。
コード: 全て選択
Trying dependencies-only mode on a non-existing device tree?
Trying dependencies-only mode on a non-existing device tree?

** Don't have a product spec for: 'cm_celoxdcm'
** Do you have the right repo manifest?


■vendor/cm/get-prebuiltsが存在しない。
どこかのソースコードからビルドしないといけない?

■extract-files.shで「../msm8660-common/extract-files.sh: not found」になる。
確かに、フォルダの中にはないけど、いったいどうすれば・・・。

■作業内容
作業はVMwareの仮想マシン上で行いました。作業手順は、以下の通りです。
(作業中のメモなので、たぶんいらないこともやってる)
コード: 全て選択
■VM名は「SC03D_CM13_Build」 Ubuntu16.04 64bit 2コア/4スレッド
ubuntu-ja-16.04-desktop-amd64.iso
普通にインストール(途中でファイルシステムの選択肢でLVMを選択した)

■参考サイト
http://android.slateblue.tk/viewtopic.php?f=20&t=236
http://blog.sola-dolphin-1.net/archives/5042973.html
http://dev.maud.io/entry/2016/04/25/how-to-build-cm13
http://kako.com/blog/?p=16254
https://wiki.cyanogenmod.org/w/Doc:_Using_manifests/ja
http://android.slateblue.tk/viewtopic.php?f=11&t=159
http://himahima.ldblog.jp/archives/32932927.html
http://source.android.com/source/building.html
http://source.android.com/source/building.html

■環境準備
$ sudo apt -y install open-vm-tools-desktop

$ sudo apt-get -y install android-tools-adb android-tools-fastboot autoconf automake bc bison build-essential bzip2 curl dpkg-dev flex g++-multilib gawk gcc gcc-multilib git-core gnupg google-android-build-tools-installer gperf lib32ncurses5-dev lib32readline6-dev lib32z1 lib32z1-dev libbz2-1.0 libbz2-dev libc6-dev libesd0-dev libexpat1-dev libghc-bzlib-dev libgl1-mesa-dev liblz4-1 liblz4-tool liblzma-dev liblzma5 libncurses5-dev libsdl1.2-dev libwxgtk3.0-dev libx11-dev libx11-dev:i386 libxml2 libxml2-utils lzop make maven openjdk-7-jdk openjdk-7-jre optipng patch pkg-config pngcrush python python-mako python-markdown python-software-properties python3 python3-mako schedtool squashfs-tools syslinux-utils texinfo tofrodos x11proto-core-dev xsltproc zip zlib1g-dev

$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get -y update
$ sudo apt-get -y install openjdk-7-jdk
$ sudo apt-get -y update


$ mkdir ~/bin
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ git config --global user.email "android"
$ git config --global user.name "android"


■Android SDK(android-tools-adbとかインストールしてるからいらなかったかも)
$ sudo apt install -y ubuntu-make
$ umake --version

$ sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
$ sudo apt-get -y update
$ sudo apt-get -y upgrade
$ sudo umake android


■環境変数の設定

$ vi ~/bin/android-env.sh
--------------------------------------------------
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
export ANDROID_JAVA_HOME=$JAVA_HOME
export PATH=$PATH:~/bin
--------------------------------------------------
$ chmod a+x ~/bin/android-env.sh
$ source ~/bin/android-env.sh

$ mkdir ~/cm13
$ cd ~/cm13

$ repo init -u git://github.com/kbc-developers/android.git -b cm-13.0

$ vi ~/cm13/.repo/local_manifests/cm_celoxdcm.xml
--------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_external_stlport" path="external/stlport" remote="github" revision="cm-13.0" />
<project name="kbc-developers/android_device_samsung_msm8660-common" path="device/samsung/msm8660-common" remote="github" revision="cm-13.0" />
<project name="kbc-developers/android_device_samsung_celox-common" path="device/samsung/celox-common" remote="github" revision="cm-13.0" />
<project name="kbc-developers/android_device_samsung_celoxdcm" path="device/samsung/celoxdcm" remote="github" revision="cm-13.0" />
<project name="kbc-developers/android_kernel_samsung_msm8660-common" path="kernel/samsung/msm8660-common" remote="github" revision="cm-13.0" />
<project name="kbc-developers/android_hardware_qcom_audio-caf" path="hardware/qcom/audio-caf/msm8660" remote="github" revision="cm-13.0-caf-8660" />
<project name="kbc-developers/android_hardware_qcom_media-caf" path="hardware/qcom/media-caf/msm8660" remote="github" revision="cm-13.0-caf-8660" />
<project name="kbc-developers/android_hardware_qcom_display-caf" path="hardware/qcom/display-caf/msm8660" remote="github" revision="cm-13.0-caf-8660" />
<project name="kbc-developers/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-13.0" />
</manifest>
--------------------------------------------------
$ repo sync -j4 -f --force-sync --no-clone-bundle

$ source ~/bin/android-env.sh
$ . build/envsetup.sh

$ add_lunch_combo cm_celoxdcm-userdebug
$ lunch cm_celoxdcm-userdebug
●ここでエラー
--------------------------------------------------
Trying dependencies-only mode on a non-existing device tree?
Trying dependencies-only mode on a non-existing device tree?

** Don't have a product spec for: 'cm_celoxdcm'
** Do you have the right repo manifest?
--------------------------------------------------

●このあと実行予定
$ brunch cm_celoxdcm-userdebug


■以下メモ

●get-prebuiltsが存在しない
$ cd vendor/cm
$ ./get-prebuilts
$ cd ../../

●extract-files.shで「./extract-files.sh: 4: ./extract-files.sh: ../msm8660-common/extract-files.sh: not found」になる。
$ cd device/samsung/celoxdcm
$ ./extract-files.sh


お手数をおかけしますが、お力添え頂けると幸いです。

Jaken

  • 記事: 2
  • 登録日時: 2016年11月21日(月) 00:07

Re: [SC03D]CM13のビルド手順について

投稿記事2016年11月23日(水) 00:23

ちょっと進みました。ここをチラ裏として使わせてもらうことになりそうです。

どうやら、repoのlocal_manifestsあたりがうまく適用されていなかったみたいです・・・。
※これ、どうやるのが正解なんだろう?local_manifest.xmlは非推奨の指定の仕方みたいなんですが・・・。あれこれ試したけど正解がわからない。

で、別のフォルダでマニフェストの代わりに手動でcloneしたら、少し進んだっぽいのですが、別の壁に当たりました。
コード: 全て選択
$ git clone https://github.com/CyanogenMod/android_hardware_samsung -b cm-13.0 hardware/samsung
$ git clone https://github.com/CyanogenMod/android_device_samsung_qcom-common -b cm-13.0 device/samsung/qcom-common
$ git clone https://github.com/CyanogenMod/android_external_stlport -b cm-13.0 external/stlport
$ git clone https://github.com/kbc-developers/android_device_samsung_msm8660-common -b cm-13.0 device/samsung/msm8660-common
$ git clone https://github.com/kbc-developers/android_device_samsung_celox-common -b cm-13.0 device/samsung/celox-common
$ git clone https://github.com/kbc-developers/android_device_samsung_celoxdcm -b cm-13.0 device/samsung/celoxdcm
$ git clone https://github.com/kbc-developers/android_kernel_samsung_msm8660-common -b cm-13.0 kernel/samsung/msm8660-common
$ git clone https://github.com/kbc-developers/android_hardware_qcom_audio-caf -b cm-13.0-caf-8660 hardware/qcom/audio-caf/msm8660
$ git clone https://github.com/kbc-developers/android_hardware_qcom_media-caf -b cm-13.0-caf-8660 hardware/qcom/media-caf/msm8660
$ git clone https://github.com/kbc-developers/android_hardware_qcom_display-caf -b cm-13.0-caf-8660 hardware/qcom/display-caf/msm8660
$ git clone https://github.com/kbc-developers/proprietary_vendor_samsung -b cm-13.0 vendor/samsung


で、lunchしたログがこれ。
コード: 全て選択
cm13@cm13-vm:~/test$ lunch cm_celoxdcm-userdebug
Looking for dependencies: device/samsung/celoxdcm
Adding dependencies to manifest
kbc-developers/android_device_samsung_celox-common already fetched to device/samsung/celox-common
Syncing dependencies
Fetching project kbc-developers/android_device_samsung_celox-common

Looking for dependencies: device/samsung/celox-common
Adding dependencies to manifest
kbc-developers/android_device_samsung_msm8660-common already fetched to device/samsung/msm8660-common
kbc-developers/android_kernel_samsung_msm8660-common already fetched to kernel/samsung/msm8660-common
Syncing dependencies
Fetching project kbc-developers/android_kernel_samsung_msm8660-common
Fetching project kbc-developers/android_device_samsung_msm8660-common
Fetching projects: 100% (2/2), done. 

Looking for dependencies: device/samsung/msm8660-common
Adding dependencies to manifest
kbc-developers/android_device_samsung_qcom-common already fetched to device/samsung/qcom-common
kbc-developers/android_external_stlport already fetched to external/stlport
Syncing dependencies
Fetching project kbc-developers/android_external_stlport
Fetching project kbc-developers/android_device_samsung_qcom-common
fatal: remote error:
  Repository not found.
Fetching projects:  50% (1/2)  fatal: remote error:
  Repository not found.
error: Cannot fetch kbc-developers/android_external_stlport

error: Exited sync due to fetch errors
Looking for dependencies: device/samsung/qcom-common
Adding dependencies to manifest
Adding dependency: kbc-developers/android_hardware_samsung -> hardware/samsung
Using default branch for android_hardware_samsung
Syncing dependencies
Fetching project kbc-developers/android_hardware_samsung
remote: Counting objects: 2759, done.       
remote: Total 2759 (delta 0), reused 0 (delta 0), pack-reused 2759       
Receiving objects: 100% (2759/2759), 1.72 MiB | 867.00 KiB/s, done.
Resolving deltas: 100% (1240/1240), done.
From git://github.com/kbc-developers/android_hardware_samsung
 * [new branch]      cm-13.0    -> github/cm-13.0
 * [new tag]         cm-10.1-M1 -> cm-10.1-M1
 * [new tag]         cm-10.1-M2 -> cm-10.1-M2
 * [new tag]         cm-10.1-M3 -> cm-10.1-M3
 * [new tag]         cm-10.1.0-RC1 -> cm-10.1.0-RC1
 * [new tag]         cm-10.1.0-RC2 -> cm-10.1.0-RC2
 * [new tag]         cm-10.1.0-RC3 -> cm-10.1.0-RC3
Fetching projects: 100% (1/1), done. 

Looking for dependencies: hardware/samsung
Dependencies file not found, bailing out.
Looking for dependencies: external/stlport
Dependencies file not found, bailing out.
Looking for dependencies: kernel/samsung/msm8660-common
Dependencies file not found, bailing out.

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=6.0.1
CM_VERSION=13.0-20161122-UNOFFICIAL-celoxdcm
TARGET_PRODUCT=cm_celoxdcm
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=scorpion
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-47-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_BUILD_TYPE=release
BUILD_ID=MOB30M
OUT_DIR=/home/cm13/test/out
============================================

これは、「kbc-developers/android_device_samsung_qcom-common」の中でsubmoduleとして、「kbc-developers/android_external_stlport」が使われており、そのリポジトリが無いからエラーになってる・・・という感じでしょうか。

で、github上を確認したら、「branchごと」どころか、「kbc-developers/android_external_stlport」自体がざっくりない・・・。これは・・・すでに打ち止めされてしまったのでしょうか?
「不要になったから削除した」という話なら・・・という望みをかけて。

まだ、ちょっと見切れていませんが、「kbc-developers/android_device_samsung_qcom-common」をforkして、「CyanogenMod/android_external_stlport」にでも切り替えたらいけるのでしょうか?

あと、こんなログも出てるので、なんかほかにもできてない気がしてます・・・。
コード: 全て選択
Looking for dependencies: hardware/samsung
Dependencies file not found, bailing out.
Looking for dependencies: external/stlport
Dependencies file not found, bailing out.
Looking for dependencies: kernel/samsung/msm8660-common
Dependencies file not found, bailing out.

HomuHomu

  • 記事: 211
  • 登録日時: 2013年5月30日(木) 21:31

Re: [SC03D]CM13のビルド手順について

投稿記事2016年12月15日(木) 18:54

https://github.com/CyanogenMod/android_external_stlport
使うのはこれでいいと思いますが
(forkした記憶はあるけど、もう覚えてない)

HomuHomu

  • 記事: 211
  • 登録日時: 2013年5月30日(木) 21:31

Re: [SC03D]CM13のビルド手順について

投稿記事2016年12月15日(木) 19:00

10か月以上放置しているレポなので
完走したとしても、まともに動く保証はないですね
恐らくはもうCM14.1は起動します。頑張れば。
そちらを頑張ったほうがよろしいかと存じますが
年末年始、死ぬほど暇なら見てみないこともないかと思いますが
期待せず、自分で頑張った方が早いかと存じますが

Return to 開発全般