Learning to build CM13 - OnePlus 3 Guides, News, & Discussion

Hi guys!
I don't have a lot of knowledge in building android for phones, so please bear with me I wanted to make this thread specifically for our 1+3, since there are a lot of different guides for specific devices.
My objectif is to build the unofficial CM13 sources directly from CM, except the proprietary files, which are not included (thanks @Planet X). So since I'm a beginner, I'm gonna update this OP with the different steps.
As suggested by @Planet X, here is another guide which is pretty nice, very fast, but doesn't really explain what you are doing (good for people who wants to get something working fast or that has already some building knowledge): https://github.com/Seraph08/RosettaBuild
Steps
Step 1: Getting Linux up (see http://forum.xda-developers.com/chef-central/android/guide-android-rom-development-t2814763)
Step : Installing the different apps like gcc, java, etc. (http://forum.xda-developers.com/chef-central/android/guide-android-rom-development-t2814763 + https://wiki.cyanogenmod.org/w/Build_for_bacon)
Step 3: Getting the repo synced (http://xda-university.com/as-a-developer/getting-started-building-android-from-source) with CM13.
--> Ok so after I went to a little party, when I came back it was finished. Buuuuuut I had some repo sync errors (couldn't fetch files). Still gonna continue, I'll come back later if I have any issues building or so. Furthermore, I used repo sync instead of using specific options like -c (which takes only the current branch) and -j 4 (number of connections). This means that I downloaded EVERYTHING... /facepalm
--> Ok so I tried to source build/envsetup.sh, but couldn't cause it doesn't exist. Soooo I'm gonna download the source again (yyaaayy!) with this time repo sync -c -j 4.
--> Apparently, when doing the repo sync stuff, CM already has a default line, which is the same that I manually did... So can't tell if my issue is going to be solved or not. Let's wait and see!
--> Ok so errors again. I created manually the local_manifest.xml in .repo and resyncing. I used @proag xml file. Let's see what happens!
--> I finally understood ^^ local_manifests is not a file but a folder in .repo. In this folder, you add roomservice.xml which points to the other gits. Gonna change this and then resync.
--> Ok, finally have the repo synced correctly (no errors anymore). The trick is to make the local manifest and re-sync afterwards.
Step 4: Created local manifest and repo sync (https://wiki.cyanogenmod.org/w/Doc:_Using_manifests)
Step 5: Ok so launched source build/envsetup.sh, no issues there. Launched breakfast oneplus3, no issues there as well. Launched brunch oneplus3 --> BANG, error! I knew it was too good to be true... Anyways, the error was concerning Java. I had 1.8 installed instead of 1.7. For CM13, there are two solutions: eother modify the sources in order to use java 1.8 OR instal java 1.7. I wanted to do the second, so I ran the following command: sudo apt-get update && sudo apt-get install openjdk-7-jdk
The good version of java is installed, now let's try to build!
--> Ok still not good, I had to remove the 1.8 version, so I used sudo apt-get remove open-jdk-8* and tada! Just launched brunch and it works. I won't let it run cause I need the PC, but I'll launch it tomorrow.
Step 6: Launched the build during the night, but got an error after 2h: make failed to build some targets. Just before, I jave the following: make: fork: cannot allocate memory.
Sooo either I don't have enough RAM (8Gb), either I don't have enough disk space (150Gb). Gonna test out the RAM solution (increase the RAM of the VM).
--> Ok so I took a look in the ressources in Ubuntu and apparently, it isn't even using up all the RAM:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I'm using VMWare workstation 12 Pro (12.0.1) with Ubuntu 16.04 LTS. Anyone having this issue? Really thinking of dual-booting... Gonna let the build go on and see.
--> Ok so I think I'm gonna dual boot, it seems that all the resources are not well used by VMWare... At least, the build will go faster!
Step 7: Ok so dual booting is easier and the build is faster. After 2h30 of building, success! With ccache enabled, I should reduce it by half at least. I'm now going to change the local-manifest in order to use TheMuppets proprietary files.
--> When repo-syncing, impossible since the work tree isn't the same. So had to repo sync --force-sync vendor/oneplus. The bad news is that it deletes everything for vendor/oneplus. The good news is that you don't need to downlaod all the full repo again, so it took about 5-10mins.
--> Now, doing breakfast and brunching again with this new work tree, let's see!
Step 8: Build completed in 22min! That was fast! There weren't a lot of changes so kinda normal. Going to upload it on androidfilehost so that anyone can access it
--> Uploaded, it took more time to upload than to build...
Next Step: Generate a changelog (need help on this point) but not a big issue since it can be found on cmxlog.com/13/ for almost everything.
If anyone wants to help out, feel free to contribute! If we complete this thread, it may help out other users that want to start doing custom ROMs, or even start to do their own unofficial builds for specific devices!
Download latest build
I will use my personal builds and I won't be able to upload since I have a crappy upload connection. I suggest you use @papi92 builds here: http://forum.xda-developers.com/oneplus-3/how-to/unofficial-nightly-supported-t3406706
Sources
CyanogenMod/android_device_oppo_common
CyanogenMod/android_device_qcom_common
TheMuppets/proprietary_vendor_oneplus
CyanogenMod/android_device_oneplus_oneplus3
CyanogenMod/android_kernel_oneplus_msm8996
CyanogenMod/android_vendor_nxp-nfc_opensource_Nfc
CyanogenMod/android_vendor_nxp-nfc_opensource_frameworks
CyanogenMod/android_vendor_nxp-nfc_opensource_libnfc-nci
Thanks
Thanks to the following people for their help / sources, etc...
- XDA team
- CM team
- @Grarak for his sources, etc...
- @Planet X for his help
- @jackeagle for his full guide on CM11
- @Kishan14 for his guide on the custom repos / manifest
- TheMuppets repo tree for the proprietary files

Everyone started somewhere, you are starting with oneplus 3. Wish you best of luck.

At the step when you do breakfast oneplus3 the local manifest folder with a roomservice.xml will be created for you automatically. You need then to add the vendor project from Grarak like this have been written in the thread.
<project name="Grarak/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" revision="cm-13.0" />
That's it. Then do repo sync again.
Then brunch oneplus3.
Succes with your first self build rom.
B.t.w. You can skip the "Extract proprietary files" step as you have added them to your roomservice.xml
Edit: Here you will find an easy guide as well: https://github.com/Seraph08/RosettaBuild

I really want to help but I don't know enough... :/

My Building process is syncing CM repos. Then git cloning the needed device repos (I don't prefer adding them to local manifest as I tend to do a lot of changes). Then it is simple brunch and done ! A clean build takes me 2 hrs.
Sent from my OnePlus2 using XDA Labs

Your local manifest file should look like this:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_oppo_common" path="device/oppo/common" remote="github" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="Grarak/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_device_oneplus_oneplus3" path="device/oneplus/oneplus3" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_kernel_oneplus_msm8996" path="kernel/oneplus/msm8996" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_vendor_nxp-nfc_opensource_Nfc" path="vendor/nxp-nfc/opensource/Nfc" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_vendor_nxp-nfc_opensource_frameworks" path="vendor/nxp-nfc/opensource/frameworks" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_vendor_nxp-nfc_opensource_libnfc-nci" path="vendor/nxp-nfc/opensource/libnfc-nci" remote="github" revision="cm-13.0" />
</manifest>
Click to expand...
Click to collapse

proag said:
Your local manifest file should probably look like this:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_oppo_common" path="device/oppo/common" remote="github" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="Grarak/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" revision="cm-13.0" />
<project name="Grarak/android_device_oneplus_oneplus3" path="device/oneplus/oneplus3" remote="github" revision="cm-13.0" />
<project name="Grarak/android_kernel_oneplus_msm8996" path="kernel/oneplus/msm8996" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_vendor_nxp-nfc_opensource_Nfc" path="vendor/nxp-nfc/opensource/Nfc" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_vendor_nxp-nfc_opensource_frameworks" path="vendor/nxp-nfc/opensource/frameworks" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_vendor_nxp-nfc_opensource_libnfc-nci" path="vendor/nxp-nfc/opensource/libnfc-nci" remote="github" revision="cm-13.0" />
</manifest>
Click to expand...
Click to collapse
Use CM for device and kernel repos.

papi92 said:
Use CM for device and kernel repos.
Click to expand...
Click to collapse
Wow, didn't know there were official repos, thanks!

I built 4 ROMs for my tablet but I'm still a beginner and not a developer as device tree for it was provided. I thought with OnePlus 3 I will be able to contribute anyhow or help with development but I've ordered 3 days after launch and still didn't receive it yet, lol. There are 19 ROMs already and nothing to build for me ;_; Grarak released his port before I even had the money for the phone..

Wow thanks all of you for your help, I'll complete the guide tomorrow when the sources have finished thanks again, didn't know we would have so much help

I am no android expert even thought i am a computer scientist but I would love to see the whole comunity working in a single rom since OnePlus has opened all the source code. To me this is like a dream for this phone. I understand that each rom has unique features and people use them because of those features but having the whole community working as one group for a super duper nice rom for 1+3 would be just a dream.

--> Ok so I tried to source build/envsetup.sh, but couldn't cause it doesn't exist. Soooo I'm gonna download the source again (yyaaayy!) with this time repo sync -c -j 4.

It's pretty simple, setup your local manifest as shown earlier, sync the repos, then:
. build/envsetup.sh
breakfast oneplus3
brunch oneplus3
and that's pretty much all

--> Ok so errors again. I created manually the local_manifest.xml in .repo and resyncing. I used @proag xml file. Let's see what happens!

matssa said:
--> Ok so errors again. I created manually the local_manifest.xml in .repo and resyncing. I used @proag xml file. Let's see what happens!
Click to expand...
Click to collapse
What you need to do is to create local_manifests folder inside .repo folder, then create roomservice.xml and then put the manifest in. Sorry, should've made it more clear.

proag said:
What you need to do is to create local_manifests folder inside .repo folder, then create roomservice.xml and then put the manifest in. Sorry, should've made it more clear.
Click to expand...
Click to collapse
Ok you lost me there ^^ In the .repo, I have the manifest.xml (default one, I don't change it). Then, I added the local_manifest where I target the different builds in git. Concerning the roomservice.xml, I didn't read anything bout this stuff, what is it? Do I need to create it manually? What is in there?
EDIT/// OOOOK I understand now!! The local_manifests is not a file, but a folder ^^ Gonna change it right now

matssa said:
Ok you lost me there ^^ In the .repo, I have the manifest.xml (default one, I don't change it). Then, I added the local_manifest where I target the different builds in git. Concerning the roomservice.xml, I didn't read anything bout this stuff, what is it? Do I need to create it manually? What is in there?
Click to expand...
Click to collapse
Actually it doesn't matter what you name it but roomservice.xml is the default name for a local manifest file.
https://wiki.cyanogenmod.org/w/Doc:_Using_manifests
You need to create one manually, you can do it using terminal
cd your_path_to_local_manifests
nano roomservice.xml
*copy paste*
ctrl+x
y
enter
And you're pretty much good to go, now you just sync the repos.

Yay! Finally managed to get the repo sync OK You should have the following at the end:
Code:
Checking out files: 100% (9727/9727), done.ut files: 12% (1226/9727)
Checking out files: 100% (5699/5699), done.
Checking out files: 100% (4313/4313), done.
Checking out files: 100% (11736/11736), done.t files: 3% (450/11736)
Checking out files: 100% (479/479), done.g out files: 15% (73/479)
Checking out files: 100% (2438/2438), done.out files: 5% (123/2438)
Checking out files: 100% (1200/1200), done.out files: 15% (191/1200)
Checking out files: 100% (791/791), done.g out files: 36% (290/791)
Checking out files: 100% (440/440), done.g out files: 21% (96/440)
Checking out files: 100% (2101/2101), done.
Checking out files: 100% (10613/10613), done.t files: 4% (509/10613)
Checking out files: 100% (2254/2254), done.out files: 39% (888/2254)
Checking out files: 100% (2067/2067), done.
Checking out files: 100% (581/581), done.g out files: 46% (272/581)
Checking out files: 100% (2328/2328), done. out files: 18% (433/2328)
Checking out files: 100% (7397/7397), done. out files: 5% (430/7397)
Checking out files: 100% (4182/4182), done. out files: 27% (1166/4182)
Checking out files: 100% (17133/17133), done.ut files: 5% (928/17133)
Checking out files: 100% (4951/4951), done. out files: 44% (2197/4951)
Checking out files: 100% (179/179), done.ng out files: 5% (10/179)
Checking out files: 100% (1195/1195), done. out files: 47% (569/1195)
Checking out files: 100% (723/723), done.ng out files: 3% (27/723)
Checking out files: 100% (3505/3505), done. out files: 33% (1187/3505)
Checking out files: 100% (3051/3051), done. out files: 37% (1132/3051)
Checking out files: 100% (889/889), done.ng out files: 37% (335/889)
Checking out files: 100% (4367/4367), done. out files: 6% (280/4367)
Checking out files: 100% (4983/4983), done. out files: 1% (61/4983)
Checking out files: 100% (1054/1054), done.
Checking out files: 100% (2565/2565), done.
Checking out files: 100% (1483/1483), done.
Checking out files: 100% (831/831), done.ng out files: 36% (302/831)
Checking out files: 100% (2804/2804), done. out files: 23% (662/2804)
Checking out files: 100% (28044/28044), done.ut files: 0% (8/28044)
Checking out files: 100% (51623/51623), done.ut files: 2% (1508/51623)
Checking out files: 100% (175/175), done.ng out files: 41% (73/175)
Checking out files: 100% (3416/3416), done. out files: 0% (34/3416)
Checking out files: 100% (64/64), done.king out files: 14% (9/64)
Checking out files: 100% (68/68), done.
Checking out files: 100% (96/96), done.
Checking out files: 100% (742/742), done.ng out files: 0% (5/742)
Checking out files: 100% (269/269), done.ng out files: 11% (31/269)
Checking out files: 100% (128/128), done.
Checking out files: 100% (3202/3202), done. out files: 0% (27/3202)
Checking out files: 100% (3539/3539), done.
Checking out files: 100% (4198/4198), done.
Checking out files: 100% (270/270), done.
Checking out files: 100% (10253/10253), done.
Checking out files: 100% (2050/2050), done. out files: 26% (540/2050)
Checking out files: 100% (956/956), done.
Checking out files: 100% (72214/72214), done.
Checking out files: 100% (4865/4865), done.
Checking out files: 100% (3552/3552), done.
Checking out files: 100% (52/52), done.king out files: 23% (12/52)
Checking out files: 100% (1180/1180), done.
Checking out files: 100% (3826/3826), done.
Checking out files: 100% (224/224), done.ng out files: 43% (97/224)
Checking out files: 100% (1589/1589), done. out files: 4% (73/1589)
Syncing work tree: 100% (533/533), done.

matssa said:
Yay! Finally managed to get the repo sync OK You should have the following at the end:
Code:
Checking out files: 100% (9727/9727), done.ut files: 12% (1226/9727)
Checking out files: 100% (5699/5699), done.
Checking out files: 100% (4313/4313), done.
Checking out files: 100% (11736/11736), done.t files: 3% (450/11736)
Checking out files: 100% (479/479), done.g out files: 15% (73/479)
Checking out files: 100% (2438/2438), done.out files: 5% (123/2438)
Checking out files: 100% (1200/1200), done.out files: 15% (191/1200)
Checking out files: 100% (791/791), done.g out files: 36% (290/791)
Checking out files: 100% (440/440), done.g out files: 21% (96/440)
Checking out files: 100% (2101/2101), done.
Checking out files: 100% (10613/10613), done.t files: 4% (509/10613)
Checking out files: 100% (2254/2254), done.out files: 39% (888/2254)
Checking out files: 100% (2067/2067), done.
Checking out files: 100% (581/581), done.g out files: 46% (272/581)
Checking out files: 100% (2328/2328), done. out files: 18% (433/2328)
Checking out files: 100% (7397/7397), done. out files: 5% (430/7397)
Checking out files: 100% (4182/4182), done. out files: 27% (1166/4182)
Checking out files: 100% (17133/17133), done.ut files: 5% (928/17133)
Checking out files: 100% (4951/4951), done. out files: 44% (2197/4951)
Checking out files: 100% (179/179), done.ng out files: 5% (10/179)
Checking out files: 100% (1195/1195), done. out files: 47% (569/1195)
Checking out files: 100% (723/723), done.ng out files: 3% (27/723)
Checking out files: 100% (3505/3505), done. out files: 33% (1187/3505)
Checking out files: 100% (3051/3051), done. out files: 37% (1132/3051)
Checking out files: 100% (889/889), done.ng out files: 37% (335/889)
Checking out files: 100% (4367/4367), done. out files: 6% (280/4367)
Checking out files: 100% (4983/4983), done. out files: 1% (61/4983)
Checking out files: 100% (1054/1054), done.
Checking out files: 100% (2565/2565), done.
Checking out files: 100% (1483/1483), done.
Checking out files: 100% (831/831), done.ng out files: 36% (302/831)
Checking out files: 100% (2804/2804), done. out files: 23% (662/2804)
Checking out files: 100% (28044/28044), done.ut files: 0% (8/28044)
Checking out files: 100% (51623/51623), done.ut files: 2% (1508/51623)
Checking out files: 100% (175/175), done.ng out files: 41% (73/175)
Checking out files: 100% (3416/3416), done. out files: 0% (34/3416)
Checking out files: 100% (64/64), done.king out files: 14% (9/64)
Checking out files: 100% (68/68), done.
Checking out files: 100% (96/96), done.
Checking out files: 100% (742/742), done.ng out files: 0% (5/742)
Checking out files: 100% (269/269), done.ng out files: 11% (31/269)
Checking out files: 100% (128/128), done.
Checking out files: 100% (3202/3202), done. out files: 0% (27/3202)
Checking out files: 100% (3539/3539), done.
Checking out files: 100% (4198/4198), done.
Checking out files: 100% (270/270), done.
Checking out files: 100% (10253/10253), done.
Checking out files: 100% (2050/2050), done. out files: 26% (540/2050)
Checking out files: 100% (956/956), done.
Checking out files: 100% (72214/72214), done.
Checking out files: 100% (4865/4865), done.
Checking out files: 100% (3552/3552), done.
Checking out files: 100% (52/52), done.king out files: 23% (12/52)
Checking out files: 100% (1180/1180), done.
Checking out files: 100% (3826/3826), done.
Checking out files: 100% (224/224), done.ng out files: 43% (97/224)
Checking out files: 100% (1589/1589), done. out files: 4% (73/1589)
Syncing work tree: 100% (533/533), done.
Click to expand...
Click to collapse
Well done, now you need to start building:
breakfast oneplus3
brunch oneplus3
And that's all.

proag said:
Well done, now you need to start building:
breakfast oneplus3
brunch oneplus3
And that's all.
Click to expand...
Click to collapse
Yup, already tested out but I have the Java issues (1.8 instead of 1.7). Gonna either remove the Java version, either activate the Java 1.8 compatibility in CM

Related

[Q] Compiling Gingerbread/CM7 & Froyo/CM6?

Okay I am trying to compile from the cyanogenmod souce using this site.
When I get to this part of the instructions....
Code:
repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
repo sync -j16
...the heroc files always fail and don't complete 100%. They stop at like 2% maybe 3% and i've tried those two steps like 5 times over the past 7 hours (syncing takes a while b/c its a few gb worth of files).
I also tried entering.....
Code:
repo sync
... after the above codes so that I could try and get the heroc files that way but still the heroc files would stop after getting a few percent.
EDIT:
Now I tried doing the following....
Code:
cd ~/android/system/
repo init -u git://github.com/CyanogenMod/android_devide_htc_heroc.get -b gingerbread
Here is the output....
Code:
[email protected]:~/android/system# repo init -u git://github.com/CyanogenMod/android_device_htc_heroc.git -b gingerbread
warning: no common commits
remote: Counting objects: 876, done.
remote: Compressing objects: 100% (494/494), done.
remote: Total 876 (delta 352), reused 671 (delta 240)
Receiving objects: 100% (876/876), 68.43 MiB | 620 KiB/s, done.
Resolving deltas: 100% (352/352), done.
From git://github.com/CyanogenMod/android_device_htc_heroc
+ b61b9da...cb608da froyo -> origin/froyo (forced update)
+ 15bf664...cb608da froyo-stable -> origin/froyo-stable (forced update)
+ 316eefc...89d8116 gingerbread -> origin/gingerbread (forced update)
.repo/manifests/: discarding 217 commits removed from upstream
fatal: manifest 'default.xml' not available
fatal: manifest default.xml not found
[email protected]:~/android/system#
Did it actually work or no? I'm confused because I see the words fatal and discarding so i think something went wrong. I think the file tranfer from the source may have been canceled or failed. Am I wrong? Did the files actually transfer so that I could actually get to compiling now?
Any help with this would be awesome
its funny i never got an answer lol but i think it was because of the internet connection i was using
If I saw this thread when you first posted it I would've told you to do the same thing
Try this first:
Code:
repo sync -j16
if that fails, try this, and keep entering in the command until it's ALL synced
Code:
repo sync
I had the same problem the first time I synced... but then again I was tethering on my phone at the time 200-300Kbs took quite some time haha

[TUTORIAL] Compiling N7000 CM10 for us Dummies

Compiling CM from source is hard, right? Wrong!
All you need is
a semi decent PC
a decent Interweb connection
a bit of patience
a) semi decent PC - compiling a Rom from source entails some data crunching, so the better the box you have, the quicker it gets done
b) doing a repo sync means that you have to download CM10 repository to your machine. It contains some 6-7 Gbs of data, so attempting to do it on a 0.5 megabit connection might take forever and a day. For instance, I'm on a 20 megabit connection and the sync takes about 90 minutes.
c) some patience to read the following tutorial
And that's all.
First things first: you need to download and install 64-bit version of Ubuntu 12.04. A 32-bit one won't cut it. You'll want to have about 80-100 Gb partition for Ubuntu and compiling, and it wouldn't hurt to use another smaller partition (cca 30-40Gb) for swap. For instance, Anti uses a 120 Gb SSD for his compiling, I use 100+40 swap prehistoric SATA 2.
Installed it? Good, let's move on.
Now do a system update; click that little switch icon in the top right hand corner and you'll get a menu. Launch Update Manager and install everything it finds.
Now that your Ubuntu is up to speed you need to download and install some more stuff. Launch the terminal (Ctrl + Alt + T).
Copy the below code and paste it (right-click and paste, Ctrl + V doesn't work) in the terminal, hit enter.
Code:
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev libxml2-utils
If 'lib32ncurses5-dev' fails, delete it from the list, install everything else.
Now you need to add the following repos, again copy/paste each line into the terminal, hit enter. Repeat for each line of the code below.
Code:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse"
Code:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse"
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
Code:
sudo apt-get update
Now you are going to install Synaptic.
Code:
sudo apt-get install synaptic
Done? Good.
Click the 'Dash Home' button (top left hand corner of your desktop), find and launch Synaptic Package Manager. Search for 'Sun Java6 JDK' and install it will all the dependencies except sun-java6-demo and sun-java6-doc.
Now go to http://developer.android.com/sdk/index.html and download the linux version of the Android SDK. It provides the API libraries and developer tools necessary to build. When your download is done, open it with Archive Manager, extract it somewhere, and move the extracted folder to your Home folder. Rename it to 'SDK' for simplicity.
Now you need to download and install Android SDK Platform Tools. Use file manager to navigate to your SDK sub-folder Tools. Find 'android' and double-click to run it. You'll be asked what you want to download. Choose the 'Platform Tools' and the Android 4.1.2 SDK Level 16 and the Android 4.2 SDK level 17 Dev tools and hit install. Let it download; it might take some time, depending on your download speed.
Now the time is ripe for you to setup your Android repos. Copy/paste the following commands into the terminal, hit enter after each one.
Code:
mkdir -p ~/bin
Code:
mkdir -p ~/android/system
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
Code:
chmod a+x ~/bin/repo
Code:
export PATH=~/bin:$PATH
You have to reboot after this for changes to take effect. Once back at your desktop, relaunch the terminal and copy/paste the following commands (with Enter).
Code:
cd ~/android/system
Code:
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
Code:
repo sync
Basically, what you're doing here is downloading the CM repo to your machine. This will take quite some time, so go grab a cup of coffee and watch some telly.
After the sync has gone through with no problems (knock on wood), you need to create a local manifest to pull TeamHacksung’s fork for N7000.
Launch File Manager, navigate to /android/system and click Ctrl + H for your hidden folders and files to appear. Enter the /.repo folder, right-click and choose 'Create New Document'. Name the empty document 'local_manifest.xml'. Open the document and paste the below code into it. Save and exit Gedit.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="teamhacksung/buildscripts" path="buildscripts" remote="github" revision="jellybean">
<copyfile dest="build.sh" src="build.sh" />
</project>
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="jellybean" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="jellybean" />
<project name="CyanogenMod/android_device_samsung_n7000" path="device/samsung/n7000" remote="github" revision="jellybean" />
<project name="CyanogenMod/android_device_samsung_galaxys2-common" path="device/samsung/galaxys2-common" remote="github" revision="jellybean" />
<project name="CyanogenMod/android_kernel_samsung_smdk4210" path="kernel/samsung/smdk4210" remote="github" revision="jellybean" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="jellybean" />
</manifest>
Click to expand...
Click to collapse
Now another repo sync needs to be done to pull in the changes in the local manifest. This sync will be considerably shorter than the first one.
Launch the terminal and copy/paste
Code:
repo sync
Everything went well? Fine, it's time for you to start your first build. It will also take some time; it lasts about 80-90 minutes on my Intel i3-3220 CPU @ 3.30GHz × 4 with SATA 2 drives.
Take a stiff drink, say a brief prayer, and enter the following commands into the terminal.
Code:
cd ~/android/system
Code:
./build.sh n7000
If all goes well (no errors), once it is done you will have a flashable CM10 zip in /android/system/out/target/product/n7000 folder.
Not so hard, and it's great fun.
I'd like to say a great big THANK YOU to utacka and anti for helping me navigate the murky waters of my first compile.
Alternative way to install Java:
$ sudo apt-get install openjdk-6-jdk
$ apt-get update
Interesting... Thank you
del
Brief & clear. Barmen to this, and don't forget to change a local manifest soon for a new device:angel:
ahalford said:
Brief & clear. Barmen to this, and don't forget to change a local manifest soon for a new device:angel:
Click to expand...
Click to collapse
When/if I get it, I promise to do it.
Don't talk C# to me, there is no "if", there is only "When"
Do not lead me into this temptation!
Thank you very much chas! :good:
trahzebuck said:
Do not lead me into this temptation!
Thank you very much chas! :good:
Click to expand...
Click to collapse
Try it, it's a piece of cake, especially for an old Linux dog like you.
chasmodo said:
When/if I get it, I promise to do it.
Click to expand...
Click to collapse
I'll do my best to get it.
And thanks for the tutorial.
Thank you so much for this!
Can you teach us to cherry pick codes from aokp and cm10 repos?
e. g. I love cm10, but prefer the switchboard style toggles, or any random code, how can I incoporate it into my own KANG from source
Sent from my GT-N7000 using Tapatalk 2
baz77 said:
Thank you so much for this!
Can you teach us to cherry pick codes from aokp and cm10 repos?
Click to expand...
Click to collapse
I'll let you know as soon as I do it myself, I promise.
Please delete
Size of Swap Partition
I think your Swap Partition is too big - wasting space of your harddisk.
I normally (when having RAM from 2-4 GB) choose the same (or double) space on a harddisk.
See the Ubuntu Documentation "SwapFaq" for detailed explanations.
Anyway: thanks for this documentation - I will try it later today.
Thanks for this tutorial ! So clear and works exactly as expected !!
Problem with arch/arm/mach-exynos/exynos4-smc.o
Hello,
I am building cm10.1 for GT-N7000 on Mac 10.7.5. I extracted the kernel for the device from CyanogenMod/android_kernel_samsung_smdk4210.
When I trying to build, it gives me the following error:
CC arch/arm/mm/proc-syms.o
CC arch/arm/mach-exynos/exynos4-smc.o
/var/folders/tn/g4qp8wtn4qx7q8kwmm72ksjc0000gp/T//ccgA75qU.s: Assembler messages:
/var/folders/tn/g4qp8wtn4qx7q8kwmm72ksjc0000gp/T//ccgA75qU.s:32: Error: selected processor does not support ARM mode `smc 0'
/var/folders/tn/g4qp8wtn4qx7q8kwmm72ksjc0000gp/T//ccgA75qU.s:74: Error: selected processor does not support ARM mode `smc 0'
make[3]: *** [arch/arm/mach-exynos/exynos4-smc.o] Error 1
make[2]: *** [arch/arm/mach-exynos] Error 2
I compared the file arch/arm/mach-exynos/exynos4-smc.o in the repository,its same. What modifications do I need to do in exynos4-smc.o?
At some places when i searched it said the prob is with path of toolchain. But I think the problem is with that particular file which doesnot support ARM mode.
Kindly help me solving this error.
First off, this is a tutorial on compiling CM10, not CM10.1.
Second off, there's no need to extract anything when compiling for n7000. Go here, follow the instructions to the letter and all will be well.
chasmodo said:
First off, this is a tutorial on compiling CM10, not CM10.1.
Second off, there's no need to extract anything when compiling for n7000. Go here, follow the instructions to the letter and all will be well.
Click to expand...
Click to collapse
Actually I may have used a wrong word "extract'. Actually I followed the steps for 10.1 and used the local_manifest.xml from the thread you mentioned. Still I encounter the same error. Even I tried to run breakfast n7000 , I encountered the same error and I think its because of that particular file but not sure. The terminal output is :
CC arch/arm/mach-exynos/dma.o
CC arch/arm/mach-exynos/irq-eint.o
CC arch/arm/mach-exynos/ppmu.o
CC arch/arm/mach-exynos/exynos4-smc.o ( Error with only this one).
/var/folders/tn/g4qp8wtn4qx7q8kwmm72ksjc0000gp/T//ccq6LJqf.s: Assembler messages:
/var/folders/tn/g4qp8wtn4qx7q8kwmm72ksjc0000gp/T//ccq6LJqf.s:32: Error: selected processor does not support ARM mode `smc 0'
/var/folders/tn/g4qp8wtn4qx7q8kwmm72ksjc0000gp/T//ccq6LJqf.s:74: Error: selected processor does not support ARM mode `smc 0'
make[3]: *** [arch/arm/mach-exynos/exynos4-smc.o] Error 1
Kindly help me solve this error.

[HOWTO] Build CM10.1 for N7000, Nexus 4 and 7, Note II and Note II LTE

First of all, why would you want to do it when there are Nightlies to be dowloaded and flashed?
Let me quote Rec Dev fattire here:
fattire said:
Off the top of my head...
You never, ever have to wait for a nightly
You can add or remove as-yet uncommitted features with ease.
You learn how Android works under the hood
You learn how to use Linux
You'll learn how to use git
You may, even accidentally, pick up a little C, Java, C++, and learn about the build system.
You can personalize Android-- make your own tweaks, modules, graphics, add or remove projects etc. In other words, you have control over every aspect of your device's functionality. Your build is custom to you.
You can audit the code for potential security issues such as back doors or trojans (as opposed to just trusting a random person who posts a build). Since CM10 source is open, you can examine every commit, and there are many eyes looking at the code. (does not apply to proprietary blobs, but these are pulled from your device, so you have and are using them already)
You can contribute features/fixes back upstream
You can start ports to other as-yet-unsupported devices (start by copying folders from similar devices to devices/manufacturer/model)
You come to really understand that Android phones and tablets are full-fledged general-purpose computers just like laptops and desktops.
AAAAND....you get huge bragging rights
The extent to which you delve into the above is entirely up to you. The walkthrough is just an introduction to that world. Some people will build once and never do it again... but others will start to tinker and make changes to their own build and want to share them with others, and soon some will start making contributions back to official CM10 upstream... or port to new devices... and by fixing bugs and all this... everyone benefits.
Plus...
It's fun.
Click to expand...
Click to collapse
Hardware Requirements
You'll need a computer configuration that is not too shabby to pull this off; also you'll need a decent Interweb connection to download all that is needed.
Here are some hardware examples:
Utacka
Ahalford
Anti
Me
In other words, you need to have a box capable of doing some crunching. The better the PC, the faster the compile and vice-versa.
As for the Internet connection, you have to pull about 13 Gb of tiny files in the first CM10.1 sync, and additional 2-3 Gbs in your second sync.
Trying to do it on a 512Kb/s connection is an exercise in futility.
Setting up the Build Environment
First things first: you need to download and install 64-bit version of Ubuntu 12.04. A 32-bit one won't cut it.
Installed it? Good, let's move on.
Now do a system update; click that little switch icon in the top right hand corner and you'll get a menu. Launch Update Manager and install everything it finds.
Now that your Ubuntu is up to speed you need to download and install some more stuff. Launch the terminal (Ctrl + Alt + T).
Copy the below code and paste it (right-click and paste or Shift + Insert, Ctrl + V doesn't work) in the terminal, hit enter.
Code:
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev libxml2-utils
If 'lib32ncurses5-dev' fails, delete it from the list, install everything else.
Now you need to add the following repos, again copy/paste each line into the terminal, hit enter. Repeat for each line of the code below.
Code:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse"
Code:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse"
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
Code:
sudo apt-get update
Now you are going to install Synaptic.
Code:
sudo apt-get install synaptic
Done? Good.
Click the 'Dash Home' button (top left hand corner of your desktop), find and launch Synaptic Package Manager. Search for 'Sun Java6 JDK' and install it will all the dependencies except sun-java6-demo and sun-java6-doc.
Now go to http://developer.android.com/sdk/index.html and download the linux version of the Android SDK. It provides the API libraries and developer tools necessary to build. When your download is done, open it with Archive Manager, extract it somewhere, and move the extracted folder to your Home folder. Rename it to 'SDK' for simplicity.
Now you need to download and install Android SDK Platform Tools. Use file manager to navigate to your SDK sub-folder Tools. Find 'android' and double-click to run it. You'll be asked what you want to download. Choose the 'Platform Tools' and the Android 4.1.2 SDK Level 16 and the Android 4.2 SDK level 17 Dev tools and hit install. Let it download; it might take some time, depending on your download speed.
Now the time is ripe for you to setup your Android repos. Copy/paste the following commands into the terminal, hit enter after each one.
Code:
mkdir -p ~/bin
Code:
mkdir -p ~/cm10.1
Code:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
Code:
chmod a+x ~/bin/repo
Code:
export PATH=~/bin:$PATH
You have to reboot after this for changes to take effect.
Initial Repo, local_manifest
Once reboobed, open the terminal once again and do this:
Code:
cd cm10.1
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync
Your initial sync will take some time. After it is is done, go to your cm10.1/.repo folder (/.repo is hidden, so press Ctrl + H in your file manager for it to show up). Create a
subfolder called local_manifests in /.repo. Then create a blank document called roomservice.xml in /.repo/local_manifests. Copypasta™ the below code into roomservice.xml,
save it, close the document.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_n7000" path="device/samsung/n7000" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_galaxys2-common" path="device/samsung/galaxys2-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_kernel_samsung_smdk4210" path="kernel/samsung/smdk4210" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-10.1" />
</manifest>
Click to expand...
Click to collapse
NOTE: All in the above posts needs to be done only once, prior to compiling your first build.
For all your subsequent builds you'll have to do just the steps listed in the next posts.
Start the Build
It's time for you to do another repo sync to pull Samsung device-specific stuff.
Code:
repo sync
This sync is going to be considerably shorter than the first one. After it is done, it's time for you to start the build.
Code:
~/cm10.1/vendor/cm/get-prebuilts
. build/envsetup.sh
export USE_CCACHE=1
prebuilts/misc/linux-x86/ccache/ccache -M 50G
brunch n7000
If everything goes right, you should see this at the end of the compile:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Your cm10.1 rom zip will be in cm10.1/out/target/product/n7000 folder.
This is how it looks when the build gets going:
Subsequent Builds
You'll want to do another build tomorrow once your first one has gone through fine.
There are two ways you can go about it.
#1: do a
Code:
cd cm10.1
repo sync
export USE_CCACHE=1
~/cm10.1/vendor/cm/get-prebuilts
. build/envsetup.sh
brunch n7000
The build system should notice which source files have changed and need rebuilding, and should only build the new stuff. This is what you might want to do when there were no major changes in the merged commits here: http://review.cyanogenmod.org/#/q/status:merged,n,z
However, what I always do and would always recommend
#2:
Code:
cd cm10.1
make clean
repo sync
~/cm10.1/vendor/cm/get-prebuilts
. build/envsetup.sh
brunch n7000
'make clean' command will delete your whole /out folder, and your new build will start from scratch. Instead of 'make clean' you can also use 'make clobber'; the difference between the commands is explained here.
There is a way to completely automate your compiling process à la CyanogenMod's Jenkins. You can learn how from AndroidSlave here: http://forum.xda-developers.com/showthread.php?p=46110939
Cherry Picking
***Cherry picking from CM Gerrit***
This is one of the perks of compiling CM10.1 yourself. Official nightlies have a lot of features, but there's also a lot of stuff waiting for a review on Gerrit.
You can follow the commits waiting to be reviewed and merged into the main repo here: http://review.cyanogenmod.org/#/q/status:reviewed,n,z
You can cherry-pick anything from the upcoming features and incorporate it into your Rom before the official CM10.1 does the same.
Let's say that you want to have this commit before it becomes merged: http://review.cyanogenmod.org/30878
The commit says:
Code:
Project CyanogenMod/android_packages_apps_LockClock
It's quite simple to do that. Fire up the Terminal (Ctrl + Alt + T) and navigate to your LockClock folder.
Code:
cd cm10.1/packages/apps/LockClock
In other words you must be in the same folder as stated in 'Project' for cherry-picking to work.
Now minimize the terminal (don't close it) and switch to the Gerrit page in your browser.
http://review.cyanogenmod.org/#/c/30878/
Click on cherry-pick button here.
Then click several times on the little clipboard icon at the end of the cherry-pick URL.
This automagically copies the cherry-pick URL into your clipboard. Now, go back to your terminal, paste the cherry-pick URL in it and hit enter.
That is all: the commit will get pulled and incorporated into your local repo. You are ready to compile a build which will contain the feature you have just cherry-picked.
***Cherry-picking from Github***
http://forum.xda-developers.com/showpost.php?p=42486858&postcount=449
How to compile CM10.1 for Nexus 4
If you have never built CM10.1 then you need to do everything from post #3 here, and this part
Code:
cd cm10.1
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync
from post #4.
After the initial repo sync is done, now comes the Nexus 4 specific bit. As stated before, go to your cm10.1/.repo folder and create a blank document called local_manifest.xml. Paste the below code into local_manifest.xml, save it, close the document.
If you already have local_manifest.xml with n7000 stuff in it, then just add all the lines beginning with <project name= from below to it, save and exit Gedit.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_lge.git" path="vendor/lge" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_lge_mako" path="device/lge/mako" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/lge-kernel-mako" path="kernel/lge/mako" remote="github" revision="jellybean" />
</manifest>
Click to expand...
Click to collapse
Now do the second repo sync to pull Nexus 4 specific stuff.
Code:
repo sync
Do the following after the second sync has gone through.
Code:
~/cm10.1/vendor/cm/get-prebuilts
Now it's time to start the build.
Code:
. build/envsetup.sh
export USE_CCACHE=1
brunch mako
That's it. Wait for the build to get compiled and flash your CM10.1_UNOFFICIAL_mako.zip from cm10.1/out/target/product/mako folder.
How to compile CM10.1 for Note II LTE (t0lte)
If you have never built CM10.1 then you need to do everything from post #3 here, and this part
Code:
cd cm10.1
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync
from post #4.
After the initial repo sync is done, now comes the Note II LTE specific bit. As stated before, go to your cm10.1/.repo folder and create a blank document called local_manifest.xml. Paste the below code into local_manifest.xml, save it, close the document.
If you already have local_manifest.xml with n7000 stuff in it, then just add all the lines beginning with <project name= from below to it, save and exit Gedit.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_smdk4412-common" path="device/samsung/smdk4412-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_kernel_samsung_smdk4412" path="kernel/samsung/smdk4412" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_galaxys2-common" path="device/samsung/galaxys2-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_t0lte" path="device/samsung/t0lte" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-10.1" />
</manifest>
Click to expand...
Click to collapse
Note: you might already have some of the lines in your local_manifest.xml if you have compiled a build for n7000. If that's the case, skip adding the lines you already have.
Now do the second repo sync to pull Note II specific stuff.
Code:
repo sync
Do the following after the second sync has gone through.
Code:
~/cm10.1/vendor/cm/get-prebuilts
Now it's time to start the build.
Code:
. build/envsetup.sh
export USE_CCACHE=1
brunch t0lte
That's it. Wait for the build to get compiled and flash your CM10.1_UNOFFICIAL_mako.zip from cm10.1/out/target/product/t0lte folder.
Reserved
How to set up a build environment in Ubuntu 13.04:
http://forum.xda-developers.com/showthread.php?t=2224142
Discarding Failed or Unwanted Cherry Picks
If you want to get rid of something you have cherry-picked this is what needs to be done.
We'll stick to the cherry-picking example described in the previous post.
Start the Terminal and navigate to the folder containing your unwanted cherry-pick, in this case LockClock.
Code:
cd cm10.1/packages/apps/LockClock
From here you need to persuade Git to discard the cherry-picked thing. Do this:
Code:
git reset --hard
And that is that.
However, sometimes git has its quirks and doesn't want to do what it's been told. If that is the case, you'll get warnings when doing your next repo sync.
If that happens, repeat the two steps from above and delete the top folder where your cherry-pick was located. In this case, it is /packages.
Do the repo sync again and the folder will be redownloaded and stored on your machine in pristine state.
How to compile CM10.1 for Nexus 7
If you have never built CM10.1 then you need to do everything from post #3 here, and this part
Code:
cd cm10.1
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync
from post #4.
After the initial repo sync is done, now comes the Nexus 7 specific bit. Do this:
Code:
~/cm10.1/vendor/cm/get-prebuilts
. build/envsetup.sh
breakfast grouper
This will download the device specific configuration and kernel source for your device.
Now it's time to extract proprietary blobs from your tablet.
Go to your grouper CM10.1 folder.
Code:
cd cm10.1/device/asus/grouper
Connect your Nexus 7 to the computer using USB cable. Make sure that adb debugging is on in Developer's Options. Now paste this into the terminal:
Code:
./extract-files.sh
If you get adb errors, that means that adb is not in the path of execution. Close the terminal, start your file manager and when in your /home folder press Ctrl + H for hidden stuff to appear. Open .bashrc file with Gedit and add the following line at the end of the code:
Code:
export PATH=${PATH}:/<your path to sdk>/platform-tools
(My <path to sdk> looks like this: export PATH=${PATH}:/home/chasmodo/android-sdk/sdk/platform-tools)
Save the file, open a new terminal window, go to cd cm10.1/device/asus/grouper and repeat
Code:
./extract-files.sh
The adb command should now be available and your blobs pulled. After this has been done go back to cm10.1 folder and start the build.
Code:
cd ~/cm10.1 (or croot, same thing)
export USE_CCACHE=1
brunch grouper
After the compile goes through, your CM10.1_UNOFFICIAL_grouper.zip will be waiting for you in cm10.1/out/target/product/grouper folder.
How to compile CM10.1 for Note II (n7100)
If you have never built CM10.1 then you need to do everything from post #3 here, and this part
Code:
cd cm10.1
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync
from post #4.
After the initial repo sync is done, now comes the Note II specific bit. As stated before, go to your cm10.1/.repo folder and create a blank document called local_manifest.xml. Paste the below code into local_manifest.xml, save it, close the document.
If you already have local_manifest.xml with n7000 stuff in it, then just add all the lines beginning with <project name= from below to it, save and exit Gedit.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_smdk4412-common" path="device/samsung/smdk4412-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_kernel_samsung_smdk4412" path="kernel/samsung/smdk4412" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_galaxys2-common" path="device/samsung/galaxys2-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_samsung_n7100" path="device/samsung/n7100" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-10.1" />
</manifest>
Click to expand...
Click to collapse
Note: you might already have some of the lines in your local_manifest.xml if you have compiled a build for n7000. If that's the case, skip adding the lines you already have.
Now do the second repo sync to pull Note II specific stuff.
Code:
repo sync
Do the following after the second sync has gone through.
Code:
~/cm10.1/vendor/cm/get-prebuilts
Now it's time to start the build.
Code:
. build/envsetup.sh
export USE_CCACHE=1
brunch n7100
That's it. Wait for the build to get compiled and flash your CM10.1_UNOFFICIAL_mako.zip from cm10.1/out/target/product/n7100 folder.
thumbs up, really appreciate sharing your knowledge :good:
Re: [HOWTO] Build CM10.1 for N7000
I build on the first gen i7 @ 2.0ghz, 8gigs of ram, 120gig SSD, clean compile is about 30-35 min.
My next machine will be a i7 @ 3.4, 16gigs of ram and 250gig SSD
I suggest a minimum of an i3 with 8gigs of ram, otherwise you'll be compiling for hours.
Then reason I suggest that as a minimum is because if for instance you cherry pick something, that breaks the build, you'll need to revert that pick and re build. It could be a very time consuming process.
This is great~!
i'm going to have to try this out haha... ubuntu in a VM environment on an i7 + 256gb ssd
hope you're up for questions guys haha :silly:
happiboi said:
This is great~!
i'm going to have to try this out haha... ubuntu in a VM environment on an i7 + 256gb ssd
hope you're up for questions guys haha :silly:
Click to expand...
Click to collapse
Of course we are up for questions, that's why this thread is here.
chasmodo said:
Of course we are up for questions, that's why this thread is here.
Click to expand...
Click to collapse
Excellent Article.
Hmmmm now where did i keep my Computer
Odp: [HOWTO] Build CM10.1 for N7000
Thanks for tutorial Chas
Wysłane z mojego GT-N7000 za pomocą Tapatalk 2
great thing ... short, precise .... Keep it up Chas

[Q] Problems while building cm10 mint for Xperia T

Hello,
I'm trying to build cm10 branch mint for my Xperia T on my own using the build howTo in CM wiki:
Code:
wiki.cyanogenmod.org/index.php?title=Build_for_mint
I have setup a current version of Ubuntu as suggested:
Code:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.10
Release: 12.10
Codename: quantal
I downloaded the source and now get stuck at the following command:
Code:
$ breakfast mint
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/mint/cm.mk]]: "device/*/mint/cm.mk" does not exist. Stop.
Device mint not found. Attempting to retrieve device repository from CyanogenMod Github (****).
Found repository: android_device_sony_mint
Adding dependency: CyanogenMod/android_device_sony_mint -> device/sony/mint
Syncing repository to retrieve project.
error: project device/sony/mint not found
Repository synced!
Looking for dependencies
Dependencies file not found, bailing out.
Done
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/mint/cm.mk]]: "device/*/mint/cm.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_mint'
** Do you have the right repo manifest?
What's wrong with the cm repository that there is no mint device?
Thank you.
Hi,
tried again, now ´breakfast mint´ gives an other error message. I'm still unable to build android.
Code:
$ breakfast mint
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/mint/cm.mk]]: "de vice/*/mint/cm.mk" does not exist. Stop.
Device mint not found. Attempting to retrieve device repository from CyanogenMod Github (github.com/CyanogenMod).
Found repository: android_device_sony_mint
Adding dependency: CyanogenMod/android_device_sony_mint -> device/sony/mint
Syncing repository to retrieve project.
remote: Counting objects: 305, done.
remote: Compressing objects: 100% (125/125), done.
remote: Total 305 (delta 163), reused 288 (delta 156)
Receiving objects: 100% (305/305), 48.99 KiB, done.
Resolving deltas: 100% (163/163), done.
From github.com/CyanogenMod/android_device_sony_mint
* [new branch] jellybean -> github/jellybean
Fetching projects: 100% (1/1), done.
Repository synced!
Looking for dependencies
Adding dependencies to manifest
Adding dependency: CyanogenMod/android_device_sony_blue-common -> device/sony/bl ue-common
Adding dependency: CyanogenMod/android_kernel_sony_msm8x60 -> kernel/sony/msm8x6 0
Adding dependency: CyanogenMod/android_packages_apps_FMRadio -> packages/apps/Fm Radio
Adding dependency: CyanogenMod/android_hardware_sony_DASH -> hardware/sony/DASH
Syncing dependencies
remote: Counting objects: 235, done.
remote: Compressing objects: 100% (127/127), done.
remote: Counting objects: 424, done.
remote: Compressing objects: 100% (157/157), done.
remote: Counting objects: 944, done.
remote: Compressing objects: 100% (395/395), done.
remote: Total 424 (delta 268), reused 386 (delta 259)
Receiving objects: 100% (424/424), 154.75 KiB | 187 KiB/s, done.
Resolving deltas: 100% (268/268), done.0 KiB | 182 KiB/s
remote: Total 235 (delta 59), reused 229 (delta 53)
Receiving objects: 100% (235/235), 206.98 KiB | 182 KiB/s, done.
Resolving deltas: 100% (59/59), done.
From github.com/CyanogenMod/android_hardware_sony_DASH
* [new branch] jellybean -> github/jellybean
From github.com/CyanogenMod/android_packages_apps_FMRadio
* [new branch] jellybean -> github/jellybean
remote: Total 944 (delta 480), reused 882 (delta 450)
Receiving objects: 100% (944/944), 2.79 MiB | 387 KiB/s, done.
Resolving deltas: 100% (480/480), done.
From github.com/CyanogenMod/android_device_sony_blue-common
* [new branch] jellybean -> github/jellybean
remote: Counting objects: 62614, done.
remote: Compressing objects: 100% (41096/41096), done.
remote: Total 62614 (delta 22033), reused 44532 (delta 20884)
Receiving objects: 100% (62614/62614), 124.52 MiB | 803 KiB/s, done.
Resolving deltas: 100% (22033/22033), done.
From github.com/CyanogenMod/android_kernel_sony_msm8x60
* [new branch] jellybean -> github/jellybean
Fetching projects: 100% (4/4), done.
Checking out files: 100% (39583/39583), done.
Syncing work tree: 100% (4/4), done.
Done
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/mint/cm.mk]]: "vendor/sony/blue-common/common-vendor.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_mint'
** Do you have the right repo manifest?
I finally managed to build a cm...UNOFICIAL-mint.zip (after removing broken RAM modules and increasing amount of RAM).
This custom ROM does not boot: The screen remains black after FreeXperia logo was shown.
I Comared my rome to a nightly one, there are some files missing in mine:
updater WCNSS_cfg.dat WCNSS_qcom_cfg.ini WCNSS_qcom_wlan_nv.bin a225_pfp.fw a225_pm4.fw a225p5_pm4.fw a300_pfp.fw a300_pm4.fw leia_pfp_470.fw leia_pm4_470.fw build-manifest.xml CHANGES.txt eglsubAndroid.so libEGL_adreno200.so libGLESv1_CM_adreno200.so libGLESv2_adreno200.so libGLESv2S3D_adreno200.so libplayback_adreno200.so libq3dtools_adreno200.so libC2D2.so libc2d2_a3xx.so libc2d2_z180.so libgsl.so libllvm-a3xx.so libllvm-arm.so libOpenCL.so libOpenVG.so libsc-a2xx.so libsc-a3xx.so
Don't know whether they should have been build or downloaded somewhere.
Selaron said:
I finally managed to build a cm...UNOFICIAL-mint.zip (after removing broken RAM modules and increasing amount of RAM).
This custom ROM does not boot: The screen remains black after FreeXperia logo was shown.
I Comared my rome to a nightly one, there are some files missing in mine:
updater WCNSS_cfg.dat WCNSS_qcom_cfg.ini WCNSS_qcom_wlan_nv.bin a225_pfp.fw a225_pm4.fw a225p5_pm4.fw a300_pfp.fw a300_pm4.fw leia_pfp_470.fw leia_pm4_470.fw build-manifest.xml CHANGES.txt eglsubAndroid.so libEGL_adreno200.so libGLESv1_CM_adreno200.so libGLESv2_adreno200.so libGLESv2S3D_adreno200.so libplayback_adreno200.so libq3dtools_adreno200.so libC2D2.so libc2d2_a3xx.so libc2d2_z180.so libgsl.so libllvm-a3xx.so libllvm-arm.so libOpenCL.so libOpenVG.so libsc-a2xx.so libsc-a3xx.so
Don't know whether they should have been build or downloaded somewhere.
Click to expand...
Click to collapse
You might've forgotten proprietaries? https://github.com/CustoNexus/vendor_sony
make sure the contents of this repo (at least blue, mint and qcom) are in ~/vendor/sony/
Cheers
Hi djpbx,
thanks for response.
Shouldn't "breakfast mint" do this?
I extracted the proprietaries named in "proprietaryfiles.txt" from nighly build zips.
Selaron said:
Hi djpbx,
thanks for response.
Shouldn't "breakfast mint" do this?
I extracted the proprietaries named in "proprietaryfiles.txt" from nighly build zips.
Click to expand...
Click to collapse
Usually i add device tree and vendor files manually, let roomservice get dependencies when brunching.
Breakfast does not fetch proprietaries
Sent from my LT30p using xda app-developers app
I finally succeeded in building a usable ROM with OpenPdroid patches cleanly applied, thanks to you
Selaron said:
I finally succeeded in building a usable ROM with OpenPdroid patches cleanly applied, thanks to you
Click to expand...
Click to collapse
No problems. I like to help people. Hope you have fun compiling
Sent from my LT30p using xda app-developers app
I now encountered a problem running
breakfast mint
It was missing the file vendor/sony/blue-common/blue-common-vendor.mk:
Code:
$ breakfast mint
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/sony/mint/cm.mk]]: "vendor/sony/blue-common/blue-common-vendor.mk" does not exist. Stop.
Device mint not found. Attempting to retrieve device repository from CyanogenMod Github (...github.com/CyanogenMod).
Found repository: android_device_sony_mint
Default revision: cm-10.1
Checking branch info
CyanogenMod/android_device_sony_mint already exists
Syncing repository to retrieve project.
Fetching projects: 100% (1/1), done.
Repository synced!
Looking for dependencies
Done
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/sony/mint/cm.mk]]: "vendor/sony/blue-common/blue-common-vendor.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_mint'
** Do you have the right repo manifest?
I gave it to him by
cd vendor/sony/blue-common/
mv common-vendor.mk blue-common-vendor.mk
Now "breakfast mint" succeeds without error, let's see whether it compiles ...

