[Tutorial] How to compile your first Nexus Kernel - Samsung Galaxy Nexus

If you see mistakes please contact me. If you think something can be shorter, easier, feel free to suggest.
I have spent a lot of time figuring this out. Not to mention making this guide.
I DO NOT RESPOND TO PRIVATE MESSAGES. EVERYTHING YOU NEED IS IN HERE.
If this guide helped you feel free to donate.
There is more to come, using different toolchains, important files, adding overclocking etc.
Setting up the environment & building the kernel for the first time
Ubuntu 12.04 64-Bit
Linux Mint 13 64-Bit
Compiling Jelly Bean AOSP ROMs with these 2 is possible WITHOUT ADDITIONAL WORK.
If you want to use virtualization software, do NOT use Virtualbox. You can run into networking issues and so on. I suggest using VMWare Player instead, which is available for free on http://www.vmware.com
Installing latest updates & reboot.
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo reboot
Click to expand...
Click to collapse
Now we will download and install the latest Java 6 JDK from here. Look for Java 6 SE Update 33 or a later update version. Don't download Java 7 JDK. I am downloading the file below for this guide.
Linux x64 68.69 MB jdk-6u33-linux-x64.bin
Click to expand...
Click to collapse
This guide assumes you have downloaded the file in the folder
~/Downloads
Click to expand...
Click to collapse
$ cd ~/Downloads
$ sudo chmod +x jdk-6u33-linux-x64.bin
$ ./jdk-6u33-linux-x64.bin
$ sudo mkdir /usr/lib/jvm
$ sudo mv jdk1.6.0_33 /usr/lib/jvm/jdk1.6.0_33
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_33/bin/javac 1
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_33/bin/java 1
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_33/bin/javaws 1
$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_33/bin/jar 1
$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_33/bin/javadoc 1
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config jar
$ sudo update-alternatives --config javadoc
$ java --version
$ ls -la /etc/alternatives/java*
Click to expand...
Click to collapse
Now reboot is optional but welcome. Let's play safe.
$ sudo reboot
Click to expand...
Click to collapse
Install all required packages to play with Android.
Ubuntu 12.04
$ sudo apt-get update
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 git
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
$ sudo reboot
Click to expand...
Click to collapse
Configure USB ports.
$ sudo gedit /etc/udev/rules.d/51-android.rules
Click to expand...
Click to collapse
This file should get the contents:
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
Click to expand...
Click to collapse
Don't forget to replace the red marked text with your username from Ubuntu or Linux Mint.
When building a kernel, you only need to start from here. Pick the appropriate branch from the git manually. My example below shows how to download the required files to build a Jelly Bean kernel. What I did was visiting the git repository each time and picked the appropriate branch.
https://android.googlesource.com/device/samsung/maguro
$ mkdir ~/Documents/kernel
$ cd ~/Documents/kernel
$ git clone https://android.googlesource.com/device/samsung/maguro -b jb-release
Click to expand...
Click to collapse
Again pick the right branch from https://android.googlesource.com/kernel/omap.git
$ cd maguro
$ git clone https://android.googlesource.com/kernel/omap.git -b android-omap-tuna-3.0-jb-pre1
Click to expand...
Click to collapse
Ensure the toolchain is in your path.
Default, Easy solution
$ git clone https://android.googlesource.com/platform/prebuilt -b jb-release
$ export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
Click to expand...
Click to collapse
$(pwd) is a variable holding the current working directory.
Bandwidth-friendly solution
You can also download the toolchain to another directory. Bit first write down the directory you are working at.
mkdir ~/Documents/toolchain
cd ~/Documents/toolchain
$ git clone https://android.googlesource.com/platform/prebuilt -b jb-release
export PATH=~/Documents/toolchain/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
Click to expand...
Click to collapse
Instead of specifying the location of the toolchain with a relative path, we must specify the absolute path here.
Now we go back to where we were working.
cd ~/Documents/kernel/maguro
Click to expand...
Click to collapse
I hope you understand why I mentioned the bandwidth-friendly solution. With little insight you could have come up with it yourself.
Now let's build the kernel
$ cd omap
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ make tuna_defconfig
$ make
Click to expand...
Click to collapse
[*]Now you need to put it in a flashable zip.
Possible issues, things to avoid, FAQ
- Avoid downloading the kernel sources to directories which might require root/superuser access. This is one of the reasons I downloaded all sources to '~/Documents'. This will save a lot of time messing with chmod or chown commands.
- What is 'tuna', shouldn't this be maguro? No, actually not. Tuna is the board name, while maguro is the codename of the Nexus. Something you might want to remember when building kernels.
Interesting files and locations
<kernel_directory>/samsung/arch/arm/mach-s5pv210/cpu-freq.c
Overclocking
Voltages
Links to mods, source code, ...
Only do these when you are in the omap directory
Getting access to Ezekeel's work
git remote add ezekeel https://github.com/Ezekeel/GLaDOS-nexus-prime.git
git fetch ezekeel
Click to expand...
Click to collapse
If you want to change the text marked in red make sure to change the other one as well. You can think of this as a nickname for the remote repository.
Example of cherry-picking CUSTOM VOLTAGE
1. Go here: https://github.com/Ezekeel/GLaDOS-nexus-prime/commits/customvoltage_JB
2. Copy the SHA of the commit
3.
git cherry-pick 05ab84fa9bc1fa86e5a99c54266873e433ff15e2
Click to expand...
Click to collapse
template
git cherry-pick <SHA>
Click to expand...
Click to collapse
When encountering conflicts, you are on your own. I figured most of this out on my own. So if I can do it you can too.
Getting access to Francisco Franco's work
git remote add franco https://github.com/franciscofranco/Tuna_JB_pre1.git
git fetch franco
Click to expand...
Click to collapse
Getting access to http://www.kernel.org
git remote add kerneldotorg git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
git fetch kerneldotorg
Click to expand...
Click to collapse

red 2 days ago yours guide linked in sig.you sad that with ubuntu 12.10 aosp rom are impossible to compile,it's fine only for kernel and for aosp rom should use version 10.xx.now instead you say 12.xx is good for kernel and rom compiling,but from JB and so on.(Compiling AOSP ROMs with these 2 is possible. Only Jelly Bean and later though will compile without additional work)
after that,i think (after reading yours words)that until iCS 12.xx doesn't compile and from jb a so on 12.xx works good?i'm right or i I misunderstood?i'm totally noob on this things,compiled my fist rom 15 days ago,begin with JB but compiled already in mint mate 13,mint cynnamon 13,ubuntu 10.10 and 12.04\10.
very thanks for this guide man,it's very usefull and having already the environment setted it's very fast also.followed instruction in yours sig days ago and with no luck.now i retry with this!on mint 13 cynnamon 64bit now.regards cherrypicking...what you wrote is all we have to known for or is a base?
rated 5 stars and thanked.like this 3ads aims to help everyone begin do things yourselves on android

Good tutorial. Thanks for taking the time to write this.

How many gigs do I need to compile the kernel? I only have a 120gb ssd and 75gb free.
Sent from my Galaxy Nexus using Tapatalk 2

you are safe..

Serious_Beans said:
How many gigs do I need to compile the kernel? I only have a 120gb ssd and 75gb free.
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
They are enough
For kernel compiling we don't need any version of java
Inviato dal mio Galaxy Nexus con Tapatalk 2

sert00 said:
red 2 days ago yours guide linked in sig.you sad that with ubuntu 12.10 aosp rom are impossible to compile,it's fine only for kernel and for aosp rom should use version 10.xx.now instead you say 12.xx is good for kernel and rom compiling,but from JB and so on.(Compiling AOSP ROMs with these 2 is possible. Only Jelly Bean and later though will compile without additional work)
after that,i think (after reading yours words)that until iCS 12.xx doesn't compile and from jb a so on 12.xx works good?i'm right or i I misunderstood?i'm totally noob on this things,compiled my fist rom 15 days ago,begin with JB but compiled already in mint mate 13,mint cynnamon 13,ubuntu 10.10 and 12.04\10.
very thanks for this guide man,it's very usefull and having already the environment setted it's very fast also.followed instruction in yours sig days ago and with no luck.now i retry with this!on mint 13 cynnamon 64bit now.regards cherrypicking...what you wrote is all we have to known for or is a base?
rated 5 stars and thanked.like this 3ads aims to help everyone begin do things yourselves on android
Click to expand...
Click to collapse
ICS didn't compile here on Ubuntu 12.04. I believe I needed to do some additional work. ICS was also released before Ubuntu 12.04 was released. Jelly Bean will compile just fine.
The only thing that was difficult to figure out was how to setup the Java 6 JDK properly which I had to figure out by trial and error.
The cherry-picking is handy when you want to 'steal' someone else his work. Let's say 99% of the developers do this all the time here on XDA. I wanted to explain how to cherry-picking because it's useful to know. I spent a long time getting here.
Serious_Beans said:
How many gigs do I need to compile the kernel? I only have a 120gb ssd and 75gb free.
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
I think 4-5GB if you download everything. If you only download the Jelly Bean things by only downloading the branch you need you will use about maybe 1GB I am not sure. Try it out.
Download the toolchain to a separate directory. This will save lots of bandwidth in the future.

