Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,810,757 Members 36,621 Now Online
XDA Developers Android and Mobile Development Forum

Android Dev. How-To Guide: Compiling the Android/Linux kernel for the Epic Touch 4G

Tip us?
 
shanenielsen1234
Old
(Last edited by shanenielsen1234; 18th January 2012 at 12:17 AM.) Reason: Updated guide so you can compile custom kernel with root.
#1  
shanenielsen1234's Avatar
Member - OP
Thanks Meter 144
Posts: 52
Join Date: Jan 2012
Location: Temecula,CA

 
DONATE TO ME
Cool Android Dev. How-To Guide: Compiling the Android/Linux kernel for the Epic Touch 4G

Android Development How-To: Compiling the Android/Linux kernel for the Epic Touch 4G.

NOW INCLUDES ROOT!!!

Introduction: This guide is meant for people who want to get started with android development and don't know where to start. This thread can also be used as a reference place for android development on the et4g. This guide well first be on compiling the android kernel and flashing it to your phone and, I well update it on a regular basis for more complex mods and such to get you familiar with the android platform. If at anytime anyone would like to add more to this, pm me with what you would like to add or fix. Android is an open-source wonderland and I feel like more people should experience the fun of android development. Just remember I am not responsible if you do something stupid and break your phone!

First, we are going to get familiar with the android kernel by compiling a stock build and flashing it with Odin to your et4g.


What you need to download to compile the kernel:

Samsung open-source kernel and platform files. Available at: Samsung Open Source
Type in: Sph-d710 in the search bar in the link and download latest source.

initramfs files (More on this later) (includes cwm, busy box, and of course root! Thanks to chris41g for his help.) Files available at: Initramfs Files

Tool chain for compiling: Available at: Arm-toolchain

Preferably Ubuntu or another Distro. Of Linux running on a partition or Virtual machine.




Step 1: Were going to unzip the source you got from Samsung and take a short look around.

unzip the source and unzip the file that says, “SPH-D710_GB_Kernel.tar.gz” and, open it up. You are now looking at the kernel source for the Epic touch 4g! Okay I well not go over to much whats is here but, I well add a more in depth look in the kernel soon.

Scroll to the bottom of the source and you should see a document that says, "makefile". We are just going to add a name for your stock compile of the kernel, to make it a little more special. Open it and go to where it says Extra version and add your last name ,just make it all lower case letters or it wont compile correctly. When you flash it to your phone, the about phone panel in setting well say: Kernel version: 2.6 [last name you chose] now.




Step 2: Lets get started!

Open terminal in Linux and change your directory to the kernel. You do this by putting,
“cd” and then typing where your kernel source is then hit enter. My terminal looked like this:

Quote:
cd /home/shane/Desktop/SPH-D710_GB_Kernel


Step 3: Tell terminal where your tool chains you downloaded are located.

The kernel is compiled using a tool chain, and the terminal needs to know where the tool chain is to compile. (The tool chain is the folder called “arm-2009q3” )Start by typing this in the terminal:
Quote:
export CROSS_COMPILE=
Then after that put where your tool chain is located. Also when you are entering where it is at, you need to put a “/bin/arm-none-eabi-” at the end of the directory. This shows the terminal that the compiling tools are under the folder bin and starts with arm-none-eabi- and the android compilation adds the last word for the compiler program it needs. (you can see this if you go into the bin folder under the “arm-2009q3 folder.) For adding the tool chain I entered this:

Quote:
export CROSS_COMPILE=/home/shane/Desktop/arm-2009q3/bin/arm-none-eabi-
Then hit enter.

Step 4: Clean the kernel, enter configuration files and make the modules.

Enter this command:
Quote:
sudo make clean
Then enter password and hit enter.

Then it well say something like:
Quote:
make: /opt/toolchains/arm-2009q3/bin/arm-none-linux-gnueabi-gcc: Command not found
IGNORE THIS! It is just a fragment in a configuration file that says the toolchain is not in the default location. But, we changed the tool chain location in step 3 so it well compile correctly.

This cleans up and organizes the kernel for compilation.

Now enter this command in terminal:
Quote:
make c1_rev05_na_spr_defconfig
This is the configuration files for the epic touch 4g and well compile the kernel based off what is in these files.

Now were going to compile all the modules so wifi,vibration... work.
Enter this in terminal:
Quote:
make modules

Step 5: Moving the newly compiled modules to the initramfs/lib/modules folder.
We are now going to move the modules from the newly compiled modules to the initramfs files. So that wifi and vibration well be working in our kernel.

*Initramfs files are the root filesystem of the kernel and does processes the kernel can't do itself while its booting.

You can do this by terminal or by hand. We are just moving the modules to the initramfs to be used when compiling the kernel.
You can type this into terminal (Where it says “Path to initramfs” you need to replace with your own path to the initramfs folder + /lib/modules) :


Quote:
cp drivers/samsung/j4fs/j4fs.ko Path to initramfs/lib/modules
cp drivers/scsi/scsi_wait_scan.ko Path to initramfs/lib/modules
cp drivers/bluetooth/bthid/bthid.ko Path to initramfs/lib/modules
cp drivers/net/wireless/bcm4330/dhd.ko Path to initramfs/lib/modules
cp drivers/samsung/vibetonz/vibrator.ko Path to initramfs/lib/modules
cp drivers/staging/westbridge/astoria/switch/cyasswitch.ko Path to initramfs/lib/modules
This copies the new modules out of the kernel source and puts them in the initramfs/lib/modules folder to be used later.