[Q] help me build cm-12.1 hammerheadcaf

I want to build 12.1 CAF
this way is right?
Code:
Checking out files: 100% (13/13), done.king out files: 30% (4/13)
Checking out files: 100% (168/168), done.
Syncing work tree: 100% (556/556), done.
[email protected] ~/cm12.1 $ . build/envsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-mips/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
including vendor/cm/bash_completion/git.bash
including vendor/cm/bash_completion/repo.bash
[email protected] ~/cm12.1 $ lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng 54. cm_kltechnduo-userdebug
2. aosp_arm64-eng 55. cm_kltespr-userdebug
3. aosp_mips-eng 56. cm_l900-userdebug
4. aosp_mips64-eng 57. cm_m7-userdebug
5. aosp_x86-eng 58. cm_m7vzw-userdebug
6. aosp_x86_64-eng 59. cm_m8-userdebug
7. m_e_arm-userdebug 60. cm_mako-userdebug
8. mini_emulator_mips-userdebug 61. cm_manta-userdebug
9. mini_emulator_x86_64-userdebug 62. cm_maserati-userdebug
10. mini_emulator_arm64-userdebug 63. cm_mb886-userdebug
11. mini_emulator_x86-userdebug 64. cm_mondrianwifi-userdebug
12. cm_acclaim-userdebug 65. cm_n3-userdebug
13. cm_amami-userdebug 66. cm_n5100-userdebug
14. cm_bacon-userdebug 67. cm_n5110-userdebug
15. cm_castor-userdebug 68. cm_nicki-userdebug
16. cm_castor_windy-userdebug 69. cm_obake-userdebug
17. cm_condor-userdebug 70. cm_peregrine-userdebug
18. cm_d2att-userdebug 71. cm_picassowifi-userdebug
19. cm_d2spr-userdebug 72. cm_quark-userdebug
20. cm_d2tmo-userdebug 73. cm_scorpion-userdebug
21. cm_d2vzw-userdebug 74. cm_scorpion_windy-userdebug
22. cm_d850-userdebug 75. cm_serrano3gxx-userdebug
23. cm_d851-userdebug 76. cm_serranoltexx-userdebug
24. cm_d852-userdebug 77. cm_shamu-userdebug
25. cm_d855-userdebug 78. cm_sirius-userdebug
26. cm_deb-userdebug 79. cm_spyder-userdebug
27. cm_dlx-userdebug 80. cm_superior-userdebug
28. cm_e975-userdebug 81. cm_t0lte-userdebug
29. cm_e980-userdebug 82. cm_t6-userdebug
30. cm_evita-userdebug 83. cm_t6spr-userdebug
31. cm_falcon-userdebug 84. cm_t6vzw-userdebug
32. cm_find7-userdebug 85. cm_targa-userdebug
33. cm_find7s-userdebug 86. cm_tf300t-userdebug
34. cm_flo-userdebug 87. cm_thea-userdebug
35. cm_fugu-userdebug 88. cm_tilapia-userdebug
36. cm_ghost-userdebug 89. cm_titan-userdebug
37. cm_grouper-userdebug 90. cm_togari-userdebug
38. cm_hammerhead-userdebug 91. cm_togari_gpe-userdebug
39. cm_hammerheadcaf-userdebug 92. cm_trltetmo-userdebug
40. cm_hlte-userdebug 93. cm_trltexx-userdebug
41. cm_hltespr-userdebug 94. cm_umts_spyder-userdebug
42. cm_hltetmo-userdebug 95. cm_v410-userdebug
43. cm_i605-userdebug 96. cm_v500-userdebug
44. cm_i925-userdebug 97. cm_victara-userdebug
45. cm_honami-userdebug 98. cm_ville-userdebug
46. cm_jflteatt-userdebug 99. cm_vs985-userdebug
47. cm_jfltespr-userdebug 100. cm_xt897-userdebug
48. cm_jfltetmo-userdebug 101. cm_xt907-userdebug
49. cm_jfltevzw-userdebug 102. cm_xt925-userdebug
50. cm_jfltexx-userdebug 103. cm_xt926-userdebug
51. cm_klimtwifi-userdebug 104. cm_z3-userdebug
52. cm_klte-userdebug 105. cm_z3c-userdebug
53. cm_kltechn-userdebug
Which would you like? [aosp_arm-eng] 39
ls: невозможно получить доступ к device/*/hammerheadcaf/cm.mk: Нет такого файла или каталога
build/core/product_config.mk:234: *** Can not locate config makefile for product "cm_hammerheadcaf". Останов.
Device hammerheadcaf not found. Attempting to retrieve device repository from CyanogenMod Github ([url]http://github.com/CyanogenMod[/url]).
Found repository: android_device_lge_hammerheadcaf
Default revision: cm-12.1
Checking branch info
Adding dependency: CyanogenMod/android_device_lge_hammerheadcaf -> device/lge/hammerheadcaf
Using default branch for android_device_lge_hammerheadcaf
Syncing repository to retrieve project.
Fetching project CyanogenMod/android_device_lge_hammerheadcaf
Fetching projects: 100% (1/1), done.
Repository synced!
Looking for dependencies
Adding dependencies to manifest
Adding dependency: CyanogenMod/android_kernel_lge_hammerhead -> kernel/lge/hammerhead
Adding dependency: CyanogenMod/android_device_qcom_common -> device/qcom/common
Using default branch for android_device_qcom_common
Syncing dependencies
Fetching project CyanogenMod/android_device_qcom_common
Fetching project CyanogenMod/android_kernel_lge_hammerhead
Fetching projects: 100% (2/2), done.
Checking out files: 100% (41719/41719), done.
Looking for dependencies
Dependencies file not found, bailing out.
Looking for dependencies
Dependencies file not found, bailing out.
Done
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/lge/hammerheadcaf/cm.mk]]: "vendor/lge/hammerheadcaf/hammerheadcaf-vendor.mk" does not exist. Останов.
** Don't have a product spec for: 'cm_hammerheadcaf'
** Do you have the right repo manifest?
then open
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_lge_hammerheadcaf" path="device/lge/hammerheadcaf" remote="github" />
<project name="CyanogenMod/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" revision="cm-12.1-caf" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
</manifest>
and add this
https://github.com/TheMuppets/proprietary_vendor_lge/tree/cm-12.1
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_lge_hammerheadcaf" path="device/lge/hammerheadcaf" remote="github" />
<project name="TheMuppets/proprietary_vendor_lge" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" revision="cm-12.1-caf" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
</manifest>
and again repo sync -j5
right ? or need something else to fix for a good build? if need,please show me example ...
thx.
I think so right
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_lge_hammerheadcaf" path="device/lge/hammerheadcaf" remote="github" />
<project name="CyanogenMod/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" revision="cm-12.1-caf" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="myfluxi/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1" />
</manifest>
not build
Code:
target SharedLib: libRSDriver (/home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/LINKED/libRSDriver.so)
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdAllocation.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdBcc.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdCore.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdElement.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdFrameBuffer.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdFrameBufferObj.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdGL.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdMesh.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdMeshObj.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdPath.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdProgram.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdProgramRaster.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdProgramStore.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdRuntimeStubs.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdSampler.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdScriptGroup.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdShader.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdShaderCache.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdType.o: file is empty
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/arm-linux-androideabi/bin/ld: error: /home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/driver/rsdVertexArray.o: file is empty
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/home/garynych/cm12.1/out/target/product/hammerheadcaf/obj/SHARED_LIBRARIES/libRSDriver_intermediates/LINKED/libRSDriver.so] Ошибка 1
make: *** Ожидание завершения заданий...
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
[email protected] ~/cm12.1 $
tell me what's wrong? how fix?
Delete the folder local_manifests in .repo and do the following:
$ . build/envsetup.sh
$ lunch -> and choose the number that matches with cm_hammerhead-userdebug
Wait for the roomservice.xml sync and when it's done open the file and add at the top: <project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1" />
$ repo sync
and
$ brunch hammerhead
Your roomservice needs to look like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_lge_hammerhead" path="device/lge/hammerhead" remote="github" />
<project name="CyanogenMod/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
</manifest>
Next time just do:
$ . build/envsetup.sh
$ breakfast hammerhead
$ brunch hammerhead
PS: WHIT THIS STEPS YOU'LL BUILD NON CAF. FOR CAF CHECK IN LUNCH MENU FOR IT
Be happy!
Cristiano Matos
how to build cm12.1 i`m know
me need build exactly CAF variant,but after 2h build is error
garynych said:
Cristiano Matos
how to build cm12.1 i`m know
me need build exactly CAF variant,but after 2h build is error
Click to expand...
Click to collapse
Which linux distro do you use?
garynych said:
Cristiano Matos
how to build cm12.1 i`m know
me need build exactly CAF variant,but after 2h build is error
Click to expand...
Click to collapse
You're a smart person may i presume. The answer lies in my post. Regards
Snoop05 said:
Which linux distro do you use?
Click to expand...
Click to collapse
mint 17.1 rebecca (x64)
Cristiano Matos said:
You're a smart person may i presume. The answer lies in my post. Regards
Click to expand...
Click to collapse
sorry,maybe that's the problem with online translator google
am try
1
Delete the folder local_manifests in .repo and do the following:
$ . build/envsetup.sh
$ lunch -> and choose the number that matches with cm_hammerhead-userdebug
Click to expand...
Click to collapse
yes
2
Wait for the roomservice.xml sync and when it's done open the file and add at the top: <project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1" />
$ repo sync
Click to expand...
Click to collapse
yes
3
Next time just do:
$ . build/envsetup.sh
$ breakfast hammerhead
$ brunch hammerhead
Click to expand...
Click to collapse
$ . build/envsetup.sh
$ breakfast hammerheadcaf
$ brunch hammerheadcaf
no build
or
$ . build/envsetup.sh
$ lunch cm_hammerheadcaf-user
$ make -j3 otapackage
or
$ . build/envsetup.sh
$ lunch cm_hammerheadcaf-user
$ mka -j3 otapackage
no build
or
$ . build/envsetup.sh
$ lunch cm_hammerheadcaf-userdebug
$ mka -j3 otapackage
no build
all time ,this error
Which python version you use?
when my aosp buildbox is ready, i will try to build a cm12.1 caf... my build time is only 20min so that helps
Snoop05 said:
Which python version you use?
Click to expand...
Click to collapse
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
now I did so
make clobber
ccache -C
and start build
already it's been 3 hours,I think must collect
Try it like this:
. build/envsetup.sh
lunch
39
breakfast hammerheadcaf
brunch hammerheadcaf
because i followed what Cristiano Matos sed and it works for me...
build.sh
Code:
#!/bin/bash
make clobber
repo sync -j16
source build/envsetup.sh
breakfast hammerheadcaf
mka bacon
cd $OUT
.repo/local_manifests/roomservice.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="CyanogenMod/android_device_lge_hammerhead" path="device/lge/hammerhead" remote="github" />
<project name="CyanogenMod/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" revision="cm-12.1-caf" />
<project name="CyanogenMod/android_device_lge_hammerheadcaf" path="device/lge/hammerheadcaf" remote="github" />
<project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="cm-12.1"/>
</manifest>
This worked for me. If problem persist try to reinstall all dependencies (check cm build wiki), gcc, g++, python and openjdk
garynych said:
now I did so
make clobber
ccache -C
and start build
already it's been 3 hours,I think must collect
Click to expand...
Click to collapse
this help me
build completed successfully
to everyone who helped,thank you
I'm happy

Categories

Resources