Posted on 15 Comments

Running Linux on the Allwinner A80 Optimusboard ARM Server (Part 2)

Previously, 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 Linux actually up and running.

We’ll pick up where we left off previously, with the build process having just completed.

Next, we are going to create an image that can be flashed via LiveSuit.  LiveSuit is going to need a rootfs.ext4 file as input for the process, and it will be looking in the A80/lichee/out/sun9iw1p1/dragonboard/common directory.  This file should have been created automatically during the build process.  After verifying it exists, we can run our ‘pack’ command.

./ pack

If successful, you will get an output file of sun9iw1p1_dragonboard_optimus.img in the A80/lichee/tools/pack directory.  This is the file we will use in LiveSuit to push Linux to the Optimusboard.  Load LiveSuit from its directory via:


We need to choose the file to flash, so we navigate to the proper location and select our sun9iw1p1_dragonboard_optimus.img file.

The A80 Optimusboard does not have a dedicated FEL button on it like some other devices, so, to get the board ready for the flash we have to attach a Serial cable and manually intervene with it’s boot process.  We hook up the cable to the UART port, use the ‘screen’ command to capture the input and output, and plug it in to a USB port.  While the board initializes, we press any key on the keyboard to interrupt the autoboot and are presented with a command prompt.  The ‘efex’ command will launch FEL mode for us.


The board will switch to FEL mode, and LiveSuit will automatically recognize that it is now ready to flash the image to the NAND.  It will take a couple of minutes to complete, and once done, we should now have Linux installed.  Leaving the console cable attached, we reboot the board, and we can now see that it boots up and has a Linux filesystem installed and running.  Keep in mind, its pretty minimal at this point, as we have not built a robust, feature rich environment like Ubuntu, Fedora, or other Linux distributions.  But this is a good base to build upon as we continue further development and leverage ARM processors for use as microservers.







15 thoughts on “Running Linux on the Allwinner A80 Optimusboard ARM Server (Part 2)

  1. […] finally found the right method on mininodes’ “Ubuntu on Allwinner A80 Optinusboard” post, which explains you need to connect the USB serial cable provided with the board to […]

  2. I have 2 of such boards. The plan is to build an clustered transcoding a80 machine. The main problem so far is the gpu drivers at least for me. PowerVR not very open to such things sadly nor Allwiner.

  3. Got this error’s ;-( any idea?
    Is there a dl link of the compiled image ?

    find: “/home/pilsbier/a80/lichee/out/sun9iw1p1/linux/common/buildroot/target/lib/modules”: Datei oder Verzeichnis nicht gefunden
    /sbin/ldconfig: /usr/lib/ ist keine ELF-Datei – sie weist falsche »magische Bytes« am Beginn auf.

    make[3]: arch/arm/mach-sunxi/pm/standby/gen_check_code: Kommando nicht gefunden
    make[3]: *** [arch/arm/mach-sunxi/pm/standby/resume1.code] Fehler 127
    make[2]: *** [arch/arm/mach-sunxi/pm/standby/standby.code] Fehler 2
    make[1]: *** [arch/arm/mach-sunxi/pm] Fehler 2
    make: *** [arch/arm/mach-sunxi] Fehler 2

    1. Sorry, I’m not familiar with that error.

      I will get an image uploaded for you. =)

    2. Jörg It is compile under x86_64 linux.

  4. Is there any hope of getting Ubuntu running on the Optimus board? My attempts have failed so far.

    1. We are actually working on this, and are almost wrapped up. Once complete, we’ll post the image for you. =)

      1. Christmas comes early! That’d be great, thanks 🙂

  5. I flashed my image sun9iw1p1_dragonboard_optimus.img to a board but there is something wrong. It starts booting but it doesn’t switch to real rootfs (switch_root is not called because nothing is mounted). What could be a problem?

    1. Strange. You are sure the previous steps completed properly, and the rootfs.ext4 file exists, as well?

  6. Completed properly? Depends 🙂 I though so. But I noticed that some shipped binaries are x86_64 and some x86. I’m building on 32bit Ubuntu 12.04.5 LTS. But having qemu installed and 64 bit binaries are executed properly.
    What build system should I use? Would be possible to upload one working image so I can check my hw.

  7. Ok, something is really wrong with this SDK or instructions posted here.
    In part 1 linux platform is build. But in part 2 dragonboard is used to flash. So which one exactly should be used?
    Second issue is that created image doesn’t boot properly as shown in image 3. And this is the problem I also have. As you can see switch_root didn’t happen because rootfs is not mounted.

    The problem is that mmc_root in env.cfg is wrong. It should be /dev/mmcblk0p7. But even fixing this switch_root succeed but then system just reboots in a loop.

    Seems I’m far from the end 🙁 Wondering why I can’t find any useful resources about A80 and building images…

    1. Peter,

      Sorry for the confusion. You are correct, these are independent methods of running Linux on the Optimusboard. These posts were primarily a set of engineering notes that we created when we first started working with the board. I’ll go back and revisit them, to ensure they are still valid. In the time since this was created, I believe there have been updated SDK’s released, so you may working with a different version of the SDK perhaps. Additionally, the host environment used at the time was an Ubuntu 14.04 64-bit machine.

      If it helps, we also developed a newer method of installing Ubuntu on the board, in this post:

      The reason you are not able to find many resources regarding the A80 is that very few developers have spent time with the chip. The pcDuino team, Jean-Luc at, and Ian Morrison at Linuxium are the only people aside from us who have spent any significant time working with Linux on the A80. As more developers spend time ironing out the process, it will get easier.

      1. I would be very, very grateful if you would check notes. I have everything ready (openelec build from scratch with different kernel and u-boot, rootfs made, …) just can’t put all together and boot 🙁
        I though I will make original SDK image and dissect it how it is made and how it is work. But if doesn’t boot it’s hard.

Leave a Reply to mininodes Cancel reply

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