Now once you enter that press enter.

Step 7: Compiling the android kernel with initramfs.

Type this in terminal:
Quote:
make -j5 CONFIG_INITRAMFS_SOURCE=Path to initramfs file

*Remember to replace the “path to initramfs file” with the path to the initramfs file.


Okay this well take anywhere from 5-15 mins. to compile depending on your system.

Step 8: Were done compiling, lets make something flashable for Odin!

Just type in terminal:
Quote:
cd arch/arm/boot/
Then type:
Quote:
tar cvf MyKernel.tar zImage
This well zip up the zimage (the kernel) you just compiled to something flashable in odin.

If you open up the kernel source file and go to arch/arm/boot you well see the zimage you compiled and, the Mykernel.tar file for Odin. Double check and right click on the zimage and make sure it is around 5-6 MB before flashing.


Step 9: Flashing to your phone.

Go to a windows computer and download Odin.(if you have rooted your phone using zedomax's method you should have it installed already)

Okay now open it up and place the Mykernel.tar file in the PDA section of Odin. Now download the drivers for your phone if you haven't.(I assume you already have.) Then put your phone in download mode (hold volume down button and power button on start up and push volume up button when the warning pops up) Now plug your phone into the computer and make sure “auto-reboot” is the only box checked in Odin. Hit start and your phone well be flashed with a kernel you compiled yourself! If you did this right your phone should start up. If it is stuck in a boot loop, immediately put back in download mode and flash to stock. Link available here to stock files:

http://forum.xda-developers.com/show....php?t=1409634
and, try to figure out what you did wrong while compiling and try again!

Good job you have finished!


Step 10: The future and your new phone!

I would like to include more android kernel mods and stuff in the future but, wanted to get this out there to get people familiar with the android compiling process. I want this guide to be something people reference as they start to develop, by using the methods here along with kernel and U.I mods on the platform being implemented in the future. My ultimate goal is to at least know I helped at least one person get into android development so, if I helped you please leave a reply or say thanks. If anyone has ideas to add to the post, please pm me.
Have fun developing!
The Following 84 Users Say Thank You to shanenielsen1234 For This Useful Post: [ Click to Expand ]
 
shanenielsen1234
Old
#2  
shanenielsen1234's Avatar
Member - OP
Thanks Meter 144
Posts: 52
Join Date: Jan 2012
Location: Temecula,CA

 
DONATE TO ME
I'll take this...
The Following 13 Users Say Thank You to shanenielsen1234 For This Useful Post: [ Click to Expand ]
 
shanenielsen1234
Old
#3  
shanenielsen1234's Avatar
Member - OP
Thanks Meter 144
Posts: 52
Join Date: Jan 2012
Location: Temecula,CA

 
DONATE TO ME
and this...
The Following 12 Users Say Thank You to shanenielsen1234 For This Useful Post: [ Click to Expand ]
 
shanenielsen1234
Old
#4  
shanenielsen1234's Avatar
Member - OP
Thanks Meter 144
Posts: 52
Join Date: Jan 2012
Location: Temecula,CA

 
DONATE TO ME
One more...
The Following 12 Users Say Thank You to shanenielsen1234 For This Useful Post: [ Click to Expand ]
 
chrisbass
Old
#5  
chrisbass's Avatar
Senior Member
Thanks Meter 100
Posts: 407
Join Date: Jun 2011
Location: Norwich
Awesome!!!! I have been patiently awaiting this. THANK YOU SOOO MUCH!!!!

Sent from my SPH-D710 using xda premium
The Following User Says Thank You to chrisbass For This Useful Post: [ Click to Expand ]
 
il buono
Old
#6  
il buono's Avatar
Senior Member
Thanks Meter 1,197
Posts: 2,447
Join Date: May 2011
Location: Tucson
Thank you! Definitely will be referring to this during my free time. Can't wait to see what else gets added


Sent from my SPH-D710 using xda premium
The Following User Says Thank You to il buono For This Useful Post: [ Click to Expand ]
 
hotspace
Old
#7  
hotspace's Avatar
Senior Member
Thanks Meter 287
Posts: 795
Join Date: Mar 2008
Awesome!! tyvm!!
The Following User Says Thank You to hotspace For This Useful Post: [ Click to Expand ]
 
Mr. Monkey
Old
#8  
Mr. Monkey's Avatar
Senior Member
Thanks Meter 4
Posts: 137
Join Date: Aug 2010
Location: South Jordan, Utah
Wow... How awesome is this? I have been looking for something like this for a long time. I will be watching for updates. Thank you very much.
The Following User Says Thank You to Mr. Monkey For This Useful Post: [ Click to Expand ]
 
Shoulon
Old
#9  
Senior Member
Thanks Meter 222
Posts: 1,891
Join Date: Apr 2008
Location: Venice, California
all u need now is a video tutorial
Are you new to XDA? Have a Question? Watch this video!
If I have helped you in anyway or anyone else for that matter. Click that thanks button!
 
patrick_1
Old
#10  
patrick_1's Avatar
Senior Member
Thanks Meter 88
Posts: 375
Join Date: Aug 2010
Location: Las Vegas, NV
My man!!! Thank you for this!!

Sent from this phone

Tags
android, compile kernel, development, kernel, source, sph-d710, wifi - haptik woes -_-
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes