android kernel compilation - Android Q&A, Help & Troubleshooting

Hi,
I gitted the android source and I successfully built a zip using cyanogenmod 9's repo. However, I am curious to know where the kernel was being generated. I searched through the whole thing and I couldn't find the kernel source in the android source anywhere. Is this something that is pre-compiled and saved as a zImage? I really want to replace this zImage with my own compiled one but I am not sure how to merge the android source and the kernel source into one thing.
Thanks guys,
I know this is fairly noobish but whatevs...

nevermind...Found it in device/htc folder...

Related

[Q] Compiling the newly released p500 gingerbread source code?

I want to try and compile the oficial gb sources, mainly out of curiosity, but I would love having some clues on how to achieve it.
I'm a coder myself, but I don't know **** about android development. I guess I have to start by installing android sdk but then what? Any hints? A link to a begginer's guide or something would be great.
Sure I can find this info on google (starting the research right now) but maybe you guys can point me into the right direction.
Edit: I've found basic build instructions right inside the ZIP file containing the sources:
Code:
1. Android buid
- Download original android source code (gingerbread) from http://source.android.com
- Untar opensource packages of p500_gb_open_source.tar.gz into downloaded android source directory
- And, merge the source into the android source code(gingerbread)
- Run following scripts to build android
a) . build/envsetup.sh
b) make -j4
- When you compile the android source code, you have to add google original prebuilt source(toolchain)
into the android folder
( add prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin to PATH )
- After build, you can find output at out/target/product/generic
2. Kernel Build
- When you compile the kernel source code, you have to add google original prebuilt source(toolchain)
into the android folder.
( Add prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin to PATH
ex) export PATH=$PATH:$HOME/gb_original/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin )
- Untar using following command at the android folder
tar zxvf kernel.tar.gz
- cd Kernel
- make thunderg-perf_defconfig
- make zImage -j4
3. After Build, You Can find the build image at arch/arm/boot
4. Compile environment
- gcc 4.4.1
- Ubuntu 10.10
- Java 1.6.0_22
I'll continue researching and will post any finds and my progress here if there's anyone interested. Meanwhile you can contribute with anything you can and by the end we may have a good tutorial out of it.
Look at first post from Andy's Gingerbread, he describes what you need.
No need to install Android SDK.
I take sources from codeaurora, merge with LG-source.
drakull said:
I want to try and compile the oficial gb sources, mainly out of curiosity, but I would love having some clues on how to achieve it.
I'm a coder myself, but I don't know **** about android development. I guess I have to start by installing android sdk but then what? Any hints? A link to a begginer's guide or something would be great.
Sure I can find this info on google (starting the research right now) but maybe you guys can point me into the right direction.
Edit: I've found basic build instructions right inside the ZIP file containing the sources:
Code:
1. Android buid
- Download original android source code (gingerbread) from http://source.android.com
- Untar opensource packages of p500_gb_open_source.tar.gz into downloaded android source directory
- And, merge the source into the android source code(gingerbread)
- Run following scripts to build android
a) . build/envsetup.sh
b) make -j4
- When you compile the android source code, you have to add google original prebuilt source(toolchain)
into the android folder
( add prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin to PATH )
- After build, you can find output at out/target/product/generic
2. Kernel Build
- When you compile the kernel source code, you have to add google original prebuilt source(toolchain)
into the android folder.
( Add prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin to PATH
ex) export PATH=$PATH:$HOME/gb_original/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin )
- Untar using following command at the android folder
tar zxvf kernel.tar.gz
- cd Kernel
- make thunderg-perf_defconfig
- make zImage -j4
3. After Build, You Can find the build image at arch/arm/boot
4. Compile environment
- gcc 4.4.1
- Ubuntu 10.10
- Java 1.6.0_22
I'll continue researching and will post any finds and my progress here if there's anyone interested. Meanwhile you can contribute with anything you can and by the end we may have a good tutorial out of it.
Click to expand...
Click to collapse
Forget about this. LG did not released Android soures. There are kernel only.
Damn... are you sure, Mik?
Have you looked inside the zip? There's 2 tarballs, one for the Kernel and other reading 'p500_gb_open_source.tar.gz'. I tought it was the p500 gb android source files that needs to be merged with the main source code.
Well... that's a real shame.
drakull said:
Damn... are you sure, Mik?
Have you looked inside the zip? There's 2 tarballs, one for the Kernel and other reading 'p500_gb_open_source.tar.gz'. I tought it was the p500 gb android source files that needs to be merged with the main source code.
Well... that's a real shame.
Click to expand...
Click to collapse
it is on GB, and it was on FROYO - LG didnt release the complete source code,
only some modifications to the android sources - because not all parts of android
are GPLv1, they doesnt MUST release sources for this parts these arent of GPLv2 or GPLv3 in some cases ...
andy572 said:
it is on GB, and it was on FROYO - LG didnt release the complete source code,
only some modifications to the android sources - because not all parts of android
are GPLv1, they doesnt MUST release sources for this parts these arent of GPLv2 or GPLv3 in some cases ...
Click to expand...
Click to collapse
AFAIK Even with froyo LG didn't publish the WHOLE source,only pieces of it (AFAIK).
I'm still downloading sources from codeaurora, as soon as it's finished I'll merge the changes and we'll see what happens
_Arjen_ said:
I'm still downloading sources from codeaurora, as soon as it's finished I'll merge the changes and we'll see what happens
Click to expand...
Click to collapse
I can't even download sources,my internet connection freezes everytime I download something (only if speed goes above 350KB/s),so no Eclair build for meh . Gonna kill Telecom Italia soon
Viva l'Italia
_Arjen_ said:
Viva l'Italia
Click to expand...
Click to collapse
Ahaha lol I do love my country but internet services suck
_Arjen_ said:
I'm still downloading sources from codeaurora, as soon as it's finished I'll merge the changes and we'll see what happens
Click to expand...
Click to collapse
sounds like "i download as fast as i can the sources, do a "make gingerbread"
in the command line and release a build to megaupload.com...
i can say, there is a very small knowledge of how to build a android system from source - you need a lot of hours to get the system compiled so that most stuff
is working^^
andy572 said:
sounds like "i download as fast as i can the sources, do a "make gingerbread"
in the command line and release a build to megaupload.com...
i can say, there is a very small knowledge of how to build a android system from source - you need a lot of hours to get the system compiled so that most stuff
is working^^
Click to expand...
Click to collapse
I know that Andy
I'm not stupid
But you need to download sources and merge LG sourcecode before you can start anyway
So far the simple . build/envsetup.sh, lunch and make seem to work fine with 2.3.4 source, after compiling is complete we'll see if I got a working rom.
If al works fine I can start to modify and build again, so I've got hours and hours of mostly waiting
_Arjen_ said:
I know that Andy
I'm not stupid
But you need to download sources and merge LG sourcecode before you can start anyway
So far the simple . build/envsetup.sh, lunch and make seem to work fine with 2.3.4 source, after compiling is complete we'll see if I got a working rom.
If al works fine I can start to modify and build again, so I've got hours and hours of mostly waiting
Click to expand...
Click to collapse
Lol, look to my sources and compare it to lg's. Theren are nothing usefull except kernel.
After compiling you'll get default android that probably can start in emulator
mik_os said:
Lol, look to my sources and compare it to lg's. Theren are nothing usefull except kernel.
After compiling you'll get default android that probably can start in emulator
Click to expand...
Click to collapse
I love your sources because they gave me some really useful infos
mik_os said:
Lol, look to my sources and compare it to lg's. Theren are nothing usefull except kernel.
After compiling you'll get default android that probably can start in emulator
Click to expand...
Click to collapse
Nope, it runs on the phone,
did similar thing to build eclair (needed to change some things before I could build) and got it booting to our phone with froyo kernel, only a little hacking needed to get all working. Only gsm and bluetooth are not yet fully working on eclair, other things seem fine so far.
but will take a look at your sources, because you could be right there are better ways
Edit:
GB building is ready and working fine after flashing (using new baseband)
Just tried this because it was fun. Now I'm going back to get eclair fully working
The only GB-build I want to use is CM7, no-one needs just another GB while we have three good ones: Miks CM7, Andy's GB/CM7 and Noejns void #forever and with Franco's kernel these builds rock
Sorry Ciaox, forgot your coming GB-rom

