Androidization of linux kernel

Home / Linaro Blog / Android / Androidization of linux kernel

I have always wondered how one should be applying the Android patches onto any Linux kernel. Recently I had to do the same stuff. Here is a short description on how I androidized the 3.2 Linux kernel. I have added the Android patches to 3.2 Linux kernel for Vexpress-rtsm. Since the kernel was close to the upstream kernel there were no merge conflicts luckily.

Here is the vanilla Linux kernel to which Android patches were added:

http://git.linaro.org/gitweb?p=people/dmart/linux-3-arm.git;a=shortlog;h=refs/heads/arm/vexpressdt-rtsm

Andy Green from the Landing team has provided a topic(linaro-androidization-tracking) branch for 3.2 Linux kernel:

http://git.linaro.org/gitweb?p=landing-teams/working/ti/kernel.git;a=shortlog;h=refs/heads/linaro-androidization-tracking

Androidization process was just 4 step process:

1. Clone the Linux kernel and create a branch for androidization :

git clone http://git.linaro.org/git/people/dmart/linux-3-arm.git  -b arm/vexpressdt-rtsm
git checkout -b android

2. Add the remote topic branch:

git remote add androidization git://git.linaro.org/landing-teams/working/ti/kernel.git

3. Fetch and rebase the kernel:

git fetch androidization
git rebase remotes/androidization/linaro-androidization-tracking

4. Add the necessary configs to the board-defconfig file to enable Android components in the kernel:

CONFIG_ASHMEM=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_LOGGER=y
CONFIG_ANDROID_RAM_CONSOLE=y
CONFIG_ANDROID_LOW_MEMORY_KILLER=y

Additionally I had to set “CONFIG_VMSPLIT_3G=y” for Android to boot on vexpress RTSM/Fastmodel.

The androidization patches are usually provided by Google but was not available for 3.2 kernel. For people working on 3.3 kernel, androidization patches are available from Google at:
https://android.googlesource.com/kernel/common.git for the Android-3.3 branch.

Recent Posts