page.title=Building Kernels
@jd:body

<!--
    Copyright 2015 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<div id="qv-wrapper">
  <div id="qv">
    <h2>In this document</h2>
    <ol id="auto-toc">
    </ol>
  </div>
</div>

<p>This page details how to build only the kernel. The following instructions
assume you have not downloaded all of AOSP; if you have already done so, you can
skip the <code>git clone</code> steps except the step that downloads the kernel
sources.</p>

<p>All examples in this section use the <code>panda</code> kernel.</p>

<h2 id="figuring-out-which-kernel-to-build">Figuring out which kernel to build</h2>
<p>This table lists the name and locations of the kernel sources and binaries:
<table>
  <tr>
    <th>Device</th>
    <th>Binary location</th>
    <th>Source location</th>
    <th>Build configuration</th>
  </tr>
  <tr>
    <td>angler</td>
    <td>device/huawei/angler-kernel</td>
    <td>kernel/msm</td>
    <td>angler_defconfig</td>
  </tr>
  <tr>
    <td>bullhead</td>
    <td>device/lge/bullhead-kernel</td>
    <td>kernel/msm</td>
    <td>bullhead_defconfig</td>
  </tr>
  <tr>
    <td>shamu</td>
    <td>device/moto/shamu-kernel</td>
    <td>kernel/msm</td>
    <td>shamu_defconfig</td>
  </tr>
  <tr>
    <td>fugu</td>
    <td>device/asus/fugu-kernel</td>
    <td>kernel/x86_64</td>
    <td>fugu_defconfig</td>
  </tr>
  <tr>
    <td>volantis</td>
    <td>device/htc/flounder-kernel</td>
    <td>kernel/tegra</td>
    <td>flounder_defconfig</td>
  </tr>
  <tr>
    <td>hammerhead</td>
    <td>device/lge/hammerhead-kernel</td>
    <td>kernel/msm</td>
    <td>hammerhead_defconfig</td>
  </tr>
  <tr>
    <td>flo</td>
    <td>device/asus/flo-kernel/kernel</td>
    <td>kernel/msm</td>
    <td>flo_defconfig</td>
  </tr>
  <tr>
    <td>deb</td>
    <td>device/asus/flo-kernel/kernel</td>
    <td>kernel/msm</td>
    <td>flo_defconfig</td>
  </tr>
  <tr>
    <td>manta</td>
    <td>device/samsung/manta/kernel</td>
    <td>kernel/exynos</td>
    <td>manta_defconfig</td>
  </tr>
  <tr>
    <td>mako</td>
    <td>device/lge/mako-kernel/kernel</td>
    <td>kernel/msm</td>
    <td>mako_defconfig</td>
  </tr>
  <tr>
    <td>grouper</td>
    <td>device/asus/grouper/kernel</td>
    <td>kernel/tegra</td>
    <td>tegra3_android_defconfig</td>
  </tr>
  <tr>
    <td>tilapia</td>
    <td>device/asus/grouper/kernel</td>
    <td>kernel/tegra</td>
    <td>tegra3_android_defconfig</td>
  </tr>
  <tr>
    <td>maguro</td>
    <td>device/samsung/tuna/kernel</td>
    <td>kernel/omap</td>
    <td>tuna_defconfig</td>
  </tr>
  <tr>
    <td>toro</td>
    <td>device/samsung/tuna/kernel</td>
    <td>kernel/omap</td>
    <td>tuna_defconfig</td>
  </tr>
  <tr>
    <td>panda</td>
    <td>device/ti/panda/kernel</td>
    <td>kernel/omap</td>
    <td>panda_defconfig</td>
  </tr>
  <tr>
    <td>stingray</td>
    <td>device/moto/wingray/kernel</td>
    <td>kernel/tegra</td>
    <td>stingray_defconfig</td>
  </tr>
  <tr>
    <td>wingray</td>
    <td>device/moto/wingray/kernel </td>
    <td>kernel/tegra</td>
    <td>stingray_defconfig</td>
  </tr>
  <tr>
    <td>crespo</td>
    <td>device/samsung/crespo/kernel</td>
    <td>kernel/samsung</td>
    <td>herring_defconfig</td>
  </tr>
  <tr>
    <td>crespo4g</td>
    <td>device/samsung/crespo/kernel</td>
    <td>kernel/samsung</td>
    <td>herring_defconfig</td>
  </tr>