Good job on this guide. I learnt this ages ago though
Sent from my Galaxy Nexus using xda premium

i'm interesting about linaro but i don't know how set it up,can you say something about this?
Sent from my Galaxy Nexus

dxdiag32 said:
i'm interesting about linaro but i don't know how set it up,can you say something about this?
Sent from my Galaxy Nexus
Click to expand...
Click to collapse
Linaro is easy.
Google to download the linaro toolchain from their website. And then it's a bit trial and error to fill in:
CROSS_COMPILE line
it's not arm-eabi- anymore buy gnu-arm-eabi or something similar. It has to do with the directory structure or the filenames.
If you get a compile error about vfp or something you must correct this in a make file.
Take a look in francisco franco's github account or AIR Kernel. They have commit which describe what they did if they ran into compile errors. Normally you won't have to change anything I think.

Thanks OP. Maybe when I'm free I'll give this a try. I always wanted to try to make a stock kernel + colour tweaks + trinity contrast + 384 GPU for my own use. As this is considered I am "stealing" work, I wouldn't bother uploading this kernel I have compiled stock AOSP 4.0.4 (referring a guide) for the galaxy nexus. Except I didn't test out the rom as I didn't own a nexus back then.
Sent from my Galaxy Nexus using Tapatalk 2

thanks OP, but why apt-get install openjdk after manually install JDK 6? it is nothing about kernel compile but fail on the whole aosp compile.
Sent from my Galaxy Nexus

Thanks a lot for this tuto.
I'm trying to compile GlaDos kernel with Ubuntu 12.10 and i have this error :
Code:
[email protected]:~/android/kernel/GLaDOS-nexus-prime$ make
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: « include/generated/mach-types.h » est à jour.
CC kernel/bounds.s
cc1: error: unrecognized command line option "-mno-unaligned-access"
kernel/bounds.c:1: warning: switch -mcpu=cortex-a9 conflicts with -march= switch
make[1]: *** [kernel/bounds.s] Erreur 1
make: *** [prepare0] Erreur 2
Do you have an idea where it may come from ?

What is the version of your toolchain?
Sent from my Galaxy Nexus using xda app-developers app

anarkia1976 said:
What is the version of your toolchain?
Sent from my Galaxy Nexus using xda app-developers app
Click to expand...
Click to collapse
I took the one in the 1st post :
Code:
git clone https://android.googlesource.com/platform/prebuilt -b jb-release
It's arm-eabi-4.4.3

I tried with Ubuntu 12.04 to be exactly in the same conditions as described in the 1st post but I have exactly the same error...
That is really weird... Any ideas ?

Remove from makefile this:
-mno-unaligned-access
Otherwise you can use new toolchain from my github:
https://github.com/anarkia1976/AK-linaro

anarkia1976 said:
Remove from makefile this:
-mno-unaligned-access
Otherwise you can use new toolchain from my github:
https://github.com/anarkia1976/AK-linaro
Click to expand...
Click to collapse
Thanks anarkia1976 !
I've been able to compile with the last version of your toolchain. :good:

No problem .. if I can help it is a pleasure.

anarkia1976 said:
No problem .. if I can help it is a pleasure.
Click to expand...
Click to collapse
I noticed JZO54K has a crashing camera bug. I checked several times, redownloaded everything on different devices being maguro and grouper.
Has anyone managed to build CM10 or AOSP on Ubuntu 12.10 ? When installing the same packages I notice everything crashes. It's unclear if it's actually the packages or Google Chrome. I suspect one of the packages being the culprit.
I am going one by one through the packages in Ubuntu 12.10. Those willing to help me let me know. just install each package one by one.

Related

[TUTORIAL]Setting up and compiling CM9/CM10 from source

