ODROID U2
The [ODROID U2 ] is an ARM development board, featuring a 1.7 GHz quad-core CPU (ARMv7a). This document contains notes about installing Funtoo Linux on this device.
Contents |
Preliminary discussion
The ODROID-U2 needs u-boot as a bootloader, and at the time of writing this document, the required sources are not available. Some forum posts seem to indicate that they were once available, but other posts say that it never worked.
Some distributions (Ubuntu for example) already have SD-card images for the U2. This means that somebody has (or had) found the necessary information. To keep tracks, the last section will show how working Ubuntu was used to bootstrap this Funtoo installation. The other sections will be edited after a better solution is found.
The following sections are a work-in-progress and following them will fail to work. Please see the last section.
Micro-SD Card Preparation
First, create the partition structure to suit your needs. In this example, there is a 100 MB boot partition, a 1 GB swap partition, and the remaining partition is for the root filesystem.
The bootloader requires some of the space that is available at the beginning of the device. Keep at least 10 MB free on the beginning of the device.
Partition Table for /dev/sdc
First Last # Type
Sector Sector Offset Length Filesystem Type (ID) Flag
-- ------- ----------- ----------- ------ ----------- -------------------- ----
Pri/Log 0 40959* 0# 40960*Free Space None
1 Primary 40960* 245759* 0 204800*W95 FAT32 (LBA) (0C) Boot
2 Primary 245760* 2342911* 0 2097152*Linux swap / So (82) None
3 Primary 2342912* 15661055* 0 13318144*Linux (83) None
------------------------------------------------------------
sdc1 is formatted as FAT32, sdc2 as swap and sdc3 as ext4.
Note that the boot partition must be the first one, and that its filesystem should be FAT32 or ext2 (not tested).
Funtoo Linux Installation
Follow the guide from [Funtoo_Linux_Installation_on_ARM] for
Kernel and Bootloader
Cross-compiler installation
In order to compile the Linux kernel for the ODROID U2, an ARMv7a hardfloat toolchain is needed. Install it using crossdev:
# emerge crossdev # crossdev -v -t armv7a-hardfloat-linux-gnueabi (also add -S if you want a stable toolchain)
Bootloader
The bootloader to use with the ODROID U2 is u-boot. Sources are not available yet. Source code present on hardkernel's github repository is not functional at the time of writing this page.
To be continued... All repositories containing u-boot do not work. A binary version has been found, but not tested yet.
Kernel Compilation an Installation
The kernel for the ODROID U2 can be directly compiled from the sources, given by hardkernel. Note that there are several branches (odroid-3.0.y, odroidx-3.6.y and odroid-next when this page was written), but we will stick with the default branch as it provides a defconfig for a simple start.
# cd ../odroid_u2 # git clone https://github.com/hardkernel/linux.git # cd linux # ARCH=arm make odroidu2_ubuntu_defconfig # ARCH=arm CROSS_COMPILE=/usr/bin/armv7a-hardfloat-linux-gnueabi- make -j8 (adapt depending on the number of cores available on the build machine) # ARCH=arm CROSS_COMPILE=/usr/bin/armv7a-hardfloat-linux-gnueabi- make modules_install INSTALL_MOD_PATH=/mnt/SD_root
Bootstrapping a Funtoo installation using Ubuntu
[Ubuntu for ODROID-U2] is a port of Ubuntu working on the ODROID-U2. They provide a working SD-card image that already contains the necessary first bits of information (u-boot image) on the beginning of the SD-card, a fat32 boot partition with boot files, and an ext4 partition for Ubuntu root filesystem.
The following steps are inspired by [work of kripton that provides a Gentoo SD-card image].
We will use it to bootstrap a Funtoo installation, and try to find a better solution in the future.
1. Download a SD-card image from [[1]]. 2. Extract it if it's compressed. 3. Run dd if=name_of_image of=/dev/your_sd_card_device
After a while, this should give you the following partition table:
Partition Table for /dev/sdc
First Last
# Type Sector Sector Offset Length Filesystem Type (ID) Flag
-- ------- ----------- ----------- ------ ----------- -------------------- ----
Pri/Log 0 3071* 0# 3072*Free Space None
1 Primary 3072* 68607* 0 65536*Linux (83) None
2 Primary 68608* 11472895* 0 11404288*Linux (83) None
Pri/Log 11472896* 15661055* 0 4188160*Free Space None
------------------------------------------------------------