掲示板お問い合わせランダムジャンプ

2017年03月19日
L-01E(geehdc)向けCM-11.0のコンパイル手順
先日手に入れたLG Optimus G L-01Eは、OSのバージョンがAndroid 4.1.2で止まっているため、カスタムROMで新しいバージョンのOSを入れたい。
しかし、どうもCM-11.0(Android 4.4)より新しいものがないので自分で作成して見ようと思う。
とりあえずResurrection Remixでやってみたが、L-01Eの環境が見つからずうまくいかない。
まずは、必要な物がそろっていそうなCM-11.0のコンパイルを行い、環境の作り方を調べてみる。

参考サイトの方々に感謝!

1.コンパイル用Linux環境の構築

VMWareを使って、Ubuntu server 16の環境を作る。
HDDの容量は数百GBあったほうが良いとのことなので、500GBほど割り当てる。
またVMWareで「簡易インストール」を選ぶと、インストール後の再起動時に止まるので、「後でOSをインストール」を使う。



2.gitのインストール
sudo apt-get install git


3.CM11のコンパイル環境構築

mkdir ~/cyanogen
cd ~/cyanogen
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
repo sync
. build/envsetup.sh
mkdir ./.repo/local_manifests
vi ./.repo/local_manifests/geehdc.xml

<manifest>
<project name="kbc-developers/android_device_lge_geehdc" path="device/lge/geehdc" remote="github" revision="cm-11.0"/>
<project name="kbc-developers/android_device_lge_gproj-common" path="device/lge/gproj-common" remote="github" revision="cm-11.0"/>
<project name="kbc-developers/lge-kernel-gproj" path="kernel/lge/gproj" remote="github" revision="cm-11.0"/>
<project name="kbc-developers/proprietary_vendor_lge.git" path="vendor/lge" remote="github" revision="cm-11.0"/>
</manifest>

repo sync

ここでdevice/配下等を見ても、local_manifestsに記載したものがダウンロードしていなかった。結局直し方がわからず、githubのサイトからzipをダウンロードして自分で展開した。
ダウンロードして展開したものは、local_manifestsの「path」に記載した箇所に実体を置く(シンボリックリンクではNG)。


./vendor/cm/get-prebuilts
brunch geehdc

この後、コンパイルが始まったが以下のエラーが発生。


Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at /home/CyanogenMod/cyanogen/kernel/lge/gproj/kernel/timeconst.pl line 373.
/home/CyanogenMod/cyanogen/kernel/lge/gproj/kernel/Makefile:129: ターゲット 'kernel/timeconst.h' のレシピで失敗しました
make[3]: *** [kernel/timeconst.h] エラー 255
/home/CyanogenMod/cyanogen/kernel/lge/gproj/Makefile:949: ターゲット 'kernel' のレシピで失敗しました
make[2]: *** [kernel] エラー 2


ネットで調べたところ、timeconst.plのバグ(https://bugzilla.mozilla.org/attachment.cgi?id=8696990&action=diff)のようで、記載されている通り修正すると、先に進んだ。


修正前:if (!defined(@val)) {
修正後:if (!@val) {


また次はプロセスがkillされる事象が発生。どうやらメモリ不足のようなので4GBまで拡張

collect2: error: ld terminated with signal 9 [Killed]


今は、ここまで。

参考:Optimus G(L-01E)にCyanogenMod10.2を導入したので自分用メモ
参考:Bug 1231340 - Can't use 'defined(@array)'
参考:cyanogenmodのビルド
参考:ResurrectionRemix-M のビルド方法
[ 投稿者:cloney at 13:33 | Linux | コメント(0) | トラックバック(0) ]

この記事へのコメント

この記事へのトラックバック

この記事へのトラックバックURL
http://shinshu.fm/MHz/39.23/a01599/0000527798.trackback

この記事の固定URL
http://shinshu.fm/MHz/39.23/archives/0000527798.html

記事へのコメント
 
簡単演算認証: 6 x 5 + 5 =
計算の答えを半角英数字で入力して下さい。
名前: [必須]
URL/Email:
タイトル:
コメント:
※記事・コメントなどの削除要請はこちら