This page introduce how you can download and compile the Android kernel for ODROID-U3/X2. To build the Android Kernel, we strongly recommend the gcc version 4.4.1 .

Click one of the site to download toolchain to build Linux kernel.

Once the download is done, extract the tarball to /opt/toolchains/.

$ sudo mkdir -p /opt/toolchains
$ unxz arm-2010q1.tar.xz
$ tar xvf arm-2010q1.tar
$ sudo mkdir /opt/toolchains
$ sudo mv arm-2010q1 /opt/toolchains/

In order to add the toolchain path to PATH, paste below lines to $HOME/.bashrc.

export PATH=$PATH:/home/odroid/adt-bundle-linux-x86_64-20140702/sdk/platform-tools:/opt/toolchains/arm-2010q1/bin
export ARCH=arm
export CROSS_COMPILE=arm-none-linux-gnueabi-

You can apply the change if you login again or import to apply this change, login again or evaluate $HOME/.bashrc with source command.

$ source ~/.bashrc

You can check if the toolchain installed above works properly while checking the version of toolchain. If you can find (Sourcery G++ Lite 2010q1-202) 4.4.1 at the end of the line, the toolchain is well installed.

$ source ~/.bashrc
$ $ arm-none-linux-gnueabi-gcc --version
arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2010q1-202) 4.4.1
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO

You can checkout Kernel source tree from Hardkernel's Github, Android platform source tree from Hardkernel's Github. Please note that we distribute the Linux kernel in different branches for Android and other Linux distributions.

Android Kernel

$ git clone --depth 1 -b odroid-3.0.y-android
$ cd linux

Android Platform

$ mkdir <Android Platform Folder Name>
$ cd <Android Platform Folder Name>
$ repo init -u -b 4412_4.1.2_master
$ repo sync
$ repo start 4412_4.1.2_master --all
$ mkdir <Android Platform Folder Name>
$ cd <Android Platform Folder Name>
$ repo init -u -b 4412_4.4.4_master
$ repo sync
$ repo start 4412_4.4.4_master --all
  • Visit this link to install the repo.

Before compiling, you must configure for ODROID-U3 with following command.

Android Kernel


$ make odroidu_android_422_defconfig
$ make
$ make odroidx2_android_422_defconfig
$ make


We've merged the Kernel source into the Android repo. Android build-script also includes the Kernel compile.

If you still want to compile only the kernel,

$ make odroidXX_android_442_defconfig
$ make

Android Platform


$ ./ odroidu


$ ./ odroidx2

There are different instructions to install Linux kernel image for Android and Linux. Since Android loads both from a kernel partition, we have to use fastboot to install into the dedicated partition. Please refer the partition table from here. In contrast, Linux boots by the instructions described in boot.ini the 1st FAT partition.

This is the instruction to install kernel image, zImage, to the boot card.

$ sudo fastboot flash kernel <path/of/your/zImage>

This is to install android platform files, system.img, userdata.img, cache.img.

$ sudo fastboot flash system <path/of/your/system.img>
$ sudo fastboot flash userdata <path/of/your/userdata.img>
$ sudo fastboot flash cache <path/of/your/cache.img>

If you want to initialize the FAT partition, run this command.

$ sudo fatboot erase fat