Linux Kernel

(Redirected from Linux)
Jump to: navigation, search

This page describes how to get the sunxi specific linux kernel built for your device.



Public Linux Kernel support for the sunxi family (Allwinner A10, A13, ...) started with a source drop of 2.6.36 made by Ainol, followed by an official release of 2.6.36[1] sources by Allwinner. Developement jumped forward after a source release of 3.0.8 made by Qware[2]

Initially living in amery's github now our community driven sunxi kernel repo is located in the linux-sunxi's github.


The main sunxi kernel repository is available at our projects github.

You can clone this repository by running:

   git clone

Kernel versions

There are several branches in our kernel tree. Unless you wish to do some specific development, you should probably stick to the sunxi-3.4 branch as this will get the most out of your hardware quickly.

Name State Description
sunxi-3.0 stable sunxi support initially based on lichee3-3.0.8 and keeping reference-3.0 as it's mainline reference.
sunxi-3.4 stable sunxi support forward ported from sunxi-3.0 and keeping reference-3.4 as it's mainline reference. [PREFERRED]
experimental/sunxi-3.10 experimental sunxi support forward ported from sunxi-3.4, backporting from mainline and keeping reference-3.10 as it's mainline reference.
sunxi-2.6.36 legacy sunxi support based on the official 2.6.36 release.
reference-3.0 reference merge of mirror/android-3.0 and the latest v3.0.x mainline stable tag. Used to see what of sunxi-3.0 is sunxi specific.
reference-3.4 reference merge of mirror/android-3.4 and the latest v3.4.x mainline stable tag. Used to see what of sunxi-3.4 is sunxi specific.
reference-3.10 reference merge of mirror/android-3.10 and the latest v3.10.x mainline stable tag. Used to see what of sunxi-3.10 is sunxi specific.
mirror/allwinner-2.6.36 mirror mirror of allwinner's official 2.6.36 tree (aka lichee2)
mirror/android-2.6.36 mirror mirror of Android's kernel-common for Android 2.3 (Gingerbread)
mirror/android-3.0 mirror mirror of Android's kernel-common for Android 4.0 (Ice Cream Sandwich), 4.1 (Jelly Bean)
mirror/android-3.4 mirror mirror of Android's 3.4 kernel branch.
mirror/android-3.10 mirror mirror of Android's 3.10 kernel branch.
mirror/master mirror mirror of Linus Torvalds' master.
lichee-3.0.8-sun4i compat based on Qware's source release, kept only to let people drop-in new modules into a GPL-violating lichee3/A10 based install.
wip/* WIP experimental and very likely to 1) be rebased, 2) be seriously broken

If unsure, use the sunxi-3.4 branch.


Get a toolchain

If you haven't done so before, get a suitable toolchain installed and added to your PATH.

Clone the repository

git clone -b sunxi-3.4


For A10 use:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun4i_defconfig

For A13 use:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun5i_defconfig

For A20 use:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun7i_defconfig

At this point you can fine-tune your kernel configuration by running:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig


make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules

The -j4 option runs 4 make instances in parallel to speed up compilation. Please adjust this to the number of CPUs available.

As a final step, create the full module tree:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install


Now you have the following sitting in your kernel tree:


The uImage file needs to be started by u-boot, and the modules directory needs to be copied to the /lib/modules on the target rootfs.

Upstream code

There is some sunxi code available in Linus' tree. But this is not suited for normal use yet, and will likely need a lot more work to get there. For more information, see our mainline kernel howto.

External links


  2. Qware (dutch redistributor of Ployer Momo tablets) released the Android 4.0.3 (AOSP + kernel) code
Personal tools