How to Build Linux for the Allwinner A80 Optimusboard

posted in: ARM Servers | 2

With the recent leak of an SDK for the Allwinner A80 ARM processor, it is now possible to build Linux for the Optimusboard.  However, the SDK does not appear to be a final build, and has quite a few bugs that have to be squashed before the build will successfully complete.  Here are the steps required to get the Linux build to finish:

First, we have to download and extract the SDK from the Linux-Sunxi website:  http://dl.linux-sunxi.org/SDK/A80/A80_SDK_20140728_lichee.tar.gz

tar -xvf A80_SDK_20140728.tar.gz
cd lichee
./build.sh config

I have selected the following options:

@ubuntu:~/A80/lichee$ ./build.sh config
Welcome to mkscript setup progress
All available chips:
0. sun9iw1p1
Choice: 0
All available platforms:
0. android
1. dragonboard
2. linux
Choice: 2
All available kernel:
0. linux-3.4
Choice: 0
All available boards:
0. optimus
1. p1
2. perf
3. perf5
4. perf-lpddr3
Choice: 0

gedit lichee/buildroot/toolchain/toolchain-external/ext-tool.mk

In the last section, where the external toolchains are defined, update Line 127 to read:
TOOLCHAIN_EXTERNAL_SITE=http://www.mininodes.com/

./build.sh
gedit /lichee/out/sun9iw1p1/linux/common/buildroot/build/host-m4-1.4.15/lib/stdio.h

Edit Line 456, and change ‘gets’ to ‘fgets’

./build.sh

Download http://www.mininodes.com/fuse-exfat-0.9.5.tar.gz

tar -xvf fuse-exfat-0.9.5.tar.gz

Copy the contents to /lichee/out/sun9iw1p1/linux/common/buildroot/build/fuse-exfat-0.9.5

./build.sh
gedit /lichee/out/sun9iw1p1/linux/common/buildroot/.config

Edit Line 72, to point to miniNodes.com.
BR2_BACKUP_SITE=”http://www.mininodes.com/

./build.sh

Download http://www.mininodes.com/rzsz-3.48.tar.gz, and then copy it to /lichee/buildroot/dl/

./build.sh

The build should now complete successfully. Next time, we will discuss getting the newly built Linux written to an SD Card and boot up the Optimusboard straight to Linux!

Credit for many of the packages that we needed to self-host go to Qubir, who had the exact versions we needed for an A20 board he had hosted on https://github.com/qubir/phoenixA20_buildroot_sourcecode/tree/master/dl

2 Responses

  1. […] we discussed how to build Linux for the new Allwinner A80 Optimusboard ARM Microserver using the SDK.  Now, let’s go through the process of installing it to the board and getting […]

  2. Peter Teoh

    est -z “/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/host/usr/share/autoconf” || /bin/mkdir -p “/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/host/usr/share/autoconf”
    /usr/bin/install -c -m 644 autom4te.cfg ‘/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/host/usr/share/autoconf’
    make[5]: Leaving directory ‘/sda1/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/build/host-autoconf-2.65/lib’
    make[4]: Leaving directory ‘/sda1/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/build/host-autoconf-2.65/lib’
    make[3]: Leaving directory ‘/sda1/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/build/host-autoconf-2.65/lib’
    Making install in doc
    make[3]: Entering directory ‘/sda1/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/build/host-autoconf-2.65/doc’
    restore=: && backupdir=”.am$$” && \
    am__cwd=`pwd` && CDPATH=”${ZSH_VERSION+.}:” && cd . && \
    rm -rf $backupdir && mkdir $backupdir && \
    if (/bin/bash /sda1/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/build/host-autoconf-2.65/build-aux/missing –run makeinfo –version) >/dev/null 2>&1; then \
    for f in autoconf.info autoconf.info-[0-9] autoconf.info-[0-9][0-9] autoconf.i[0-9] autoconf.i[0-9][0-9]; do \
    if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
    done; \
    else :; fi && \
    cd “$am__cwd”; \
    if /bin/bash /sda1/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/build/host-autoconf-2.65/build-aux/missing –run makeinfo –no-split -I . \
    -o autoconf.info autoconf.texi; \
    then \
    rc=0; \
    CDPATH=”${ZSH_VERSION+.}:” && cd .; \
    else \
    rc=$?; \
    CDPATH=”${ZSH_VERSION+.}:” && cd . && \
    $restore $backupdir/* `echo “./autoconf.info” | sed ‘s|[^/]*$||’`; \
    fi; \
    rm -rf $backupdir; exit $rc
    conftest.c:14625: must be after `@defmac’ to use `@defmacx’
    Makefile:241: recipe for target ‘autoconf.info’ failed
    make[3]: *** [autoconf.info] Error 1
    make[3]: Leaving directory ‘/sda1/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/build/host-autoconf-2.65/doc’
    Makefile:338: recipe for target ‘install-recursive’ failed
    make[2]: *** [install-recursive] Error 1
    make[2]: Leaving directory ‘/sda1/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/build/host-autoconf-2.65’
    Makefile:653: recipe for target ‘install’ failed
    make[1]: *** [install] Error 2
    make[1]: Leaving directory ‘/sda1/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/build/host-autoconf-2.65’
    package/Makefile.package.in:296: recipe for target ‘/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/build/host-autoconf-2.65/.stamp_host_installed’ failed
    make: *** [/home/tteikhua/Downloads/a80/lichee/out/sun9iw1p1/linux/common/buildroot/build/host-autoconf-2.65/.stamp_host_installed] Error 2
    make: Leaving directory ‘/sda1/home/tteikhua/Downloads/a80/lichee/buildroot’
    ERROR: build buildroot Failed

    I followed exactly till the last tart regarding about rzsxm but still have error as shown above?

Leave a Reply