Linux Kernel

From linux-sunxi.org
(Redirected from Linux)
Jump to: navigation, search

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

Contents

History

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.

Repository

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

You can clone this repository by running:

   git clone https://github.com/linux-sunxi/linux-sunxi.git

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.

Compilation

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 https://github.com/linux-sunxi/linux-sunxi.git

Configure

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

Build

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

Install

Now you have the following sitting in your kernel tree:

    arch/arm/boot/uImage
    output/lib/modules/3.4.XXX/

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

References

  1. https://github.com/allwinner/linux-2.6.36/
  2. Qware (dutch redistributor of Ployer Momo tablets) released the Android 4.0.3 (AOSP + kernel) code
Personal tools
Namespaces

Variants
Actions
Navigation
Tools