New univeral A20 image released which works with all our A20 boards and auto detect and configure on boot


We are releasing universal A20 Linux image which will boot and work on all our A20 boards:

The image is based on Armbian with modifications necessary to support OLinuXino specific features.

There are two image releases – Ubuntu Bionic Desktop image which is the recommended image for beginners or when you want to evaluate the board’s hardware fully – it has good HDMI, audio support and Debian Stretch Server image which contains no binary blobs but is headless and has poor video and audio support.

Currently, our latest Ubuntu Bionic A20 image uses kernel 4.19.10, or to be more specific:

root@olinuxino:~# uname -a
Linux olinuxino 4.19.10-sunxi #5.65 SMP Tue Dec 18 14:19:16 EET 2018 armv7l armv7l armv7l GNU/Linu

Our Armbian Ubuntu Bionic image can be downloaded from FTP or Torrent.

Our Armbian Debian Stretch image can be download from FTP or Torrent.

Username is according to Armbian documentation: root and password: 1234

Since we have a large array of A20 boards and numerous variants there is auto-detection enabled in the image. Information about the model of the board is stored in the EEPROM of each A20 board that had been recently manufactured and this information is used by the new images to load the proper configuration. The EEPROM contents are described here.

The images can be used with boards from early revisions which has no EEPROM or has EEPROM with wrong content after one time set up of the EEPROM during in the first u-boot of the new image. If you have trouble booting interrupt u-boot by pressing space and type “olinuxino”. An example configuration for manually setting the EEPROM of A20-OLinuXino-LIME-e16Gs16MB hardware revision K is given at the end of the post.

The new images have support for both legacy resistive and new capacitive/resistive touch displays with auto detection feature (please bear with us they are not released yet on the web as we test them). The newer versions of the displays has suffix -CTS for capacitive touch screen and -RTS for resistive touch screen and are offered in 5″, 7″ and 10″ size with different resolutions. These displays are automatically detected by boot and drivers properly configured for them. If the LCDs are not detected HDMI output is only enabled and the image can be configured one time at first boot manually as described in this wiki article.

Please note that mainline Kernel now do not support NAND Flash, so if you wish to boot from the flash memory, consider either using the legacy 3.4.xx images which are still available or switch to A20 boards with eMMC. The eMMC boot is supported via armbian-config (nand-sata-install). Due to lack of reliable eMMC 5.X support by Allwonner boot0 and for future compatibility we are adding 16MB SPI flash for all A20 boards with eMMC, this way the board first boots from the SPI then continue to eMMC with properly set configuration. Allwinner Boot0 can’t handle correctly eMMC 5.X and sometime boot sometimes do not boot, as this is binary blob inside SOC there is nothing we can do than to use SPI boot to fix eMMC boot parameters.

Build instructions for the new images can be found here.

An example configuration for manually setting the EEPROM of A20-OLinuXino-LIME-e16GB hardware revision K is given below:

=> olinuxino 
olinuxino - OLinuXino board configurator

olinuxino config info - Print current configuration: ID, serial, ram, storage, grade...
olinuxino config list - Print supported boards and their IDs
olinuxino config erase - Erase currently stored configuration
olinuxino config write [id] [revision] [serial] [mac]
[id] - Specific board ID
[revision] - Board revision: C, D1, etc...
[serial] - New serial number for the board
[mac] - New MAC address for the board
Format can be:
olinuxino monitor list - Print supported video outputs
olinuxino monitor set - Set specific LCD

=> olinuxino config list

Supported boards:
A20-OLinuXino-LIME - 7739 
A20-OLinuXino-LIME-n4GB - 7743 
A20-OLinuXino-LIME-n8GB - 8934 
A20-OLinuXino-LIME-s16MB - 9076 
T2-OLinuXino-LIME-IND - 9211 
T2-OLinuXino-LIME-s16MB-IND - 9215 
T2-OLinuXino-LIME-e4GB-IND - 9219 
A20-OLinuXino-LIME2 - 7701 
A20-OLinuXino-LIME2-e4GB - 8340 
A20-OLinuXino-LIME2-e16GB - 9166 
A20-OLinuXino-LIME2-n4GB - 7624 
A20-OLinuXino-LIME2-n8GB - 8910 
A20-OLinuXino-LIME2-s16MB - 8946 
A20-OLinuXino-LIME2-e16Gs16M - 9604 
A20-OLinuXino-LIME2-e4Gs16M - 9613 
T2-OLinuXino-LIME2-IND - 9239 
T2-OLinuXino-LIME2-s16MB-IND - 9247 
T2-OLinuXino-LIME2-e4GB-IND - 9243 
A20-OLinuXino-MICRO - 4614 
A20-OLinuXino-MICRO-e4GB - 8832 
A20-OLinuXino-MICRO-e16GB - 9042 
A20-OLinuXino-MICRO-e4GB-IND - 8661 
A20-OLinuXino-MICRO-IND - 8828 
A20-OLinuXino-MICRO-n4GB - 4615 
A20-OLinuXino-MICRO-n8GB - 8918 
A20-OLinuXino-MICRO-s16MB - 9231 
T2-OLinuXino-MICRO-IND - 9223 
T2-OLinuXino-MICRO-s16MB-IND - 9235 
T2-OLinuXino-MICRO-e4GB-IND - 9227 
A20-SOM-n4GB - 4673 
A20-SOM - 7664 
A20-SOM-IND - 8849 
A20-SOM-n8GB - 8922 
A20-SOM-e16GB - 9155 
A20-SOM-e16GB-IND - 9148 
T2-SOM-IND - 9259 
A20-SOM204-1G - 8991 
A20-SOM204-1Gs16Me16G-MC - 8958

=> olinuxino config write 9166 k

