see this and thank me if i helped.
For build a kernel compatible with my device, what do I need ? module list (took from /sys/module) ? only or what else ?
Can I simple use device/generic/common/ source and then configure with module list from /sys/module?
You will want to look at the git log for the kernel binary
in the device project that you are interested in.
Device projects are of the form device/<vendor>/
<name>.
$ git clone https : //android.googlesource.com/device/ti/panda
$ cd panda
$ git log -- max - count= 1 kernel
The commit message for the kernel binary contains a
partial git log of the kernel sources that were used to
build the binary in question. The first entry in the log is
the most recent, i.e. the one used to build that kernel.
You will need it at a later step.
Identifying kernel version
To determine the kernel version used in a particular
system image, run the following command against the
kernel file:
$ dd if= kernel bs =1 skip = $ (LC_ALL = C grep - a -b - o $ '\x1f\x8b\x08\x00\x00\x00\x00\x00' k
For Nexus 5 (hammerhead), this can be accomplished
with:
$ bzgrep - a 'Linux version' vmlinux . bz2
Downloading sources
Depending on which kernel you want,
$ git clone https : //android.googlesource.com/kernel/common.git
$ git clone https : //android.googlesource.com/kernel/exynos.git
$ git clone https : //android.googlesource.com/kernel/goldfish.git
$ git clone https : //android.googlesource.com/kernel/msm.git
$ git clone https : //android.googlesource.com/kernel/omap.git
$ git clone https : //android.googlesource.com/kernel/samsung.git
$ git clone https : //android.googlesource.com/kernel/tegra.git
The goldfish project contains the kernel sources for
the emulated platforms.
The msm project has the sources for ADP1, ADP2,
Nexus One, Nexus 4, and can be used as a starting
point for work on Qualcomm MSM chipsets.
The omap project is used for PandaBoard and Galaxy
Nexus, and can be used as a starting point for work on
TI OMAP chipsets.
The samsung project is used for Nexus S, and can be
used as a starting point for work on Samsung
Hummingbird chipsets.
The tegra project is for Xoom and Nexus 7, and can
be used as a starting point for work on NVIDIA Tegra
chipsets.
The exynos project has the kernel sources for Nexus
10, and can be used as a starting point for work on
Samsung Exynos chipsets.
Downloading a prebuilt gcc
Ensure that the prebuilt toolchain is in your path.
$ export PATH = $ (pwd )/ prebuilts /gcc / linux - x86/ arm / arm -eabi- 4.6 /bin : $PATH
or
$ export PATH = $ (pwd )/ prebuilts /gcc / darwin- x86 /arm / arm - eabi-4.6 / bin: $PATH
On a linux host, if you don't have an Android source
tree, you can download the prebuilt toolchain from:
$ git clone https : //android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-ea
Building
As an example, we would build the panda kernel using
the following commands:
$ export ARCH = arm
$ export SUBARCH = arm
$ export CROSS_COMPILE = arm - eabi-
$ cd omap
$ git checkout <commit_from_first_step>
$ make panda_defconfig
$ make
To build the tuna kernel, you may run the previous
commands replacing all instances of "panda" with
"tuna".
The kernel binary is output as: `arch/arm/boot/zImage`
It can be copied into the Android source tree in order
to build the matching boot image.
Or you can include the TARGET_PREBUILT_KERNEL
variable while using make bootimage or any other
make command line that builds a boot image.
$ export TARGET_PREBUILT_KERNEL =$your_kernel_path / arch/arm / boot/ zImage
That variable is supported by all devices as it is set up
via device/common/populate-new-device.sh