</table>

<p>After determining the device project you want to work with, view the git log
for the kernel binary. Device projects use the form
<code>device/&lt;vendor&gt;/&lt;name&gt;</code>.</p>

<pre><code>$ git clone https://android.googlesource.com/device/ti/panda
$ cd panda
$ git log --max-count=1 kernel
</code></pre>

<p>The commit message for the kernel binary contains a partial git log of the
kernel sources used to build the binary. The first entry in the log is the most
recent (the one used to build the kernel). Make a note of the commit message
as you will need it in a later step.</p>

<h2 id="id-version">Identifying kernel version</h2>

<p>To determine the kernel version used in a system image, run the following
command against the kernel file:</p>

<pre><code>$ dd if=kernel bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' kernel | cut -d ':' -f 1) | zgrep -a 'Linux version'
</code></pre>

<p>For Nexus 5 (hammerhead), the command is:</p>
<pre><code>$ dd if=zImage-dtb bs=1 skip=$(LC_ALL=C od -Ad -x -w2 zImage-dtb | grep 8b1f | cut -d ' ' -f1 | head -1) | zgrep -a 'Linux version'
</code></pre>


<h2 id="downloading-sources">Downloading sources</h2>
<p>Download the source for the kernel you want to build using the appropriate
<code>git clone</code> command:</p>

<pre><code>$ git clone https://android.googlesource.com/kernel/common.git
$ git clone https://android.googlesource.com/kernel/x86_64.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
</code></pre>

<ul>
<li>The <code>goldfish</code> project contains the kernel sources for the emulated
platforms.</li>
<li>The <code>msm</code> project has the sources for ADP1, ADP2, Nexus One, Nexus 4, Nexus 5, Nexus 6,
Nexus 5X, Nexus 6P,
and can be used as a starting point for work on Qualcomm MSM chipsets.</li>
<li>The <code>omap</code> project is used for PandaBoard and Galaxy Nexus,
and can be used as a starting point for work on TI OMAP chipsets.</li>
<li>The <code>samsung</code> project is used for Nexus S,
and can be used as a starting point for work on Samsung Hummingbird chipsets.</li>
<li>The <code>tegra</code> project is for Xoom, Nexus 7, Nexus 9,
and can be used as a starting point for work on NVIDIA Tegra chipsets.</li>
<li>The <code>exynos</code> project has the kernel sources for Nexus 10,
and can be used as a starting point for work on Samsung Exynos chipsets.</li>
<li>The <code>x86_64</code> project has the kernel sources for Nexus Player,
and can be used as a starting point for work on Intel x86_64 chipsets.</li>
</ul>

<h2 id="downloading-a-prebuilt-gcc">Downloading a prebuilt gcc</h2>
<p>Ensure the prebuilt toolchain is in your path:</p>
<pre>$ export PATH=$(pwd)/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH</pre>
<p>or</p>
<pre>$ export PATH=$(pwd)/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6/bin:$PATH</pre>

<p>On a Linux host, if you don't have an Android source tree, you can download
the prebuilt toolchain from:
<pre>$ git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6</pre>

<h2 id="building">Building the kernel</h2>
<p>When you know the last commit message for a kernel and have successfully
downloaded the kernel source and prebuilt gcc, you are ready to build the
kernel. The following build commands use the panda kernel:</p>
<pre><code>$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd omap
$ git checkout &lt;commit_from_first_step&gt;
$ make panda_defconfig
$ make
</code></pre>

<p>To build a different kernel, simply replace <code>panda</code> with the name
of the kernel you want to build.</p>

<p>The kernel binary is output as <code>arch/arm/boot/&lt;kernel_name&gt;</code>
and can be copied into the Android source tree to build the matching boot image.
Alternatively, you can include the <code>TARGET_PREBUILT_KERNEL</code>
variable while using <code>make bootimage</code> (or any other make command line
that builds a boot image). This variable is supported by all devices
as it is set up via <code>device/common/populate-new-device.sh</code>. For
example:</p>

<pre><code>$ export TARGET_PREBUILT_KERNEL=$your_kernel_path/arch/arm/boot/zImage-dtb
</code></pre>

<p class="note"><strong>Note:</strong> Kernel names differ by device. To locate
the correct filename for your kernel, refer to
<code>device/&lt;vendor&gt;/&lt;name&gt;</code> in the kernel source.</p>