Erasing EEPROM configuration...
Writting EEPROM configuration...
Writting MMC configuration...

=> saveenv

Saving Environment to EXT4... Recovery required
update journal finished

=> reset

21 Comments (+add yours?)

  1. Alexander Kostadinov
    Jan 07, 2019 @ 21:54:52

    Planning to produce boards according to System Base Architecture Specifications such that we are not tied to a single operating system?


  2. tkaiser
    Jan 09, 2019 @ 18:22:42

    Isn’t SBAS an ARMv8 thing?


  3. Yanko Kaneti
    Jan 09, 2019 @ 18:54:49

    For Olimex it would make sense to support EBBR /me thinks


    • Alexander Kostadinov
      Jan 09, 2019 @ 19:45:49

      It makes most sense to support the standard allowing to run Red Hat and other distributions out of the box.


      • Axel-F
        Jan 19, 2019 @ 04:32:05

        RedHat does not cares about embedded designs, to begin with. Actually, their distro is woefully unsuitable for embedded and follows patterns that are extremely troublesome and hostile for these use cases. They minimal system requirement alone ensure system can’t be cheap low power thing. Far more complicated and far less reliable as the result.

        If you want “standard” go buy PC and enjoy far more “standard” instruction set, UEFI crap, all dreaded ACPI bugs nobody is going to fix ever and so on. I guess it makes very little point for Olimes to try to compete with “standard” motherboard manufacturers – these are hard to beat in their niche and Olimex strongest points are anything but standard motherboards production. Look, Olimex are famous supplier of devboards and modules for custom embedded designs. Mostly valued for these uses. Their things appear in many industrial, automation and somesuch uses – these uses got nothing to do with RH.

  4. Alex
    Jan 15, 2019 @ 21:25:13

    I downloaded and tried both the Ubuntu and the Debian image. However with board A20-OLinuXino-LIME2-e16Gs16M Rev.K1 the ethernet is not automatically connected. After flashing the image to a SD, booting the LIME2 and logging in as root, I am asked to change the root password followed by creating a user. With armbian-config I tried to set a static IP as well as dynamic IP. Same I tried with nmtui. Still I am not able to reach/ping any LAN network IP. On same switch I have several RPis with same network configuration (different IP though of course). They are reachable. With another built (a20-lime2_mainline_uboot_sunxi_kernel_3.4.103_jessie_eMMC_rel_16.img) and the same board, the ethernet worked. The physical network settings did not change in between. However I would prefer Debian stretch over jessie. I checked the EEPROM for board id and revision and it is still present.
    Any hints what I possibly did wrong?


    • Lub
      Jan 16, 2019 @ 10:46:47

      Which images exactly did you test? Was it the two images released 20190107? Can you copy paste full file names so we can test with the exact same images?


      • Alex
        Jan 16, 2019 @ 11:23:04

        Sure. I used the images from the FTP servers:

        There seems to be traffic on eth0. The switch’s RJ45 LEDs do blink synchronous with the LEDs on my LIME2 board. ifconfig -a of a booted image (just changed root pw and created first user as mentioned above) shows:
        bond0: flags=5122 mtu 1500
        ether 46:f6:81:8f:01:cd txqueuelen 1000 (Ethernet)
        RX packets 0 bytes 0 (0.0 B)
        RX errors 0 dropped 0 overruns 0 frame 0
        TX packets 0 bytes 0 (0.0 B)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

        eth0: flags=4163 mtu 1500
        ether 30:1f:9a:d0:43:fc txqueuelen 1000 (Ethernet)
        RX packets 16297 bytes 1066162 (1.0 MiB)
        RX errors 0 dropped 17 overruns 0 frame 0
        TX packets 5530 bytes 921084 (899.4 KiB)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
        device interrupt 63

        lo: flags=73 mtu 65536
        inet netmask
        inet6 ::1 prefixlen 128 scopeid 0x10
        loop txqueuelen 1000 (Local Loopback)
        RX packets 0 bytes 0 (0.0 B)
        RX errors 0 dropped 0 overruns 0 frame 0
        TX packets 0 bytes 0 (0.0 B)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

        dhclient eth0 only receives a 169.254 class B IP. My network runs with 192.168.10 class C and DHCP enabled. DHCP works for all other devices on my network (works with dynamic but also with static IP).

      • Lub
        Jan 16, 2019 @ 11:54:56

        PHY initialization was broken in that release. Make sure to use the latest release. This is mentioned in the change log here: In future please use the e-mail for trouble shooting and support.

    • Lub
      Jan 16, 2019 @ 12:52:01

      The latest image currently is locate in this folder here:


  5. rreignier
    Feb 17, 2019 @ 21:28:16

    Nice to see that you share the effort with Armbian that has now a very mature solution.
    But it seems that, for now, you do not support their device tree overlays. That would have been nice to use the CAN for example.
    Do you have any plans to support the device tree overlays?


  6. rreignier
    Feb 20, 2019 @ 01:00:12

    Oh, thank you very much for your answers and the detailed blog post!
    I did not know the existence of the armbian-add-overlay command.


  7. serge
    Apr 15, 2019 @ 10:49:23

    Sorry byt his link does not point to anything.

    I’v tried
    but when I try to install on eMMC (ext4) using armbian-config or nand-sata-install system freezes.


  8. Atreyo tech
    Jun 03, 2021 @ 08:27:38


    I downloaded A20-OLInuXino-buster-base-20210513-112230.img.7z, which works properly in my A20. Now, I want kernel source of this image file. Where I can get it?

    Also please guide me for kernel rebuild process in A20.


  9. Atreyo tech
    Jun 03, 2021 @ 14:40:48


    I am beginner for A20 board. Currently I install image in SD card boot it successfully. But now I want to enable different services through kernel. So, how can I do that.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: