Hi,
I'm just starting to learn about how to compile and tweak a Linux kernel for Android devices. I'm using my old Xoom for testing. I've read a lot of tutorials/guides to build a kernel for Android, also I searched in the git history of the other kernels developed for the xoom (thanks for the developers!!) and I have a question that I can't answer. Maybe some of the kernel developers can answer it. What about the xoom's propietary drivers?
Basically I followed this guide https://source.android.com/source/building-kernels.html in order to get a kernel's image. Then I tested it and the Xoom boots and Android loads ok. Nowhere something about proprietary drivers is mentioned (https://developers.google.com/android/nexus/drivers#wingray). Are these drivers already loaded in the sources you can download from the first link?
The matter with the proprietary drivers is a lack of must guides and I want to know what's going on with drivers when you build the kernel sources for tegra devices.
Related
Hi there,
Now, I understand that there's a thread or two and a few web pages directed at compiling Android and its kernel from source.
However, the thread in question is months old, and didn't fully explain the process.
As for the web pages, they are mostly outdated and don't include enough information, not to mention desire specific instructions.
I think that, properly explained, building Android shouldn't be daunting, and everyone should be able to attempt it, if they wanted to.
So, I hope to compose a comprehensive guide on how to do just that.
The problem is that I myself have not been able to put enough instructions together to be able to complete a build. And there is no point digging up old threads.
So, If anyone who knows the ropes (that is, compiling android and a kernel from source) would be willing to lead the way, I'd happily turn it into an easy to understand guide.
Josh.
fllash said:
Hi there,
Now, I understand that there's a thread or two and a few web pages directed at compiling Android and its kernel from source.
However, the thread in question is months old, and didn't fully explain the process.
As for the web pages, they are mostly outdated and don't include enough information, not to mention desire specific instructions.
I think that, properly explained, building Android shouldn't be daunting, and everyone should be able to attempt it, if they wanted to.
So, I hope to compose a comprehensive guide on how to do just that.
The problem is that I myself have not been able to put enough instructions together to be able to complete a build. And there is no point digging up old threads.
So, If anyone who knows the ropes (that is, compiling android and a kernel from source) would be willing to lead the way, I'd happily turn it into an easy to understand guide.
Josh.
Click to expand...
Click to collapse
I followed this guide here and successfully compiled a modified HTC Kernel and I had very little Linux and Android experience.
Obviously instead of cloning the Cyanogen git, you just use the gits you wish to compile
Mekrel said:
I followed this guide here and successfully compiled a modified HTC Kernel and I had very little Linux and Android experience.
Obviously instead of cloning the Cyanogen git, you just use the gits you wish to compile
Click to expand...
Click to collapse
Thanks for the link
Though i don't fully understand the whole 'git' thing. Where do i find them? And how to i know which ones are the ones i want to use?
Josh
EDIT: Also, how do you 'edit' the kernel (i imagine it is somewhat like make menuconfig?). Also:
- Are these sense kernels?
- How do you add modules like OC and UV?
fllash said:
Thanks for the link
Though i don't fully understand the whole 'git' thing. Where do i find them? And how to i know which ones are the ones i want to use?
Josh
EDIT: Also, how do you 'edit' the kernel (i imagine it is somewhat like make menuconfig?). Also:
- Are these sense kernels?
- How do you add modules like OC and UV?
Click to expand...
Click to collapse
A git is a repository for source code, developers upload their source code there and can commit changes. The commit can allow descriptions of what was changed and also details the files changed.
The git system allows other people to add to the source if they have permission, or allows others to read the changes and download the source code.
Git links are usually posted by people who release software, as Android is GPL licensed so people have to release their source code if they're distributing their work.
Editing the kernel, take a look into the git and the commits and it will show you which files were changed and how exactly they were changed. That will give you the best understanding.
UV/OC is done by changing the acpu table in the architectures files and changing the minimum/maximum voltage figures in the board_bravo.c file.
The Cyanogen kernels are not Sense kernels no, it's a modified Google Kernel.
Thanks for the explanation. I followed the guide and built the rom, and it works (always a plus )
Now, the next thing is the kernel. How do I build a kernel with the CM tweaks integrated? I understand that all i would be doing is rebuilding the same one that is already installed, but im doing it to learn.
So, if i synced the GIT, does that include the CyanogenMOD kernel source? If it does, where is it and how do i rebuild it. If not, where do i find it?
Thanks,
Josh.
Nearly days I get an open souce code of i5800 and I just a new one in the compling world,so I hope someone can help me find something useful in configuring the code or some books useful.
If you have a qq number and our time are not rushed ,we can communicate in this way.(No facebook or twitter in china....How big the wall!)
My QQ number is 361180509
not sure I understood what you mean, do you have access to newer (froyo) kernel sources for I5800? if so, please do share
eclair kernel source is on opensource.samsung.com, and they compile just fine with the official Android toolkit, but Samsung's changes for Froyo are nowhere to be found (a few modules missing, touchscreen and accelerometer being the most notable), and the kernel doesn't compile anyway.
ze-m0n5t3r said:
not sure I understood what you mean, do you have access to newer (froyo) kernel sources for I5800? if so, please do share
eclair kernel source is on opensource.samsung.com, and they compile just fine with the official Android toolkit, but Samsung's changes for Froyo are nowhere to be found (a few modules missing, touchscreen and accelerometer being the most notable), and the kernel doesn't compile anyway.
Click to expand...
Click to collapse
Not sure if i get you right, do you say it does, or it does not compile? If not, we should request propper sources from Samsung.
sorry,I just don't find the offical source code website before posting this.Cause I just a freshman and I haven't got my PC....
maybe I'll compile the source code later.Sorry to make these mistakes.And I'm chnese.So my english is poor.....
Sent from my GT-I5800 using XDA App
FadeFx said:
Not sure if i get you right, do you say it does, or it does not compile? If not, we should request propper sources from Samsung.
Click to expand...
Click to collapse
eclair sources compile just fine, both with my system cross-compiling toolkit (arm-android-linux-gnueabi managed on gentoo by crossdev) and with the prebuilt one that comes with the Android platform
I might give it a try to actually boot it (but I would need to construct an initramfs, and it's a lot of work, and I kinda need to get back to "proper" work, I was consumed by Android during the last 3 weeks since I got the phone )
ze-m0n5t3r said:
eclair sources compile just fine, both with my system cross-compiling toolkit (arm-android-linux-gnueabi managed on gentoo by crossdev) and with the prebuilt one that comes with the Android platform
I might give it a try to actually boot it (but I would need to construct an initramfs, and it's a lot of work, and I kinda need to get back to "proper" work, I was consumed by Android during the last 3 weeks since I got the phone )
Click to expand...
Click to collapse
You can use the initramfs from Eclair.. I'm assuming you're talking about 2.1.. since 2.2 sources aren't out yet for this phone.
Link for the initramfs for Eclair is here: http://www.multiupload.com/U6GB5BB3HI
This is the JK1 I think - or whatever eclair rom I posted up previously
Hi All
I am a newbi to kernel programming , especially to android kernel.
Can you tell me some good places on the net , that can be great sources for getting in touch with that thing.
I want to become familiar with the android kernel , dalvic etc. ( I speak english and german )
thanks in advance.
Sz_gergo
I am too interested in this subject. I am learning slowly as and when I get time.
kernelnewbies.org
Generally good resource for starting out learning linux kernel
(Which is what the android is built off of)
android.git.kernel.org
Android Kernel Source
lwn.net/Kernel/LDD3/
Online guide to driver development among many other related topics.
pdk.android.com
This guide provides an under-the-hood introduction to the Android platform, and is designed for platform developers and manufacturers building Android-powered devices.
Sorry for not providing the links...xda won't allow me to post links since I have less posts.
Android kernel
Dear All
as i understand, the android kernel source, what you can download from Google , should be enough for building a new kernel to some phone.
If i am right, does that mean that the Linux kernel sources are already included?
Or am i totally wrong?
Thanks for your answers
I am also interested in learning the Kernel Development and ROM development. Can Any one Help.
sz_gergo;11673408 begin_of_the_skype_highlighting 11673408 end_of_the_skype_highlighting said:
Dear All
as i understand, the android kernel source, what you can download from Google , should be enough for building a new kernel to some phone.
If i am right, does that mean that the Linux kernel sources are already included?
Or am i totally wrong?
Thanks for your answers
Click to expand...
Click to collapse
I have the answere for the question above.
After i have inspected the Android kernel sources, it came out, that i have been right.The only source you need for creating a new kernel for a phone, is the complete android kernel.
The linux kernel is allready included.
I think if you want to build a kernel, specific for your phone. you have to overwrite the default dirs with the specific sources of your phone. If it is not allready done by others.
Android Kernel
Hi,
We need to distinguish between Linux and Android. Android was forked from Linux, and now those are managed as separate products. Android usually takes the updates from linux, but there are features in Android which Linux refused to get (such as wakelocks).
So the android kernel source includes all needed to build a working kernel.
Regarding community mods' efforts on porting ICS to all these devices that have no official ICS support (yet), I wonder why so many hardware does not work (see e.g. status of lg optimus 2x p990.
1.) Does ICS depend on so many new kernel features, that they can't use the old kernel of Android 2.3.x?
2.) Howcome the drivers in the 2.3.x's kernel are not available? The kernel is GPL, isn't it? So by distributing phones with Android, the manufacturers have to open-source their drivers. Is there no central Android kernel repository? Why don't they get drivers upstream?
Looks like you need to join this:
https://groups.google.com/forum/?fromgroups#!searchin/android-kernel/relation$20between$20android$20version$20and$20kernel
thorstenhirsch said:
2.) Howcome the drivers in the 2.3.x's kernel are not available? The kernel is GPL, isn't it? So by distributing phones with Android, the manufacturers have to open-source their drivers. Is there no central Android kernel repository? Why don't they get drivers upstream?
Click to expand...
Click to collapse
Correct, but they don't always do it -.-
Sent from my ice cream powered Nexus S
First post in the Dev section but this seemed to be the place to talk about kernel compilation and module development.
I have twice now, and am working on my third kernel compilation for the purposes of custom module building for the TF700 and the TF201.
The question I have has to do with the compilation process. Every time I have gone through this with the downloadable Asus Kernel zip I run in to several issues. Either missing references in code or portions that won't compile at all. Is this normal for kernel compilations? I would have thought that it would be fully compilable out of the box ( so to speak). Is it ASUS or just android/Linux in general that works out this way?
Is there a better way to do it? Should I use some generic source with the same version numbers? The current source is just not working at all. I am using an Ubuntu distro. Have the cross compile tools etc... but it just fails. I have already resolved two missing definition references and it just keeps on failing in new places
Hopefully this question doesn't offend developers. I have moved from WinPhone to here and want to better my understanding of how this should all work but need to start with some basics before I can make a meaningful contribution.
Thanks.
P.S... I looked and didn't find a "Compiling android kernels for dummies" book
hx4700 Killer said:
I looked and didn't find a "Compiling android kernels for dummies" book
Click to expand...
Click to collapse
"Dummies" doesn't write a book on kernel dev. Too wrapped up in telling people how to download iTunes.....
Use your "Google". And when you find it, Google XDA University.
There, you will find steps for setting a build environment and kernel and cross arm.
Understand, all kernels are different, but a good place to start. Plus, you learn how to use Google. An added bonus.
Oh... and... as an extra bonus, I will move this to Q & A, as this post has no development work attached. :silly:
MD
My question wasn't HOW to cross compile. I have done it.
My question is WHY are there so many errors that need correcting when compiling the ASUS downloadable kernels and if this is typical of the source from any device or just ASUS?
hx4700 Killer said:
The question I have has to do with the compilation process. Every time I have gone through this with the downloadable Asus Kernel zip I run in to several issues. Either missing references in code or portions that won't compile at all.
Click to expand...
Click to collapse
I had to fix exactly one pair of quotes vs. angle brackets somewhere in the RIL - get the patch pack from my kernel and apply the ril include fix. Then it should compile. If not, you are doing something wrong.
Can you post any links or names of everything ill need to get started on cross compiling a kernel for my tf700t I download the source and get my config.gz and am running a ubuntu distribution but if you could post a link to a tutorial that has detailed instructions that will work for the infinity that would be greatly appreciated thankyou
alexcass4 said:
Can you post any links or names of everything ill need to get started on cross compiling a kernel for my tf700t I download the source and get my config.gz and am running a ubuntu distribution but if you could post a link to a tutorial that has detailed instructions that will work for the infinity that would be greatly appreciated thankyou
Click to expand...
Click to collapse
Step 1: Get a suitable ARM toolchain. I can't help you here with Ubuntu because I'm using Gentoo and their crossdev tool (http://www.gentoo.org/proj/en/base/embedded/handbook/?part=1).
Step 2: Cross-compiling the kernel works just as for native kernels (make menuconfig, make), but you have to pass parameters to each make, e.g. make ARCH="arm" CROSS_COMPILE="arm-gentoo-linux-gnueabi-" (or whatever your toolchain is called)
Step 3: For the TF700-specific blob stuff I have written a detailed tutorial here: http://forum.xda-developers.com/showpost.php?p=36925180&postcount=4