U-Boot (2017.09)

Required packages

Before building kernel for Odroid Go advance on Ubuntu desktop, you need to install the required packages as follows.

$ sudo apt-get update &&\
sudo apt-get install -y git lzop build-essential gcc \
    bc libncurses5-dev libc6-i386 lib32stdc++6 zlib1g:i386

Toolchain (6.3.1)

Download toolchain and extract the tarball to /opt/toolchains/.

$ sudo mkdir -p /opt/toolchains &&\
wget https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz &&\
sudo tar Jxvf gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz -C /opt/toolchains/

To set up information for compilation, paste below lines to $HOME/.bashrc.

export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export PATH=/opt/toolchains/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/:$PATH

Execute the below command to apply the setting.

$ source ~/.bashrc

Check the toolchain version to confirm compatibility.

$ aarch64-linux-gnu-gcc -v
...
COLLECT_LTO_WRAPPER=/opt/toolchains/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/../libexec/gcc/aarch64-linux-gnu/6.3.1/lto-wrapper
...
gcc version 6.3.1 20170109 (Linaro GCC 6.3-2017.02)

Checkout & Compile

You can checkout U-Boot source tree from Hardkernel's Github.

$ git clone https://github.com/hardkernel/u-boot.git -b odroidgoA-v2017.09

Using a script make.sh, you can configure ODROID-GO-Advanced board of U-Boot.

$ cd u-boot
$ ./make.sh odroidgo2

Then, you will have the following img files in sd_fuse folder.

  • idbloader.img
  • uboot.img
  • trust.img

Be careful! Please check the device path of your USB card reader before running the instruction.

We provide the script, u-boot/sd_fuse/sd_fusing.sh and this helps you to install bootloaders into your blank SD card.

  1. Plug the Boot-Device (SD card) into the USB memory CARD reader and connect the USB memory card reader to your HOST PC (Linux OS).
  2. Check the device path of your USB card reader.
  3. Run this command to flash binaries into your SD card.
$ cd sd_fuse
$ ./sd_fusing.sh <device/path/of/your/card>

Here is an example.
If a device node of your USB card reader is assigned at /dev/sdc, install command will be as following.

$ cd sd_fuse
$ ./sd_fusing.sh /dev/sdc
Partition start size requirement
sector bytes sector bytes
mbr 0 0 1 512 -
idbloader 1 512 8191 4M - 512 idbloader.img
uboot 16384 8M 8192 4M uboot.mg
trust 24576 12M 8192 4M trust.img
vfat 32768 16M 229376 112M /dev/mmcblk1p1
rootfs 262144 128M - - /dev/mmcblk1p2