[Q] How to compile kernel?

Can anyone perhaps provide a tutorial of how to compile an HTC kernel? I have experience in compiling kernels for Android but it was for the Samsung Moment, a very different beast both in hardware and software setups.
read this http://forum.xda-developers.com/showthread.php?t=1039854
kernel compiling in less than 10 sentences:
great place to start is forking toastcfh's evo 3d kernel source - https://github.com/toastcfh/htc-8660-kernel
using the aosp toolchain (repo sync aosp in the prebuilt dir) and compiling.
once you have the zImage, merge it up with a ramdisk. i'd probably start with the stock kernel's ramdisk. that will give the boot.img to flash.

[Q] Where to start for Android Kernel Development?

Hello Guys,
I see a lot of threads for starting with android rom development, but can anyone give me pointers for kernel development? I would like to start kernel development and do not know where to start. I am not interested in rom development at the moment, but that is because I assume that the android rom is like a user space app over the kernel. Please correct me if I am wrong. It would be great if you guys could point me to some beginner friendly kernel development tutorials. I am looking through Linux Device Drivers (LDD) book but am having a hard time comparing that with android. I have cloned mediatek 6589 source from android repository. I am submitting partial url cos I am not allowed to submit full url yet. URL(android.googlesource.com/kernel/mediatek/+/android-5.1.0_r0.2) since I am running a mtk6589 device (Walton X1/ Gionee Dream D1) and would like to understand where to start coding kernels for android. Any help would be greatly appreciated.
Oh and I would like mediatek specific help if possible. I have gone through some of the general kernel building and overclocking tutorials. I want to do some more enhancements if possible. Since mediatek seems to be the mysterious one with bare minimum source availability, I would like to take up that challenge
Thanks.
I don't have a tutorial for you but a small checklist. You need:
* Kernel source tree
* A config for your device (e.g. arch/arm/configs/*defconfig*)
* A cross compiler toolchain to generate ARM code (you can use the precompiled one from the Android source tree)
* A way to package your kernel into a boot image for your device - usually an Android boot image contains a compiled kernel (zImage), a compressed ramdisk for the root filesystem, and probably a device tree binary (dtb). Mediatek may do things differently.
* A way to install that boot image on your device - this requires an unlocked bootloader that allows custom boot images to be installed and started. Most devices use the fastboot tool for this.
Your first step should be to build a working kernel from unmodified sources. When you got that working, you can think about starting actual coding.
Thanks for the Pointer Mate
_that said:
I don't have a tutorial for you but a small checklist. You need:
* Kernel source tree
* A config for your device (e.g. arch/arm/configs/*defconfig*)
* A cross compiler toolchain to generate ARM code (you can use the precompiled one from the Android source tree)
* A way to package your kernel into a boot image for your device - usually an Android boot image contains a compiled kernel (zImage), a compressed ramdisk for the root filesystem, and probably a device tree binary (dtb). Mediatek may do things differently.
* A way to install that boot image on your device - this requires an unlocked bootloader that allows custom boot images to be installed and started. Most devices use the fastboot tool for this.
Your first step should be to build a working kernel from unmodified sources. When you got that working, you can think about starting actual coding.
Click to expand...
Click to collapse
Thanks man. Really appreciate the pointers. I do have some of the checklists done. Like
* Kernel source tree
** A cross compiler toolchain to generate ARM code (using the precompiled one)
* A way to install that boot image on your device
Now the problem is, my device still does not have its source code available. I got the general source tree from google which is not my device's so I dont have the defconfig. Is there a way to rip it out from a compiled kernel? Like using some sort of a decompiler? Also I will look around for zimage packaging tools. Thanks mate. Mediatek is apparently one hell of a problem child XD
syko_kickass said:
Now the problem is, my device still does not have its source code available. I got the general source tree from google which is not my device's so I dont have the defconfig. Is there a way to rip it out from a compiled kernel? Like using some sort of a decompiler? Also I will look around for zimage packaging tools.
Click to expand...
Click to collapse
If you're lucky, your existing kernel exposes its config in the file /proc/config.gz. If not, I don't know how to get a matching config - best is to avoid buying anything from GPL violators.

Porting AOSP issues

Hello,
I'm a beginner with building ROMs, yet I found an interest in build an AOSP for a phone(mi4c). I found the kernel sources released by the vendor, but I am trying to figure out the next steps: creating a device tree and getting the vendor blobs.
As I could check the kernel if for 5.1(managed to build it), and I would like to try to make that - AOSP 5.1.
Is there any way to extract the device tree from kernel(I found some device tree on git, yet I would like to know if there is another way to create it)?
for vendor blobs and which are required I found some information here on xda, but haven't tested so far.
Thanks!

Need help with errors when compiling kernel from source.

So, I recently got a ASUS Zenfone 4 Selfie Pro, the phone is stuck on android 7.1 and doesn't have any roms, nothing, just TWRP. So I'm on a journey trying to build stuff for this device from the ground up, I already made a device tree based on Zenfone 3 (which has the same SoC) and I tried to build lineage/cyanogenmod 14.1 for it and got a lot of kernel errors, so I went to try to compile the kernel from the source ASUS gave on their website and uploaded it to my github. In this past 3 days was able to fix and workaround some of the errors I got while building, but now I'm stuck on this one: https://hastebin.com/iqisuzegeg.coffeescript | any help would be greatly apreciated .
For easier access to the kernel source I uploaded it to my github and made some fixes/workarounds for some errors: https://github.com/2003Frost/android_kernel_asus_Z01M_stock
I'm using Linaro 7.5.0 as arm64 toolchain.
I'm using Zorin OS 15.2 as OS.
If any more information is needed I'll be glad to give out.
0
Seppppx said:
Hmm. There is probably no definition for 'drivers/platform' and 'drivers/platform/msm' . But there is a reference (probably). Also have you tried to build the kernel with the defconfig "the manual way". If there is something wrong with the kernel I have almost no way of helping you because I'm not a real developer.
EDIT : There is a kernel source for your phone that on a developer's github https://github.com/shakalaca/android_kernel_asus_zd552kl . That is also the person who is the maintainer for official twrp. He has some large commits on the kernel so his kernel should build.
Click to expand...
Click to collapse
I already tried his kernel and got the same exact error :/
I didn't understand fully what you said with "the manual way" but I'm trying to compile the kernel outside the rom build environment, by using my device's defconfig and compiling with linaro.
0
Seppppx said:
By the manual way I mean the with the defconfig. Also I made a pull request to your Device Tree (adds persist partition and Shakalaca's kernel).
Also if you're trying to build with defconfig there is a tutorial by google. https://source.android.com/setup/build/building-kernels-deprecated .
After that you will have to put it to the boot image. Another guide for that. https://source.android.com/setup/build/building-kernels#embedding-into-Android .
Edit : Isn't the Android kernel build with the defconfig when you run a source build? I think it actually builds the kernel when you build android so you don't build the kernel separately.
Click to expand...
Click to collapse
I accepted your pull request. Yes when you build a rom from source it also compiles the kernel, but I wasn't able to build the rom because it gave me kernel errors, so I went and started compiling separately because it's easier to fix kernel errors like this.
I am not using Google's tutorial, I'm following one that has almost the same steps and I'm using the same toolchain.
0
Seppppx said:
By toolchain you mean tools that you need to compile a kernel? Why doesn't one just install the tools needed to compile a kernel source.
The guide I linked doesn't specify any toolchain (thus idk if I need one). It also doesn't have anything to do with build.sh script used to compile a kernel. Instead it uses the defconfig. The commands are actually very simple.
cd kernel-source_code
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-android-
make ZD552KL-Phoenix_defconfig
make
Also have you tried to build another kernel that you are sure builds? If another kernel builds. The issues have to do something with the kernel itself. If it does not it's most likely something else.
Click to expand...
Click to collapse
To compile a kernel from source you need something a cross compiler or toolchain in my case I'm actually using the exact same commands you commented with linaro toolchain/cross compiler (aarch64-linux-android). As far as I know you need that to compile a kernel and I don't think the toolchain is the problem but the kernel itself. I can try another kernel later to see if it compiles.
0
Seppppx said:
Okay thanks!
If you manage to compile the kernel for your device make sure to mention/quote me. I would like to contribute. I'm on my way to make another pull request (now about cameras).
Click to expand...
Click to collapse
If you want to talk to me more quickly you can message me on telegram https://t.me/Frost_2003
0

Categories

Resources