AllWinner A80 Linux SDK Released

After Android 4.4 SDK for AllWinner A31 last week, another AllWinner software development kit has been seen in the wild, this time for the new AllWinner A80 octa-core processor. A80 SDK includes source code for the Linux Kernel and U-boot, as well as buildroot, and various AllWinner tools. I’ve also noticed AllWinner A80 datasheet is available, but with the strict minimum information (45 pages).

AllWinner_A80_SDK

Let’s get the code, and extract it:


Now we need to configure the build:


sun9i is the codename for AllWinner A80, not sure what w1p1 means. Dragonboard must be the internal Allwinner development board, but I just selected Linux, since the SDK does not come with Android, and finally I opted for optimus, which could stand for OptimusBoard.

You may need to install extra dependencies in your build machine, for example (in Ubuntu 14.04):


Now let’s start buildroot which should retrieve the toolchain, and build u-boot and the Linux kernel:



So it’s looking for Linaro gcc via several servers, (except linaro), and all links fail… So I modified buildroot/toolchain/toolchain-external/ext-tool.mk to use http://releases.linaro.org/14.04/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.bz2 instead, and after adding some symlinks (arm-linux-gnueabi-gcc to arm-linux-gnueabihf-gcc), it went a little further, but Busybox failed to build (error: ‘RLIMIT_FSIZE’ undeclared), so another toolchain may be needed, or some work is needed to make it build…

Several drivers in the kernel are binary only, or mixed binary / source, including the NAND driver, part of dram frequency scaling drivers, some MIPI code, a face detection library, part of USB3.0 code, and more.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus

18 Replies to “AllWinner A80 Linux SDK Released”

  1. 45 pages is a normal datasheet. The big ones are the reference manuals. Is the reference manual hiding inside the A80 SDK?

  2. Instead of reading Verhaegen about non-binary dreams….

    I’m still waiting for a SoC with 3 features:
    -decent speed and hevc decoding
    -decent linux GLES (even binary … no frequent crashes)
    -decent VPU drivers (even binary…. no crashes and no pink screens)

    Being A10 owner I can say vpu under linux is trashy if you ever use 264, cedar libhybris and any other.
    AMLogic S80x still no hevc and other issues (also linux unsupported by anyone?!?).
    Tegra K1 good all but no hevc (no, OpenCL never gave 264 decent speed to i3/i5/i7, just 7% faster codecs with unstable code).
    RK3288 no linux drivers for vpu at all, maybe gpu in the future.

    Call me when someone choose to release something linux compatible, for now I’m evaluating rk3288 + linuxOnAndroid as mini-server….

  3. Build problems look like they’re bugs from the Buildroot perspective- there’s a patch from 2012 that appears to be the proper fix. I’m checking that out now to see if it’s the source of the problems.

  4. Epic. FAIL.

    (From the buildroot dir)
    2011.02, Released February 28th, 2011:

    No wonder the thing doesn’t build, Jean-Luc. It’s using an *ANCIENT*, *BROKEN* buildroot. The only way they’re getting this to work is that the downloads it’s looking for on Linaro’s site are local to the dev’s buildroot dir on their machine.

  5. @cnxsoft
    Heh… We need techrefs from AllWinner here. This is a mess and isn’t acceptable. I suppose if I have a board, I could make a more modern kernel work for a more modern buildroot and OpenEmbedded. Without it, it’d be a lot of work without any real payback for me.

  6. We started building this today, but have met problems as well.

    @cnxsoft – Thanks for the info, excellent info to get started.

    @Kevin125 – Thanks for that tip, I was able to proceed with Busybox. However, building still fails further down the line in Busybox.

    Last few lines of output:

    /A80_SDK_20140728/lichee/out/sun9iw1p1/linux/common/buildroot/external-toolchain/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: failed to merge target specific data of file libbb/lib.a(perror_nomsg.o)
    /A80_SDK_20140728/lichee/out/sun9iw1p1/linux/common/buildroot/external-toolchain/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: error: busybox_unstripped uses VFP register arguments, libpwdgrp/lib.a(uidgid_get.o) does not
    /A80_SDK_20140728/lichee/out/sun9iw1p1/linux/common/buildroot/external-toolchain/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: failed to merge target specific data of file libpwdgrp/lib.a(uidgid_get.o)
    collect2: error: ld returned 1 exit status
    make[1]: *** [busybox_unstripped] Error 1

  7. @miniNodes
    So AllWinner gave you an OptimusBoard, but no SDK with it? What are you supposed to do? How can their customer even work with them without SDK? 🙂

    Since their version of buildroot is dated 2011.02, it’s possible the build needs to be made on Ubuntu 10.04. Who knows… AllWinner is aware of this code release, provided their https://twitter.com/AllwinnerTech is their Twitter account, as they retweeted it. You should be able to ask them which toolchain and OS they are using for it.

    I don’t understand why a SoC manufacturer would not simply release the source code they are legally allowed, and in some cases required, to make available publicly.

  8. @cnxsoft
    But hey, Android works great. =)

    Correct though, we have had the board for a few weeks (prior to the SDK), but were awaiting assistance from Merrii to provide a working Linux.

    Now with the SDK released, we could theoretically take matters in to our own hands…If it worked!

  9. For miniNodes.

    Hi!
    I’ve read your instruction for building http://www.mininodes.com/how-to-build-linux-for-the-allwinner-a80-optimusboard/
    and tried to make all you’ve wrote.
    I’ve repeated it twice! But I’ve had an error exectly the same place all the times…
    After this step:
    Edit Line 456, and change ‘gets’ to ‘fgets’
    I had an error
    /usr/bin/gcc -c -I. -I/home/adminuser/SRC/lichee/out/sun9iw1p1/linux/common/buildroot/build/kernel-header/linux-2.6.36-android/include output_file.c
    output_file.c:25:18: fatal error: zlib.h: No such file or directory
    #include
    And no future steps havn’t improove it…
    By the way, the PATH …/kernel-header/linux-2.6.36-android/include doesn’t exist.
    Even …/build/kernel-header/ doesn’t exist!
    What I did wrong?

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC