Jump to content

Compiling CM9 (and maybe CM10) for Blade


Guest sej7278

Recommended Posts

Guest t0mm13b

I have a dual core (HT capable so virtually quad core) core i5 @2.5GHz with 3GB ram and a 5400rpm hdd.

Coudl try speeding up the disk cache using ccache?

ccache/ccache -M 20
Be warned - that eats up 20Gb not gibibytes - its gigabytes - who da fuq changed the naming conventions - ough to be hung out and shot! - am old skool :P) Secondly, if you have hyper threading - good luck! It's not a real dual core per se! Really, to take care of the
make -j n[/code]
 you do need at least dual core (I mean proper real dual core -not the fancy HT crap which do little justice)



Have a quad core/8Gb using 
[CODE]make -j 5[/code]

[b][i](it's number of cores + 1)[/i][/b] and the Gingerbread build takes approx 40 mins (Mind you am running X/Gnome 3.4 with Chrome, VirtualBox running Windows XP). On a HT machine with one core ([b]read: no cores![/b]) it takes 3.5 hours!

Link to comment
Share on other sites

Guest sej7278

I'm trying to use patch, but if I cd into the project directory, and paste the patch into the command line, it only shows me the diff, and doesn't apply the changes (did you understand this explanation? I'm pretty newbie as you can see)..

Navigation bar? Oh, you mean on the errors above? I don't know, never seen that piece of code in my life.. :)

look at my example a page back - i redirect the patch command to a file and then git apply that.

Link to comment
Share on other sites

Guest sej7278

Have a quad core/8Gb using

make -j 5[/CODE]

[b][i](it's number of cores + 1)[/i][/b]

no its cores (well threads) x2, so a core i5 should use -j8 an i7 should use -j16 as it has HT

i don't think there are dual core i5's and certainly not with hyperthreading, oh unless its a laptop which explains why it takes forever, laptops are rubbish for building with, slow drives too.

Edited by sej7278
Link to comment
Share on other sites

Guest WildeRNS

have a problem:

target thumb C: gps.blade <= hardware/cm/gps/gps.c

make: *** No rule to make target `out/target/product/blade/obj/lib/libloc.so', needed by `out/target/product/blade/obj/SHARED_LIBRARIES/gps.blade_intermediates/LINKED/gps.blade.so'. Stop.

Link to comment
Share on other sites

Guest shmizan

you're funny (in an irritating way). don't you see that's what the last 2 pages are about????

I suggest you read them before you try anything else

Link to comment
Share on other sites

Guest WildeRNS

you're funny (in an irritating way). don't you see that's what the last 2 pages are about????

I suggest you read them before you try anything else

you too :) i thinked that you reply to me :)

sorry

Edited by WildeRNS
Link to comment
Share on other sites

Guest shmizan

it's good you're making your own builds but you can't ignore the progress of the thread. we were JUST discussing what you wrote about.

good luck!

Link to comment
Share on other sites

Guest shmizan

I don't imagine my old AMD Athlon 64 X2 dual core will take too long either BUT I'm running the whole thing on a Virtual Machine so of course it will take hours!

that's me, targerbsp, and I guess jventura and shezar could be too. there's no solution for us but to install regular linux distro as a second OS. that will shorten the compile time.

Link to comment
Share on other sites

Guest jventura

I don't imagine my old AMD Athlon 64 X2 dual core will take too long either BUT I'm running the whole thing on a Virtual Machine so of course it will take hours!

that's me, targerbsp, and I guess jventura and shezar could be too. there's no solution for us but to install regular linux distro as a second OS. that will shorten the compile time.

I'm "natively" on a Xubuntu 12.04 distro ([email protected], 3GB RAM). But I do the compilation while working on other things, but I guess 2/2,5 hours at least have been the minimum for my clean builds.. But my laptop gets hot, really hot! :)

Link to comment
Share on other sites

Guest shezar

Coudl try speeding up the disk cache using ccache?

ccache/ccache -M 20[/CODE]

Be warned - that eats up 20Gb not gibibytes - its gigabytes - who da fuq changed the naming conventions - ough to be hung out and shot! - am old skool :P)

Thanks for this.

Anyway I smell a big misunderstanding here.

1: yes, I wasn't very clear, my computer is a notebook. I could try building on the other PC but I don't think that would worth the effort.

2: my i5 has 2 real cores + 2 virtual. I know that HT isn't a big deal, it gives 30% performance boost against a 2core without it. But that doesn't really matter, CPU is not my bottleneck. My bottleneck is that I have only 3GB of RAM and the swap is on the same HDD where the source is. In other words I have a device with slow random acces due to mechanical movements and it is forced to do random access.

3: Building is I/O intensive process as most of the times it reads/writes which takes longer (well, most of the time while building) than the actual compiling/linking/etc. There are some CPU intensive periods but that's nigligible.

4: i could simply start 32 jobs if I wanted to, the OS cycles through these tasks and gives each CPU time. But that would result in more I/O operations slowing the build down. More surprising is that Linux distributes 1 jobs load evenly between the 4 virtual cores.

Now I'm trying to set memory management so that it only swaps when it's absolutely necessary.

C3CO: is that without /out folder?

Link to comment
Share on other sites

Guest jventura

look at my example a page back - i redirect the patch command to a file and then git apply that.

Hey sej, yeap, thanks for the example! :)