Since I’ve seen many questions on how to build cyanogenmod 9 (CM9) from source for the Galaxy Nexus, but there isn’t a proper guide, I will attempt to write a small how-to. There already is a very good guide how to build ICS from source, but there are a few extra things you’ll have to do for CM9. I hope it will be useful, and if not, well, at least I’ve tried
LATEST UPDATE: August 20th - also added CM10
SETTING UP THE BUILD ENVIRONMENT
I highly recommend Ubuntu 12.04 64 bit for development or Linux Mint 13. It is possible to build on different linux distro’s, but I cannot cover all exceptions. (If you don’t have linux installed or are afraid to set up a dual boot, it is possible to build in a virtual environment –e.g. virtualbox-. Building in a virtual environment however, can be very slow. Also, 64 bit is recommended.)
Make sure java is installed! At the end of this post, I have written a small guide how to install java.
Set up adb and create proper udev rules
I will not write these steps down, but rather point you to some very nice and easy guides. It would be best to do this first, however, it is not completely necessary if you just want to build a fully functioning rom.
1) set up adb (follow this excellent guide)
2) set up udev rules which allow you to start adb without having to use sudo (follow this terrific tutorial)
Installing all necessary packages and set up repo (source)
Open a terminal and copy the following code:
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev:i386 \
g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown \
libxml2-utils xsltproc zlib1g-dev:i386
WARNING: run the following commands as user (NOT as root) unless stated otherwise (e.g., when it explicitly shows ‘sudo’ before a command)!!!
Next, you’ll have to install repo to download the source. First we’re going to create a bin folder (1) in our home directory and include it in our path (2). Also, download the repo script (3) and make it executable (4). All from the command line:
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
Okay, we’re done with the first part. So far it’s been similar to building pure AOSP.For CM, there will be some additional things you’ll have to do.
DOWNLOADING THE CM SOURCE
Create a directory (CM9 -or CM10-) for your working files:
Code:
mkdir CM9
cd CM9
and then initialize the main CM repo (For CM10, just replace ics with jellybean):
Code:
repo init -u git://github.com/CyanogenMod/android.git -b ics
Good, now you’re ready to download the source. This can take a couple of hours!! Run the following command from the terminal (Run the following commands in the terminal from the root of the directory that contains the source, e.g., ~/CM9/):
Code:
repo sync
Okay, the majority of the files needed to build CM are now on your computer. However, device specific files are needed. To get them, issue the following command in your terminal:
Code:
source build/envsetup.sh
lunch
After the lunch command, choose your device. If you have a GSM version, choose cm_maguro, if you have the CDMA version, choose cm_toro. Additional files needed for your device are being downloaded right now.
Before you can actually build the rom, you’ll need to run two more commands to get some proprietary files.
1) Open a terminal and go to CM9/vendor/cm/. Run the following command:
Code:
./get-prebuilts
This will download term.apk and rommanager.apk. You will need these files otherwise you’ll get an error while building.
2) Now we need to grab some files from your phone. Make sure you have a working build cyanogenmod version (just install a nightly) on your phone. Make sure adb is setup properly (see beginning of this post)!
Connect your phone to the pc. Open a terminal and go to CM9/device/samsung/(Maguro OR Toro)/. Run the following command:
Code:
sh extract-files.sh
BUILDING CM9/CM10
The building part is very easy. It just requires two simple commands:
Code:
source build/envsetup.sh
brunch
After the brunch command, choose your device. Again, if you have a GSM version, choose cm_maguro, if you have the CDMA version, choose cm_toro. Depending on your computer, hopefully you’ll have a fully functioning CM9 or CM10 in 30minutes-2hours (or even longer) . You can find the rom in: /out/target/product/(Maguro OR Toro)/
Next time you build, first clean your working directory. Enter the following command in the terminal:
Code:
make clobber
This will completely remove your output directory!
To update the source, before each build just run:
Code:
repo sync
ADDITIONAL INFO
Install Java
Installing java is very easy in Ubuntu 12.04. Java 6 is recommended. To install it in Ubuntu 12.04 or Linux Mint 13, download the most recent Java 6 SDK from HERE. To install, open a terminal and run the following commands:
Code:
$ chmod +x jdk-6u34-linux-x64.bin
$ sudo ./jdk-6u34-linux-x64.bin
$ sudo mv jdk1.6.0_34 /usr/lib/jvm/
$sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_34/bin/java 1
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_34/bin/javac 1
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_34/bin/javaws 1
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config javaws
NOTE: after each 'update-alternative'-command, choose the correct (new) java version!
To check if you have the correct java version, type in a terminal:
Code:
java –version
I also added JAVA_HOME to my path; I don’t know if it is still necessary, but it doesn’t hurt either. First, check where java is located. In a terminal type:
Code:
which java
In my case the output shows /usr/bin/java, but it could be located somewhere else. Write down the path minus '/java'. Then open /home/USERNAME/.bashrc and add the following line to the bottom of the file:
Code:
export JAVA_HOME=/usr/bin
Of course replace /usr/bin with your path. Then save and close, and in a terminal run:
Code:
source ~/.bashrc
Odexed version
Some people like their rom to be odexed. There are multiple ways to achieve this (special thanks to Planet X for helping me with this):
1)Instead of ‘brunch’ do the following (if you are building for toro, replace maguro with toro):
Code:
source /build/envsetup.sh
lunch cm_maguro-user
make –j4
(Note:
taken from source.android.com: GNU make can handle parallel tasks with a -jN argument, and it's common to use a number of tasks N that's between 1 and 2 times the number of hardware threads on the computer being used for the build. E.g. on a dual-E5520 machine (2 CPUs, 4 cores per CPU, 2 threads per core), the fastest builds are made with commands between make -j16 and make -j32.)
2)If you want to build an odexed version every time and just want to use the brunch command, do the following:
-Open build/core/main.mk
-Comment out (place a # at the beginning of the line) lines 240, 241, 245, and 246. Thus, replace:
ifneq (true,$(DISABLE_DEXPREOPT))
ifeq ($(user_variant),user)
Ifeq ($(HOST_OS),linux)
WITH_DEXPREOPT := true
Endif
endif
endif
Click to expand...
Click to collapse
# ifneq (true,$(DISABLE_DEXPREOPT))
# ifeq ($(user_variant),user)
Ifeq ($(HOST_OS),linux)
WITH_DEXPREOPT := true
Endif
# endif
# endif
Click to expand...
Click to collapse
Now you can use the brunch command to build an odexed version with insecure boot image.
Hopefully this guide will benefit some people, if not, it kept me busy for a while. Enjoy building!!
(btw, I'm not a native english speaker, so excuse me if I made errors in grammar )
Wow great work. These tutorials keep getting better making it so easy to compile your own rom!
So what does that "brunch" command actually do?
Is it just a script that does the make otapackage commands and stuff?
Infra said:
So what does that "brunch" command actually do?
Is it just a script that does the make otapackage commands and stuff?
Click to expand...
Click to collapse
Indeed! Brunch is actually a combination of 'lunch' and 'make'. Using the 'lunch-part' you choose your build (in our case the maguro or toro). Next, the 'make-part' actually gets things going. The nice thing using brunch is that it automatically detects the maximum number of threads it can use so that it will run at maximum speed.
Finally set my computer up to compile CM9 last night for the first time and after a few tries I finally got it going. The only problem is that I am now getting an error very close to this one.
http://forum.xda-developers.com/showpost.php?p=25452343&postcount=3093
That poster says that it has been happening for a few days now. Is this a known issue with compiling CM9 or is this just user error? I have tried twice compiling now and have had no luck. Is it working for anyone else?
---------- Post added at 02:05 PM ---------- Previous post was at 01:19 PM ----------
Here is the exact error that Im getting. I tried it again today just to see if it anything had changed.
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory `/home/mark/CM9/kernel/samsung/tuna'
make: *** [TARGET_KERNEL_BINARIES] Error 2
make: *** Waiting for unfinished jobs....
Thanks for this guide. I just built my first CM9 kang. Getting ready to flash it. Now to find a guide on what I can and can't change and recompile or do I just remove stuff and use 7-zip to zip it back up?
housry23 said:
Thanks for this guide. I just built my first CM9 kang. Getting ready to flash it. Now to find a guide on what I can and can't change and recompile or do I just remove stuff and use 7-zip to zip it back up?
Click to expand...
Click to collapse
Glad to hear you succeeded building your first kang. I don't really understand what you want to do next? If you want to remove stuff from the zip, you can. I for instance always remove stk.apk. But you can also modify the build files so that only things you want will be built. You can play around with the source code and things like that. Anyway, most of the answers you will find using google. I also very much like the development board on Rootzwiki; people are really helpful and friendly there. So if you have any specific questions, i recommend that forum as well!
mbroeders said:
Glad to hear you succeeded building your first kang. I don't really understand what you want to do next? If you want to remove stuff from the zip, you can. I for instance always remove stk.apk. But you can also modify the build files so that only things you want will be built. You can play around with the source code and things like that. Anyway, most of the answers you will find using google. I also very much like the development board on Rootzwiki; people are really helpful and friendly there. So if you have any specific questions, i recommend that forum as well!
Click to expand...
Click to collapse
Okay thanks. I was asking just what you answered. I want to be able to remove and/or add stuff to the zip for starters. I found the answer through Google, but I do appreciate you taking the time to answer. I'll definitely be visiting the Rootzwiki dev board. Thanks for the suggestion.
I have successfully compiled cm9 from source but have never tried to cherry pick or Kang anything yet. Could you quickly explain how you cherry pick with cm9?
Sent from my Galaxy Nexus using Tapatalk 2
SupWiz17 said:
I have successfully compiled cm9 from source but have never tried to cherry pick or Kang anything yet. Could you quickly explain how you cherry pick with cm9?
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
Check out this link it may be helpful
http://rootzwiki.com/index.php?/topic/13189-[TUTORIAL]-Everything-you-ever-wanted-to-know-about-GIT#entry322735
Sent from my GT-S5360 using Tapatalk 2
That's a very useful link, thanks! In addition, if you want to cherry pick commits that haven't been merged yet -specific CM commits, such as navbar customization-, have a look here: http://review.cyanogenmod.com/#/q/branch:ics,n,z
Now let's say you see something interesting that you want to add. Then look at that commit and you'll see a 'download' command, such as "git fetch http://review.cyanogenmod.com/CyanogenMod/android_frameworks_base refs/changes/06/13306/15 && git checkout FETCH_HEAD". Just run that command and if everything works, you have succesfully cherry picked a commit. -of course, because these are not yet merged, there is the chance that no everything will work as it should-
There are also some GUI programs to manage git. I'm just about to try gitgui by all accounts it is very good.
Sent from my GT-S5360 using Tapatalk 2
Maybe it is a noobish question, but does this line:
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > /bin/repo
miss a ~?
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
UncleDan said:
Maybe it is a noobish question, but does this line:
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > /bin/repo
miss a ~?
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
Click to expand...
Click to collapse
Not noobish at all! You're absolutely right. It's not necessary when you're already in your home folder, but to be sure I've changed it in the guide. Thanks for letting me know!
Sticky!!!!!
Thanks dude
Sent from my Galaxy Nexus using Tapatalk 2
im sorry for noobish...at this step
1) Create an empty file in ~/CM9/.repo
in home i have dir CM9 but its empty...i havent a folder call .repo
java its installed and adb work perfectly
this is my terminal output:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 20774 100 20774 0 0 35679 0 --:--:-- --:--:-- --:--:-- 56604
[email protected]:~$ chmod a+x ~/bin/repo
[email protected]:~$ cd CM9
[email protected]:~/CM9$ repo init -u git://github.com/CyanogenMod/android.git -b ics
Your Name [loris]: loris
Your Email : my email
Your identity is: loris
is this correct [y/N]? y
repo initialized in /home/llo/CM9
[email protected]:~/CM9$
and nothing...
SOLVED
Hey mate any idea why my camera never works after a build... I know I'm missing something but I'm not sure what. I have all the proprietary files for my maguro etc but I just can't get camera to work... everytime
Sent from my Galaxy Nexus using Tapatalk 2
CdTDroiD said:
Hey mate any idea why my camera never works after a build... I know I'm missing something but I'm not sure what. I have all the proprietary files for my maguro etc but I just can't get camera to work... everytime
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
And you flash gapps everytime?
Sent from my GT-I9300 using Tapatalk 2
Infra said:
And you flash gapps everytime?
Sent from my GT-I9300 using Tapatalk 2
Click to expand...
Click to collapse
Sorted it out was just missing a few important files under /system/vendor thanks
Sent from my Galaxy Nexus using Tapatalk 2
CdTDroiD said:
Sorted it out was just missing a few important files under /system/vendor thanks
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
Glad it worked out! Seems there have been a few changes lately, so I will add some more info soon.
Sent from my SGS3

[Guide] How to compile and install CM10 for Samsung i9000

This guide is an adaptation/update of the following guides to CM10:
http://wiki.cyanogenmod.com/wiki/Samsung_Galaxy_S:_Compile_CyanogenMod_(Linux)
http://forum.xda-developers.com/showthread.php?t=1505006
http://forum.xda-developers.com/showthread.php?t=1533711
DISCLAMER
Although the procedures in this guide were tested on 2012-08-03 and produced a working build on the i9000, I take no responsibility for any consequences derived from their use.
Thanks:
stbenz
rycus86
kasper_h
gmhafiz
Requirements:
Linux - Ubuntu 12.04 - 64bit (AFAIK, a 64 bit host is needed to compile JB)
An i9000 with cm10 already installed - Get the latest nightly here: http://get.cm/?device=galaxysmtd
About 14GB of storage for the repository plus about 15GB for building
If you're using Windows or another OS, grab Virtual Box and install Ubuntu on a VM. It makes a nice development environment.
(Give the VM enough resources - A few cores and 2-4GB of RAM)
Building in other Linux distributions?
Here are some contibutions from fellow members:
Arch Linux: Replace steps 1 to 3 with gmhafiz's instructions
________________________________________________________________________________________________________
1 - Install Ubuntu Packages
1.1 - In terminal:
Code:
sudo apt-get install git-core gnupg flex bison python rar original-awk gawk p7zip-full gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool
sudo apt-get install libc6-dev x11proto-core-dev libx11-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils
sudo apt-get install g++-multilib lib32z1-dev ia32-libs lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib g++-multilib xsltproc
2 - Install JAVA
NOTE: Must be JDK 1.6 - Don't use other versions.
2.1 - Download Java JDK for Linux 64-bit from Java site: (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
Correct file will be something like: jdk-6u##-linux-x64.bin , where ## is the version number and will change with updates.​
2.2 - Move jdk-6u##-linux-x64.bin to your home directory
2.3 - Remove any other java packages from system:
Code:
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
2.4 - Install Java JDK:
Code:
sudo mkdir -p /opt/java/64/
sudo cp jdk-6u##-linux-x64.bin /opt/java/64
sudo su -
cd /opt/java/64
chmod +x jdk-6u##-linux-x64.bin
./jdk-6u##-linux-x64.bin
exit
2.5 - Add JDK PATH to .bashrc:
Code:
vi ~/.bashrc
Add these lines to .bashrc:​
Code:
# Java PATHs
export JAVA_HOME=/opt/java/64/jdk1.6.0_##
export PATH=$PATH:$JAVA_HOME/bin
3 - Install Android SDK
3.1 - Setup directories:
Code:
cd ~
mkdir android
cd android
mkdir sdk
3.2 - Download Android SDK from http://developer.android.com/sdk/index.html
3.3 - Extract SDK contents to ~/android/sdk
3.4 - Add Android SDK Path:
Code:
vi ~/.bashrc
Enter the Following:​
Code:
#Android PATH
export PATH=$PATH:~/android/sdk
export PATH=$PATH:~/android/sdk/platform-tools
export PATH=$PATH:~/android/sdk/tools
3.5 - Add Extra Path For Device:
Code:
sudo vi /etc/udev/rules.d/99-android.rules
Enter this:​
Code:
#Samsung
SUBSYSTEM==usb, SYSFS{idVendor}==04e8, MODE=0666
SUBSYSTEM=="usb", ATTRS{idVendor}=="####:####", SYMLINK+="android_adb", MODE="0666" GROUP="plugdev"
TEST=="/var/run/ConsoleKit/database", \
RUN+="udev-acl --action=$env{action} --device=$env{DEVNAME}"
Save/close file and run:​
Code:
sudo chmod +x /etc/udev/rules.d/99-android.rules
3.6 - Close and open new terminal.
3.7 - Install Android SDK Tools
Code:
android
Check Android SDK Tools and Android SDK platform-tools and Install them​
4 - Install Repository
4.1 - Download Repo:
Code:
mkdir -p ~/bin
mkdir -p ~/android/system
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
4.2 - Add Repo Path:
Code:
vi ~/.bashrc
Enter the following:​
Code:
export PATH=$PATH:~/bin
4.3 - Close and open new terminal.
4.4 - Initialize Repository & Sync:
Code:
cd ~/android/system/
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
repo sync -j16
NOTE: If you have trouble syncing due to connection issues, try repo sync -j1. It's slower but some ISPs have issues with -j16
Want to make sure you didn't get any connection errors and have the complete repository? Just run the repo sync command again. It can't give you ANY errors.​Go get a beer. And another. And another...​
4.5 - Get Device Specific Repos:
Code:
. build/envsetup.sh && breakfast galaxysmtd
Get more beer...​
4.6 - Extract files from phone:
NOTE: You need to have cm10 installed on the phone.
Connect phone to pc and in terminal type:​
Code:
adb root
cd ~/android/system/device/samsung/galaxysmtd/
./extract-files.sh
4.7 - Download Extra Files:
Code:
~/android/system/vendor/cm/get-prebuilts
4.8 - Add Toolchain PATH:
Code:
vi ~/.bashrc
Enter the following:​
Code:
#Android Toolchain PATH
export ARCH=arm
export CCOMPILE=$CROSS_COMPILE
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:/home/YOUR-USERNAME/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
4.9 - Close and open new terminal.
5 - Building Android
Code:
cd ~/android/system
. build/envsetup.sh && brunch galaxysmtd
Go get a beer. And another. And another...​
6 - Install on Phone
6.1 - Copy your .zip file from ~/android/system/out/target/product/galaxysmtd/cm-10-XXXXXXXXX-UNOFFICIAL-galaxysmtd.zip to the root of the SD card.
6.2 - Optional: Download Google Apps for Jelly Bean from http://goo.im/gapps and place it on the root of the SD card.
6.3 - Flash both of these .zip files from recovery.
Call your mother. She misses you.​
...and that's it.
________________________________________________________________________________________________________
How to update?
Code:
cd ~/android/system
repo sync -j16
make installclean
find ./out/ -name 'build.prop' | xargs rm
find ./out/ -name 'cm_galaxysmtd-target_files-eng.*.zip' | xargs rm
NOTE: If you have trouble syncing due to connection issues, try repo sync -j1. It's slower but some ISPs have issues with -j16​
...get beer, build and install.
Want to go "Steve Jobs" on the Android build? (Warning: Will take a gazillion years to re-build everything again)
Run:
Code:
make clobber
________________________________________________________________________________________________________
Want to customize the kernel?
Look here: [Guide] How to customize the CM10 i9000 kernel
.
will try this soon... thankx
Can you also write a small paragraph where you explain how compile a single application like Mms, Phone...
Thank you
a0a0 said:
Can you also write a small paragraph where you explain how compile a single application like Mms, Phone...
Thank you
Click to expand...
Click to collapse
You get all the application apks in the produced build.
From there you can extract any single one you want...
Sent from my GT-I9000 using Tapatalk 2
Yes but if i will try a small change in a code i must compile every time all the rom
a0a0 said:
Yes but if i will try a small change in a code i must compile every time all the rom
Click to expand...
Click to collapse
Not really.
Only changed files are compiled (and affected dependencies)
Sent from my GT-I9000 using Tapatalk 2
With mmm you can build single apk files, see the cm9 compile thread for details...
Verstuurd van mijn GT-I9000
Thanks man
Verstuurd van mijn GT-I9000
Requirements:
Linux - Ubuntu 12.04...
Click to expand...
Click to collapse
Does it have to be Ubuntu, provided I can find all listed packages for CentOS, for example?
Also, do you recommend the desktop or the server version?
elitevet said:
Does it have to be Ubuntu, provided I can find all listed packages for CentOS, for example?
Also, do you recommend the desktop or the server version?
Click to expand...
Click to collapse
Doesn't have to be Ubuntu, as long as you can find the equivalent packages.
It can be the desktop or server version, as long as you have X in it.
The android SDK setup uses a GUI. (but perhaps there's a way to run it from the CLI)
Sent from my GT-I9000 using Tapatalk 2
Thanks!
Already built it from the info from the CM9 thread, but this is always welcome
and very useful! Great +++++
Is step 4.5 (Setup Manifest) really required? Can't test it at the moment, but I know, it isn't required for building CM9 anymore, despite it is mentioned in the guide for building CM9. As I understand it, its a relict from when the Galaxy S specific sources weren't yet merged to the CyanogenMod repository.
stbenz said:
Is step 4.5 (Setup Manifest) really required? Can't test it at the moment, but I know, it isn't required for building CM9 anymore, despite it is mentioned in the guide for building CM9. As I understand it, its a relict from when the Galaxy S specific sources weren't yet merged to the CyanogenMod repository.
Click to expand...
Click to collapse
It's not needed.
Gesendet von meinem GT-I9000 mit Tapatalk 2
stbenz said:
Is step 4.5 (Setup Manifest) really required? Can't test it at the moment, but I know, it isn't required for building CM9 anymore, despite it is mentioned in the guide for building CM9. As I understand it, its a relict from when the Galaxy S specific sources weren't yet merged to the CyanogenMod repository.
Click to expand...
Click to collapse
The local manifest is still needed to download the device specific files & kernel source (also for CM9).
The thing not needed for CM9 after some time was using the teamhacksung buildscript.
---------- Post added at 05:27 PM ---------- Previous post was at 05:27 PM ----------
DerTeufel1980 said:
It's not needed.
Gesendet von meinem GT-I9000 mit Tapatalk 2
Click to expand...
Click to collapse
Sure? I don't see the device-files in the default.xml manifest file...
DerTeufel1980 said:
It's not needed.
Gesendet von meinem GT-I9000 mit Tapatalk 2
Click to expand...
Click to collapse
It shouldn't be, if it is like that, but I didn't get those sources until I added the manifest.
Perhaps a quirk, but that's how it worked.
The thing is, I had to put in the guide, as it was the way it worked, starting from a fresh, completely clean system.
Sent from my GT-I9000 using Tapatalk 2
Thanks again!
I was looking for something like this for quite a while now. Now I can finally compile my own builds
I compiled a build using this exact method 2 days ago, flashed the build to the phone and it went into constant pre-recovery bootloops. I had to flash GB with Odin to get back.
One thing was that I compile on a seperate box at home and transferred the file using scp. Maybe that corrupted, so I'm gonna try again tomorrow.
Could it be possible that the codebase itself was broken when I compiled? :-/
Did anybody have anythign similar? :S
K****iz_Indian said:
Could it be possible that the codebase itself was broken when I compiled? :-/
Did anybody have anythign similar? :S
Click to expand...
Click to collapse
Don't think so. The repo is not left with a broken code base.
The thing is, sometimes users get into the boot loop state even when installing the (un)official cm10 builds, so other factors cause them.
Sent from my GT-I9000 using Tapatalk 2
Could anyone refer me to a good guide about commit picking, please?
elitevet said:
Could anyone refer me to a good guide about commit picking, please?
Click to expand...
Click to collapse
http://forum.xda-developers.com/showpost.php?p=23715982&postcount=64

[HOW-TO] How to build Cyanogenmod 7 from Source

INDEX
Code:
*Setting up the Workspace
*Syncing Source
*How to build
Code:
Pls use this version you compiled, not to spam dev forums! We have already working Releases of CM7 for our GIO!!!
About Me:
Im using a VirtualMachine with Ubuntu 11.10 and every cm based Rom compiles fine for me :silly:
And: i found out that many users want to build from source, but dont know how!
So i decided to create a how to
Click to expand...
Click to collapse
I will post some other guides related to gio here!
Maybe with: How to build AOKP Jellybean or MIUI JB/ICS - Cyanogenmod 9/10
Click to expand...
Click to collapse
Install Android SDK
First of all: Download the Android SDK r21 for Linux x64
After you downloaded it: open your terminal ...
then type in (1Command = 1 Line!)
Code:
cd ~
mkdir android
tar -zxvf ~/Downloads/android-sdk_r21-linux.tgz
mv android-sdk-linux ~/android/sdk
Next we need to set up the sdk, to run "adb" command from any directory in terminal
Code:
sudo gedit .bashrc
Now add these lines to the bottom of the document:
Code:
export PATH=${PATH}:~/android/sdk/platform-tools
export PATH=${PATH}:~/android/sdk/tools
export PATH=${PATH}:~/android/bin
export PATH=${PATH}:~/bin
Next is, Set up the 51-android.rules, to get an adb connection from usb to ubuntu:
Code:
sudo gedit /etc/udev/rules.d/51-android.rules
Next, add these lines to the document that has been opened:
Code:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="091E", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="10A9", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="19D2", MODE="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666", OWNER="leob" #Galaxy Nexus
Gratulation, u finally setted up the Android SDK (Dont worry if Android SDK wont work [ADB]! it needs a package we download later )
Installing JAVA 6 (JDK)
type in terminal: (remember: 1 line = 1 command)
Code:
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jdk
(TIP: Use to keyboard (Right-Left-Top-Bottom)-Button to press ok & yes)
Installing the SDK
type in terminal (remember 1 line one command!)
Code:
cd android
cd sdk
cd tools
./android
Now the SDK Manager will be opened!
tick the small box leftside of the "SDK Android Platform tools" Part!
After its done, click "install 1 package..."
Now a window gets opened, select "Accept All ..." and click "Install"
After its done, click "close"! gratulations you now have the SDK installed
Installing required depencies
################# Ubuntu 11.10 #################
If you are using a 32 Bit inviroment of Ubuntu 11.10: (copy and paste this completely in terminal & press ok ^^)
Code:
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool
Im devloping on a 64 Bit Platform of Ubuntu 11.10 (I recommend it : (copy and paste this completely in terminal & press ok ^^)
Code:
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind lib32readline-gplv2-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32z-dev pngcrush schedtool
############################################
################# Ubuntu 10.04 #################
If you are using a 32 Bit inviroment of Ubuntu 10.04: (copy and paste this completely in terminal & press ok ^^)
Code:
coming later :P
Im devloping on a 64 Bit Platform of Ubuntu 10.04 (I recommend it : (copy and paste this completely in terminal & press ok ^^)
Code:
coming soon xD
############################################
Syncing the Source
In terminal: (1 line = 1 command)
This is only to initialize the GIT commands to sync the repo later
Code:
cd ~
mkdir bin
Now i recommend to close all Terminals! (BEST: Reboot Ubuntu)
After its done, open Terminal once more and type in (1 line = 1 command):
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
Now cd to android:
Code:
cd android
################# CM7 #################
Then create a new directory:
Code:
mkdir cm7
(just for example / but you can do it)
Now cd to your created directory:
Code:
cd cm7
After that you can initialize the repo command! (1 line = 1 command!)
Code:
repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
######################################
################# CM9 #################
Then create a new directory:
Code:
mkdir cm9
(just for example / but you can do it)
Now cd to your created directory:
Code:
cd cm9
After that you can initialize the repo command! (1 line = 1 command!)
Code:
repo init -u git://github.com/CyanogenMod/android.git -b ics
######################################
Now you can sync the repo to your local directory! (REMEMBER: This takes minutes [for me] and hours, days maybe for you!)
Code:
repo sync
################# CM7 #################
Add the lunch combo
Download this file with ubuntu
Push it to "android/cm7/vendor/cyanogen/products"!
This step is important because our device is not supported officialy from the Cyanogenmod Team
#######################################
Syncing Gio Device Tree
after the source sync is done and you can type commands now, you can sync the device tree!
First, cd to the devices/samsung directory (1 Command = 1 line):
Code:
cd device
mkdir samsung
cd samsung
################# CM7 #################
Now (i personally use the source by phiexz bcause its almost bugfree and the Governeur problem isn´t there anymore)
we type the commands for the Gio device tree (CD to samsung directory first, like above ^^)
Code:
git clone git://github.com/marcin1147/android_device_samsung_gio.git gio
After its done, u can cd back to your cm7 directory:
Code:
cd ..
cd ..
xD
######################################
################# CM9 #################
Now we type the commands for the Gio device tree (CD to samsung directory first, like above ^^)
Code:
git clone git://github.com/Jellaxy/android_device_samsung_gio.git -b ics gio
Code:
git clone git://github.com/Jellaxy/android_device_samsung_msm7x27-common.git -b ics samsung-msm7x27
After its done, u can cd back to your cm9 directory:
Code:
cd ..
cd ..
xD
Get the vendor for cm9:
cd to vendor! (1 Line = 1 Command)
Code:
cd vendor
This is for the vendor sync (no extra directorys needed
Code:
git clone git://github.com/Jellaxy/proprietary_vendor_samsung.git -b ics samsung
######################################
now we need to get the actual rommanager.apk!
type this in terminal
Code:
~/android/cm7/vendor/cyanogen/get-rommanager
After Rom Manager has been downloaded, you can continua with the ""Build it Part"
Build it
now when you are in the cm7 directory, you need to configure the vendor and some other parts of it (1 line = 1 command):
Code:
. build/envsetup.sh
lunch cyanogen_gio-eng
to build cm7 one last command:
Code:
make -j6 bacon
or not ? ^^
You can also do it using marcin profile, which do not need vendor folder.
Also, you do not need the 'push-to-vendor' step using a special passage.
Maybe we could work on a local_manifest.xml... and on an official CM7... pm me if you want.
ahhh, this is what I need. Thanks for making this tutorial. Gonna bookmark this page
nice job tanx
might help for making official cm7..
yeah ...
but i need to figure some parts out before :/
wifi cant be turned on if i build using phiexz device config, might i gonna use marcins and make some changes to fix som ethings
AufKoka said:
yeah ...
but i need to figure some parts out before :/
wifi cant be turned on if i build using phiexz device config, might i gonna use marcins and make some changes to fix som ethings
Click to expand...
Click to collapse
Think it's kernel related, in fact there's an issue on github on phiexz kernel.
At first, you can try using marcin kernel.
At second, I'm downloading phiexz and try building CM7 with marcin config... if it works, it's good.
AufKoka said:
yeah ...
but i need to figure some parts out before :/
wifi cant be turned on if i build using phiexz device config, might i gonna use marcins and make some changes to fix som ethings
Click to expand...
Click to collapse
making it official would really be great.
it seems that phiexz kernel and device config have problems with wifi sometimes, I think it won't be when using marcin's.
voetbalremco said:
might help for making official cm7..
Click to expand...
Click to collapse
The CM team will never do anything official for a gio.
This comment makes zero sense.
On topic, decent guide.
CM make official for beni,cooper and tass , so why not gio?
Sent from my GT-5660 using xda-developers app
Frankin96 said:
CM make official for beni,cooper and tass , so why not gio?
Sent from my GT-5660 using xda-developers app
Click to expand...
Click to collapse
In fact, only tass.
On get.cm there are only tass builds.
BTW...
#PROGRESS 1: Build done with marcin's profile. Will test at home
Frankin96 said:
CM make official for beni,cooper and tass , so why not gio?
Sent from my GT-5660 using xda-developers app
Click to expand...
Click to collapse
Cyanogenmod need the maintainer that had good device tree from specific device, and then submit the gerrit to cm. As you know, before Phiexz was 'gone away', he planned to do that :| But, i think he was busy with his job, and have no time to develop again.
ItachiSama said:
In fact, only tass.
On get.cm there are only tass builds.
BTW...
#PROGRESS 1: Build done with marcin's profile. Will test at home
Click to expand...
Click to collapse
ace has official nightlies. codename cooper = ace
http://get.cm/?device=cooper
---------- Post added at 12:45 PM ---------- Previous post was at 12:39 PM ----------
mussieonlinux said:
The CM team will never do anything official for a gio.
This comment makes zero sense.
On topic, decent guide.
Click to expand...
Click to collapse
it does.
http://www.cyanogenmod.org/blog/developer-relations
Every good open source software project grows. With that growth, it sometimes becomes difficult to communicate with people within that project. This is true for the CyanogenMod project as well. With our continued growth, change is coming as well. A major change is to make it easier for outside developers to communicate with the CyanogenMod project.
This is where I, and this blog post, come into play. Are you maintaining a device that is not currently maintained by the CM team? Do you wish for that device to be added to the list with your support? Have you found a vulnerability that you discovered that needs to be disclosed? Is there a problem with code used that needs attention? There is now a face for you to communicate with to get these things taken care of.
I’ve been in the background of the CyanogenMod project for just over two years now. With the knowledge I’ve gained, I am now taking on the roll of making it easier for outside developers to work within the project. This change will help us to continue and grow as the number one aftermarket Android distribution. Please do not read this as a new contact for bug reports or feature requests. Bugs and features are to be reported on the CyanogenMod bug tracker. Code submissions will still be handled through our gerrit instance. This new contact avenue is to assist the community in ways previously described.
You can contact me via email at devrel _at_ cyanogenmod _dot_ com. I look forward to getting the ball rolling on whatever needs to be taken care of.
Here are the currently available resources for the community:
CyanogenMod Code Review
CyanogenMod Bug / Issue Tracker
CyanogenMod Forum
CyanogenMod Wiki
*Edit* Please do not send device requests. If you want to add a device to CyanogenMod and are going to do the work on it, this would be your contact avenue. Please keep requests to the Issue Tracker.
This avenue is also for questions about development process or submission guidelines. CyanogenMod does not want to exclude anyone from the development process. We want to give you as much help as possible when adding your work to ours.
Click to expand...
Click to collapse
i will publish that if we got an almost bugfree build
i have configured already my own device tree
Now lets see how to handle the github with push and pull requests ^^
If you want, I can publish online my device config (marcin one, will work on) and then link it to you and else.
I think that marcin device config is better cuz of no wifi issues and Camera could be easily fixed...
Thread moved to general.
Nice thread, gave it a sticky.
YZ.

[GUIDE] Compiling your own AOKP (ICS Branch) from Source

Hi! Here's a complete guide for people who want to develop AOKP from source. I havent compiled any ROM from source because my internet connection is too slow. This guide will work, as far as I know. So lets start off by seeing the requirements.
Requirements :
Code:
1. A 64-bit environment. (64-bit is necessary for android 4.0 and plus builds)
2. Ubuntu 12.04 or 12.10 (with 64-bit architecture)
3. 2Ghz Dual Core Processor
4. 2GB Minimum ram
5. 50GB File Space (For only one rom source)
The device tree can be found here : Link. (thanks to whitexp for the device tree and percy_g2 to provide the correct links in the replies.
Now Open the terminal (CRTL+ALT+T) and go ahead as follows :
1. Update your OS
Code:
$ sudo apt-get update
$ sudo apt-get upgrade
2. Download the required packages :
2A. Installing JDK:
Code:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer
Once its installed check weather its installed properly or not.
Code:
$ java -version
The output should be like this :
Code:
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
2B. Installing required packages.
Code:
apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
libxml2-utils xsltproc pngcrush gcc-multilib lib32z1 schedtool
2C. LibGL shortcut issue solver:
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
3. Setup installing repo
Code:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
4. Create the working folder
Code:
$ mkdir aokp_ics
$ cd aokp_ics
5A. Making the directory for downloading the source
Code:
mkdir -p ~/rom/android/system
Now go into that folder by :
Code:
cd ~/rom/android/system
PATH=~/bin:$PATH
5B. Downloading the AOKP source:
Code:
$ repo init -u https://github.com/AOKP/platform_manifest.git -b ics
6. Sync repository:
Code:
$ repo sync
** Please note that this will take a long time. You need fast connection because the size repositories is 8 ~ 12 GB.
7. Setting up the source folder
Once the sync finishes without breaking all the folders will appear in rom/android/system folder, Execute :
Code:
mkdir -p ~/rom/android/system/device/samsung/totoro
and then for vendor, execute this :
Code:
mkdir -p ~/rom/android/system/vendor/samsung/totoro
8. Compiling
Code:
. build/envsetup.sh
lunch cm_totoro-eng
brunch cm_totoro-eng
** Your build will be located at /rom/android/system/out
All the best.. ​
And how will this work again?
Without proper source implementations from the device?
This post is in compliance with the national potato safety regulation.
[Galaxy S 4 LTE]
---------- Post added at 12:23 AM ---------- Previous post was at 12:19 AM ----------
Hmmm,
We can't even compile a stable ics build.
I'm not sure how well this works.
Can any senior GY devs verify this?
This post is in compliance with the national potato safety regulation.
[Galaxy S 4 LTE]
Good thread
deathnotice01 said:
And how will this work again?
Without proper source implementations from the device?
This post is in compliance with the national potato safety regulation.
[Galaxy S 4 LTE]
---------- Post added at 12:23 AM ---------- Previous post was at 12:19 AM ----------
Hmmm,
We can't even compile a stable ics build.
I'm not sure how well this works.
Can any senior GY devs verify this?
This post is in compliance with the national potato safety regulation.
[Galaxy S 4 LTE]
Click to expand...
Click to collapse
i am not an expert in this so I have said that this will work "as far as i know". I have gone till the step in which you have to sync repo. So I thought that this will surely work even ahead of that step.
Ya sure. Some senior GY dev must verify this.
There is a file called default.xml in repo/manifests. You have to change it according to your needs.
LoLz... Let CM9 get stable! AOKP and other ICS based source compiled roms come after!!
Also PPA no longer exists! Java won't install with the method given in the guide!
EDIT:
Also, If you haven't tried on your own you can't say it works -_-
And you didn't mention which device config to be used -_- People aren't pros like you #LOL
@prototype-U @percy_g2 @Deadly
EDIT:
Also the source is not 8-12GB its less than 8GB :silly:
EDIT 3:
More people need to see this :v
@gadgetroid
Arnav.G said:
LoLz... Let CM9 get stable! AOKP and other ICS based source compiled roms come after!!
Also PPA no longer exists! Java won't install with the method given in the guide!
EDIT:
Also, If you haven't tried on your own you can't say it works -_-
And you didn't mention which device config to be used -_- People aren't pros like you #LOL
@prototype-U @percy_g2 @Deadly
EDIT:
Also the source is not 8-12GB its less than 8GB :silly:
EDIT 3:
More people need to see this :v
@gadgetroid
Click to expand...
Click to collapse
Exactly.
The device tree is of most importance
This post is in compliance with the national potato safety regulation.
[Galaxy S 4 LTE]
deathnotice01 said:
Exactly.
The device tree is of most importance
This post is in compliance with the national potato safety regulation.
[Galaxy S 4 LTE]
Click to expand...
Click to collapse
Yeah, CM is AOSP with Major Modifications in Google AOSP Source for Performance!
Also instead of compiling ICS based roms you should first compile CM7/GingerBread roms! Coz if you directly start off with CM9/ICS I am sure you are going to get frustrated of the big big errors you are going to face!
This thread ironic! lol
deathnotice01 said:
Exactly.
The device tree is of most importance
This post is in compliance with the national potato safety regulation.
[Galaxy S 4 LTE]
Click to expand...
Click to collapse
AOKP or any aosp builds based on cm9 can be compiled but it will have same bugs like CM 9 and device tree can be found https://github.com/Whitexp/android_device_samsung_totoro/tree/ICS here for SGY .
Its useless until RIL is fixed
Also compiling isn't that tough!
But writing proper HAL's and fixing the bugs is tough!!
hmm thread is not a bit useful in this forum
aokp on galaxy y5360
make me laugh
we can dream for cm7.2 aosp is a milestone that cant be achieve
I am new here and not a professional.
I have tried this. But i didnt make the final build because my internet is too slow(256K modem). but i have reached the sync repo step successfully and so i thought i would share it. But now i see that sharing it was waste.
And yes, @Arnav.G its not a rule that CM must be maintained first and AOKP after that. Anyone can start the work of AOKP simultaneously. I was seeing your profile and i saw that you also have posted a guide on compiling CM, AOKP and all. I sincerely think that the guide is not so noob friendly, you should make it more simpler by separating the commands which you have pressed into one.
greetings.
robowarrior1377 said:
I am new here and not a professional.
I have tried this. But i didnt make the final build because my internet is too slow(256K modem). but i have reached the sync repo step successfully and so i thought i would share it. But now i see that sharing it was waste.
And yes, @Arnav.G its not a rule that CM must be maintained first and AOKP after that. Anyone can start the work of AOKP simultaneously. I was seeing your profile and i saw that you also have posted a guide on compiling CM, AOKP and all. I sincerely think that the guide is not so noob friendly, you should make it more simpler by separating the commands which you have pressed into one.
greetings.
Click to expand...
Click to collapse
Why bringing my guide here? lol
Also do you want to kang my guide!?
Ok.
So OP what device tree did you use to be exact?
This post is in compliance with the national potato safety regulation.
[Galaxy S 4 LTE]
AOKP and Galaxy Y look so funny together!
Btw you missed the major steps:
Setting up vendor
Setting up device tree
Setting up kernel source
And obtaining cm_totoro.mk
Anyways, its worth the try.. atleast you guys would be able to see AOKP
Subscribed to thread xD
Lets see what is his next reply
robowarrior1377 said:
I havent compiled any ROM from source because my internet connection is too slow.
Click to expand...
Click to collapse
makes a guide for something he doesn't know or has never done
robowarrior1377 said:
Requirements :
2. Ubuntu 12.04 or 12.10 (with 64-bit architecture)
Click to expand...
Click to collapse
I'm sure I built it on 11.10
robowarrior1377 said:
3. 2Ghz Dual Core Processor
Click to expand...
Click to collapse
1ghz single core
robowarrior1377 said:
4. 2GB Minimum ram
Click to expand...
Click to collapse
yawn. 512mb with a bit of swap
robowarrior1377 said:
5. 50GB File Space (For only one rom source)
Click to expand...
Click to collapse
20gb
robowarrior1377 said:
Now Open the terminal (CRTL+ALT+T) and go ahead as follows :
Click to expand...
Click to collapse
isn't working on debian. had to map my own shortcut
robowarrior1377 said:
1. Update your OS
Code:
$ sudo apt-get update
$ sudo apt-get upgrade
Click to expand...
Click to collapse
Isn't necessary
2. Download the required packages :
robowarrior1377 said:
2A. Installing JDK:
Code:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer
Click to expand...
Click to collapse
can be problems for new distros. please use my method
cybojenix said:
first we download the required binary:
Code:
wget --no-check-certificate --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin"
then we need to run the binary, and move it to a shared location
Code:
chmod +x jdk-6u45-linux-x64.bin
sudo ./jdk-6u45-linux-x64.bin
sudo mv jdk1.6.0_45 /usr/lib/jvm/
finally, all the needed java binaries need to be installed, and given the highest priority. This will override any other java versions you have
Code:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 1
sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_45/bin/javaws 1
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_45/bin/jar 1
sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_45/bin/javadoc 1
now check that jdk1.6.0_45 is selected on these
Code:
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
sudo update-alternatives --config jar
sudo update-alternatives --config javadoc
Click to expand...
Click to collapse
robowarrior1377 said:
5A. Making the directory for downloading the source
Code:
mkdir -p ~/rom/android/system
Click to expand...
Click to collapse
no comment.
robowarrior1377 said:
Code:
PATH=~/bin:$PATH
Click to expand...
Click to collapse
you'd be better off adding this to ~/bash.rc
robowarrior1377 said:
7. Setting up the source folder
Once the sync finishes without breaking all the folders will appear in rom/android/system folder, Execute :
Code:
mkdir -p ~/rom/android/system/device/samsung/totoro
and then for vendor, execute this :
Code:
mkdir -p ~/rom/android/system/vendor/samsung/totoro
Click to expand...
Click to collapse
WOOOOTTTT building with empty device folders. you must be a genius
robowarrior1377 said:
8. Compiling
Code:
brunch cm_totoro-eng
Click to expand...
Click to collapse
hmm. brunch totoro
robowarrior1377 said:
** Your build will be located at /rom/android/system/out
Click to expand...
Click to collapse
LOOOL
~/aokp-ics/rom/android/system/out/target/product/toroto
that's if you insist on using your directory.
I hope this helped you. trollojenix
cybojenix said:
makes a guide for something he doesn't know or has never done
I'm sure I built it on 11.10
1ghz single core
yawn. 512mb with a bit of swap
20gb
isn't working on debian. had to map my own shortcut
Isn't necessary
2. Download the required packages :
can be problems for new distros. please use my method
no comment.
you'd be better off adding this to ~/bash.rc
WOOOOTTTT building with empty device folders. you must be a genius
hmm. brunch totoro
LOOOL
~/aokp-ics/rom/android/system/out/target/product/toroto
that's if you insist on using your directory.
I hope this helped you. trollojenix
Click to expand...
Click to collapse
Ahahahhahahahahahhahahahahahha... xD Can't stop laughing
Trololololjenix xD

[GUIDE]How to Build your own CM10 from Local sources for the Galaxy Fame

Hello guys since there is no Cyanogenmod for this device only an custom recovery (no custom roms) or any really development except for stripping stockrom and tweaking it a bit i decided to make it for an friend and since 3 people of my class have this phone i am founding it pretty an unstable phone with all the stock crap bloatware.
I could make my friends phone hang with whatsapp spamming messages what is pretty pathetic.
So i contacted Corsicanu for the sourcecode of recovery what is an very important piece of the source code for not to brick you people´s phone and i also received some in/complete source code from adytzu33. I am trying to make the compiling work i am almost done with making it to completely work but i don´t have always time so if you can fix everything by yourself do it and upload it to here so i can adjust the guide for future developers for the fame. Watchout cause this sourcecode is for the galaxy fame p s6810p so far as i know.
If my tutorial broke yourphone from flashing an build then its not my fault
Check good or the partitions are good before flashing. Since i dont have the phone i cant test it.
Preparation:
What you need for building.
An decent PC with enough space i recommend like 80gb
Internet connection
Time and Patience
Up to date running Ubuntu/linux system i am using 14.04
IMPORTANT: INSTALL EVERYTHING AS A NORMAL USER. DON'T INSTALL AS ROOT!
Installation of the required packages to compile:
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils schedtool pngcrush xsltproc zlib1g-dev:i386
Settings the links to the files:
Code:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Step 2 Installing java:
You need the java development kit for building cm10 the most recommended is the one from sun jdk 6 update 38.
1. Download the jdk-6u38-linux-i586.bin from the Oracle/Sun Java Download Area. If you are on 64-bit Ubuntu as I am, you should grab jdk-6u38-linux-x64.bin
http://www.mediafire.com/download/wyb4xmxbsb7pabm/jdk-6u38-linux-x64.bin (mirror for 64bit)
2. Go to your Download location and execute this command below.
Code:
chmod +x jdk-6u38-linux-x64.bin
3. Extract the bin file:
Code:
$ ./jdk-6u38-linux-x64.bin
4. Move the extracted folder to this this location:
Code:
$ sudo mv jdk1.6.0_38 /usr/lib/jvm/./jdk-6u38-linux-x64.bin
5. Install the new Java source in system:
Code:
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javac 1
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/java 1
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javaws 1
$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javadoc 1
$ sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javah 1
$ sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javap 1
$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/jar 1
6. Select the default Java version for your system:
Code:
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config javadoc
$ sudo update-alternatives --config javah
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config jar
7. Check Java version:
Code:
$ java -version
8. Verify the symlinks. Javac, Java, Javaws, Javadoc, Javah, Javap and Jar should all point to the new Java location and version:
Code:
$ ls -la /etc/alternatives/java* && ls -la /etc/alternatives/jar
Step 3: The sources
Install repo:
Repo is a tool that makes it quite easy to download and maintain the sources of Cyanogenmod.
Code:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ cd ~/bin
$ curl [url]https://dl-ssl.google.com/dl/googlesource/git-repo/repo[/url] > ~/bin/repo
$ chmod a+x ~/bin/repo
Create working directory:
Code:
$ mkdir ~/cm10
$ cd ~/cm10
Initialize Repo:
Code:
$ repo init -u git://github.com/CyanogenMod/android.git -b jellybean
and enter your credentials.
Download the sources:
Code:
$ repo sync
Wait until it's finished (takes a lot of time! depending on your internet connection)
If the process hangs use Ctrl+C to break out of it and resume the download with another
Code:
$ repo sync
Tip from ethansp: If you are running into a lot of syncing errors the reason might be that the 'repo sync' command is establishing four threads automatically. This might be too much. So try to change the command to run with one thread only by using
Code:
$ repo sync -j1
Initialize the environment
Code:
$ . build/envsetup.sh
Go to your Cm10 Repository folder and press CTRL+H
Go to .Repo/local_manifests and create local_manifest.xml
Paste these lines into it and repo sync after it again.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="wulsic/android_device_samsung_nevisp.git" path="device/samsung/nevisp" remote="github" revision="master"/>
<project name="wulsic/android_vendor_samsung_nevisp.git" path="vendor/samsung/nevisp" remote="github" revision="master"/>
<project name="corsicanu/android_kernel_samsung_nevisp.git" path="kernel/samsung/nevisp" remote="github" revision="master"/>
<project name="wulsic/android_frameworks.git" path="framework/" remote="github" revision="master"/>
</manifest>
Download the neccesary Cyanogenmod prebuilts:
Code:
~/cm10/vendor/cm/get-prebuilts
Step4: Building the rom
Now try to build it.
Code:
Brunch nevisp
And now the building process starts. Building takes from an half hour( very fast pc) to 2 hour on very slow pc´s maybe even more.
When everything gone fine (Can´t the guide is not finished there are still some little errors in compiling i need to fix or maybe you dev´s.) you can find the flashable zip in ~/cm10/out/target/product/nevisp
It would be called cm-10-DATE-UNOFFICIAL-nevisp-zip. You can directly flash it cause it is already an flashable zip.
Step5:Rebuilding with newest sources:
Code:
$ cd ~/cm10
$ repo sync
$ . build/envsetup.sh
$ brunch nevisp
The building should now take a lot less time cause it only rebuilds it and its using old parts what haven´t changed.
For more Handy tips see this link where i based the guide off http://forum.xda-developers.com/showthread.php?t=1971645
Credits:All credits goes to Raum1807 for making the guide i only edit it for people so its easier for compiling for the fame.
And to corsicanu for giving me the sourcecode from adytzu33t and the cm10.1 recovery what could be also handy for beginning cm10.1 but first cm10 and also for his uploaded kernel sourcecode on github.
and adytzu33 for the sourcecode from cm10 but unfortunatly he was last online in march.
If you have problems then post it here in the thread i can help you to get compiling so far as i am since i now have the knowledge again for cm10 and you guys can help me.
If you have the same error like me here what i will solve today after like 12hours when i standup again then you have the same progress like me.
Going to sleep now just bring the old devs back to life on this forum cause its almost completely death if you ask me.
Reserved for Progress:
Code:
target Strip: libvariablespeed (/home/wulsic/cm10/out/target/product/nevisp/obj/lib/libvariablespeed.so)
Install: /home/wulsic/cm10/out/target/product/nevisp/system/lib/libvariablespeed.so
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::EmitFunctionHeader():external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:477: error: undefined reference to 'llvm::DwarfDebug::beginFunction(llvm::MachineFunction const*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::EmitFunctionBody():external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:685: error: undefined reference to 'llvm::DwarfDebug::beginInstruction(llvm::MachineInstr const*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::EmitFunctionBody():external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:727: error: undefined reference to 'llvm::DwarfDebug::endInstruction(llvm::MachineInstr const*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::EmitFunctionBody():external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:788: error: undefined reference to 'llvm::DwarfDebug::endFunction(llvm::MachineFunction const*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doFinalization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:895: error: undefined reference to 'llvm::DwarfDebug::endModule()'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doFinalization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:897: error: undefined reference to 'llvm::DwarfDebug::~DwarfDebug()'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doInitialization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:205: error: undefined reference to 'llvm::ARMException::ARMException(llvm::AsmPrinter*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doInitialization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:208: error: undefined reference to 'llvm::Win64Exception::Win64Exception(llvm::AsmPrinter*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doInitialization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:202: error: undefined reference to 'llvm::DwarfCFIException::DwarfCFIException(llvm::AsmPrinter*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doInitialization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:195: error: undefined reference to 'llvm::DwarfDebug::DwarfDebug(llvm::AsmPrinter*, llvm::Module*)'
collect2: ld returned 1 exit status
make: *** [/home/wulsic/cm10/out/target/product/nevisp/obj/SHARED_LIBRARIES/libbcc_intermediates/LINKED/libbcc.so] Error 1
make: *** Waiting for unfinished jobs....
Thanks for give us guide, I want to try
After I download ubuntu
Sent from my GT-S6810 using XDA Premium 4 mobile app
EDIT:
Compiling problems fixed thanks to corsicanu, he fixed the boardconfig.mk and the recovery.fstab so without him i would still be figuring out what to edit by those files.
Now we only need testers to log the problems from boot so we can fix those problems.
Here is staying the compiling guide and it will stay in update with the repository so i will push fixes to the repo and merge fixes from people who review the sourcecode.
I will create a new thread in the Original android development thread since its not modified stock but it will be the first cyanogenmod 10 for the fame.
The build wasn´t really on time it was 18 minutes later posted then i said i would make it but that doesn´t matter i think.
Development Thread:
http://forum.xda-developers.com/showthread.php?p=52756482
I can compile and install on my GT-6810B?
I am Brazilian and I'm using Google Translator
Well you can compile it but i am still finding out or everything is compatible with each other so i mean all the fame phones since i do not own it and i still need to dig In the specifications and threads here i cant promise anything. We are still trying to make logcat work on the s6810/p so i just want to say that its better that you will first wait till we have hammered out all the problems. Else you might be able to compile it but it wil not boot. Hold an Eye on the thread mentioned above for progressieve.
Verstuurd vanaf mijn Nexus 4 met Tapatalk
Thanks, I think it best to wait
John Blueh said:
Thanks, I think it best to wait
Click to expand...
Click to collapse
Maybe you can help him on this thread http://forum.xda-developers.com/showthread.php?t=2755948
Sent from my GT-S6810 using XDA Premium 4 mobile app
Thanks [emoji4]
Отправлено с моего GT-S6810 через Tapatalk
Misha_android if you got problems with compiling just post it here or send a message tot me.
Verstuurd vanaf mijn Nexus 4 met Tapatalk
CM11 coming soon.
Hello guys,
I really want to build cm10 but i can't test it because i have this phone but i really DON'T want to root it, i can fix some errors by myself because when building pac 4.4.4 for my device i was getting TONS of errors so i start building today.
EDIT: I looked at the local_manifest.xml but i don't see any line that points to the kernel,device and vendor tree.
I can't say that im right because the repo sync is still in progress but i only thnk
Sorry for bad english
EDIT 2: I see nobody has started building cm11 for this device.. i can start doing it but i need the device,vendor and kernel source if anyone has a link please give it.

Categories

Resources