I eventually did follow your example, and made a bash script to automate it (or the most of it). Although I've dumped Windows about 3 years ago, since I stop lecturing (intro to) Computer Science, it shows how noob you get by using that damn thing.. That is why sometimes I (may) ask obvious questions about bash's, git's and the rest..

Oh, it did compile ok, now I'm going to chase some cm9 bugs, like an irritating one which keeps settings "use 2G network" to false on each reboot.. Then some PT translations will follow (made some to cm7, so I'm used to it by now..) :)

This is the bash file I've made to automate the (unmerged) patches, maybe it can help another noob..


#!/bin/bash


# Apply backlight patch

cd ~/android/cm9/kernel/zte/zte-kernel-msm7x27/

# Reset possible changes

git reset --hard

# Download patch using gerrit PATCH

git fetch http://review.cyanogenmod.com/CyanogenMod/zte-kernel-msm7x27 refs/changes/46/15946/1 && git format-patch -1 --stdout FETCH_HEAD > ~/patch.patch

# Apply the patch and delete patch file

git apply ~/patch.patch

rm ~/patch.patch


# Apply Reverts patches

# -- Revert "Revert "Select texture target based on pixel format"" --

cd ~/android/cm9/frameworks/base

git reset --hard

git fetch http://review.cyanogenmod.com/CyanogenMod/android_frameworks_base refs/changes/28/16028/1 && git format-patch -1 --stdout FETCH_HEAD > ~/patch.patch

git apply ~/patch.patch

rm ~/patch.patch


# -- Revert "Revert "libqcomui: Select texture target based on pixel format"" --

cd ~/android/cm9/hardware/qcom/display

git reset --hard

git fetch http://review.cyanogenmod.com/CyanogenMod/android_hardware_qcom_display refs/changes/27/16027/1 && git format-patch -1 --stdout FETCH_HEAD > ~/patch.patch

git apply ~/patch.patch

rm ~/patch.patch


# Fix video recording

# -- blade: Fix video recording (part 1/2) --

cd ~/android/cm9/device/zte/blade

git reset --hard

git fetch http://review.cyanogenmod.com/CyanogenMod/android_device_zte_blade refs/changes/20/16020/8 && git format-patch -1 --stdout FETCH_HEAD > ~/patch.patch

git apply ~/patch.patch

rm ~/patch.patch

# part 2/2 copy file

# https://github.com/tilal6991/proprietary_vendor_zte/blob/85a3d212f10b2200b6ffd95990bb24ed87da9a55/blade/proprietary/lib/libOmxVidEnc.so

Link to comment
Share on other sites

Guest sej7278

Hey sej, yeap, thanks for the example! :)

I eventually did follow your example, and made a bash script to automate it (or the most of it). Although I've dumped Windows about 3 years ago, since I stop lecturing (intro to) Computer Science, it shows how noob you get by using that damn thing.. That is why sometimes I (may) ask obvious questions about bash's, git's and the rest..

well done! i never thought of wrapping it in a shell script, i tend to copy'n'paste from my notes lol, bit silly.

i'd say to just download the patches once and store them outside of the cm9 repo, saves a bit of downloading/deleting.

as far as things not being set on reboot, i think there may be a bug or two in the properties system, or its different to cm7 as i've found a couple of things that don't work such as debug.sf.nobootanimation=1 in build.prop, with cm9 you have to echo 1 > /data/property/persist.sys.nobootanimation to get it to work.

also tom_g had the problem with the proximity that wasn't always reading the file in on boot.

Edited by sej7278
Link to comment
Share on other sites

Guest shmizan

thanks for the hint about the nobootanimation. set mine to 1 as well. that shortens the boot time a lot.

IMO, it's just a matter of time until CM team adds it as an option.

Link to comment
Share on other sites

Guest targetbsp

But I'm not using an ICS based launcher - I'm still using ADW.Ex. And it's laggy anyway! I just haven't got around to finding an ICS launcher I like yet.

I'm now committed to the cause! Spent an hour last night playing with Nova and Apex and chucked £2.50 at Nova Prime. Chose it for its better custom category support (allowing more of them and faster to change between them) which was the main feature I used ADW.Ex for. And damn these ICS launchers are smooth! Using Sejs latest build. Though I think I've compiled pretty much the same thing - latest CM9 source with all the patches from Sej's signature, all the pending Blade changes and the video encoding lib - it seemed pointless to flash it. :D

i think the rule is if you must use make installclean and have problems, delete out/ and try again before reporting problems.

This is the approach I'm taking now. My VM only has access to 1 core so ain't very fast! If I had to wipe out every time it wouldn't be practical me compiling it at all. The host only has 2 cores as it was built as a games machine and except for GTA 4 you don't seem to need lots, or fast, CPU cores for gaming these days. It has an SSD but, well, it's full of Windows and games . :D

Link to comment
Share on other sites

Guest shezar

Do you do exactly the same to build for the skate or is there any differences...?

I think you can do it this way but you need to get the props from somewhere else, koush's git only contains blade/v9 stuff.

Edited by shezar
Link to comment
Share on other sites

Guest sej7278

thanks for the hint about the nobootanimation. set mine to 1 as well. that shortens the boot time a lot.

IMO, it's just a matter of time until CM team adds it as an option.

nope, for some stupid reason they actually removed it as an option - too many options for noobs or something:

http://review.cyanogenmod.com/#/c/12774/

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.