Difference between revisions of "ArmbianHowTo"

m (Building image)
m (Console login)
(28 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Building image==
+
= How to use Armbian images =
  
There is great Armbian documentation [https://docs.armbian.com here].
+
The great Armbian documentation is available here: [https://docs.armbian.com https://docs.armbian.com]
  
* Clone repository
+
== Console login ==
  # git clone https://github.com/armbian/build.git
+
 
  Cloning into 'build'...
+
Default login is:
  remote: Counting objects: 32391, done.
+
    login: root
  remote: Compressing objects: 100% (69/69), done.
+
    password: 1234
  remote: Total 32391 (delta 60), reused 75 (delta 44), pack-reused 32278
+
 
  Receiving objects: 100% (32391/32391), 258.91 MiB | 959.00 KiB/s, done.
+
After login you'll be prompt for new password.
  Resolving deltas: 100% (21325/21325), done.
+
 
  Checking connectivity... done.
+
You could use the USB_OTG connector as serial port. Connect the board to a host computer via USB-mini cable. Wait some time for the board to boot. In the system log you should see something like:
   Checking out files: 100% (2205/2205), done.
+
    dmesg
 +
   
 +
    usb 3-2: new high-speed USB device number 5 using xhci_hcd
 +
    usb 3-2: New USB device found, idVendor=0525, idProduct=a4a7
 +
    usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
 +
    usb 3-2: Product: Gadget Serial v2.4
 +
    usb 3-2: Manufacturer: Linux 4.19.5-sunxi with musb-hdrc
 +
    cdc_acm 3-2:2.0: ttyACM0: USB ACM device
 +
 
 +
Then use picocom, minicom, etc to login:
 +
    picocom -b 115200 /dev/ttyACM0
 +
   
 +
    18.04.1 LTS olinuxino ttyGS0
 +
    olinuxino login:
 +
 
 +
== Selecting video output ==
 +
 
 +
On most boards you can select between HDMI and LCD output
 +
 
 +
* A20-OLinuXino
 +
** HDMI
 +
** LCD
 +
 
 +
* A33-OLinuXino
 +
** LCD
 +
 
 +
HDMI output if always with highest priority. That means you you plug HDMI cable, the output always will be on the monitor, regardless of other settings.
 +
 
 +
If HDMI is not present, then LCD output will be used. By default the image tries to use auto-detect method for the LCD. This will only work on newer panels and boards. You can manually override this in the u-boot console as follows.
 +
 
 +
* Stop in the u-boot
 +
    Autoboot in 1 seconds, press <Space> to stop
 +
    =>
 +
 
 +
* List all supported LCD panels:
 +
    olinuxino monitor list
 +
   
 +
    Supported video outputs:
 +
    ----------------------------------------
 +
    LCD-OLinuXino                  - Video outout to the LCD connector with AUTO detect function
 +
    LCD-OLinuXino-4.3TS            - Video output to LCD-OLinuXino-4.3TS
 +
    LCD-OLinuXino-7                - Video output to LCD-OLinuXino-7
 +
    LCD-OLinuXino-5                - Video output to LCD-OLinuXino-5
 +
    LCD-OLinuXino-10              - Video output to LCD-OLinuXino-10
 +
 
 +
* Set configuration, for example LCD-OLinuXino-7
 +
    olinuxino monitor set LCD-OLinuXino-7
 +
 
 +
* You can make changes permanent with:
 +
    saveenv
 +
 
 +
* Reboot the board and you're ready:
 +
    reset
 +
 
 +
= Building u-boot =
 +
 
 +
Get the latest sources:
 +
   git clone https://github.com/OLIMEX/u-boot.git
 +
  cd u-boot
 +
 
 +
Build it:
 +
  make A20-OLinuXino_defconfig
 +
  make CROSS_COMPILE=arm-linux-gnueabihf-
  
Soon (probably) there will be olimex fork with some customizations.
 
  
* Run builder
+
== Updating via USB ==
  # cd build
 
  # ./compile
 
  
Building requires root access. System preparation can take long, depending on system, etc. After that you should see something like that:
+
You can write the new u-boot to MMC, eMMC, SPI Flash or NAND (not fully supported) using DFU
 +
protocol.
  
[[File:Armbian-1.png|640px]]
+
Boot the board and stop at u-boot console. Connect USB-mini cable to a host PC.
  
Select '''Full OS Image for flashing'''. This will create output image for direct flashing on SD-card.
 
  
[[File:Armbian-2.png|640px]]
+
=== Update SPI flash ===
  
Select '''Do not change the kernel configuration'''. All needed configuration should be selected automatically. If you want some kernel modifications, select the other option.
+
Check the available partitions with:
 +
    => mtd
 +
   
 +
    device nor0 <flash.0>, # parts = 4
 +
    #: name size offset mask_flags
 +
    0: SPI.u-boot          0x00200000 0x00000000 0
 +
    1: SPI.u-boot-env      0x00020000 0x00200000 0
 +
    2: SPI.u-boot-env.backup0x00020000 0x00220000 0
 +
    3: SPI.user            0x00dc0000 0x00240000 0
 +
   
 +
    active partition: nor0,0 - (SPI.u-boot) 0x00200000 @ 0x00000000
 +
   
 +
    defaults:
 +
    mtdids  : nand0=nand.0,nor0=nor.0
 +
    mtdparts: mtdparts=nand.0:4m(NAND.SPL),4m(NAND.SPL.backup),4m(NAND.u-boot),4m(NAND.u-boot.backup),4m(NAND.u-boot-env),4m(NAND.u-boot-env.backup),4m(NAND.dtb),16m(NAND.kernel),-(NAND.rootfs);nor.0:2m(SPI.u-boot),128k(SPI.u-boot-env),128k(SPI.u-boot-env.backup),-(SPI.user)
 +
   
 +
Activate DFU protocol with:
 +
    => dfu 0 sf "0:0:25000000:0"
 +
    interface: sf, devstr: 0:0:25000000:0
  
[[File:Armbian-3.png|640px]]
+
Next, on the host PC run:
 +
    dfu-util -l
 +
   
 +
    dfu-util 0.9
 +
   
 +
    Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
 +
    Copyright 2010-2016 Tormod Volden and Stefan Schmidt
 +
    This program is Free Software and has ABSOLUTELY NO WARRANTY
 +
    Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
 +
   
 +
    Found DFU: [15ba:0041] ver=0215, devnum=6, cfg=1, intf=0, path="3-2", alt=2, name="SPI.u-boot-env.backup", serial="ffffffff"
 +
    Found DFU: [15ba:0041] ver=0215, devnum=6, cfg=1, intf=0, path="3-2", alt=1, name="SPI.u-boot-env", serial="ffffffff"
 +
    Found DFU: [15ba:0041] ver=0215, devnum=6, cfg=1, intf=0, path="3-2", alt=0, name="SPI.u-boot", serial="ffffffff"
  
Go to '''<Show CSC/WIP/ESO>'''. Currently A20-SOM204 is not officially supported by Armbian team. Instead the board is supported by Olimex team, which is under CSC section. So select that menu and confirm the action.
+
Update u-boot binary with:
 +
    dfu-util -D spl/u-boot-spl.bin -a SPI.u-boot
  
[[File:Armbian-4.png|640px]]
+
=== Update SD/eMMC card ===
[[File:Armbian-5.png|640px]]
 
  
Select '''olimex-som204-a20'''.
+
Stop loading in the u-boot. To check available MMC devices run:
 +
    mmc list
  
[[File:Armbian-6.png|640px]]
+
If the board is booted from SD card and you also have eMMC, the output will be:
 +
    mmc@01c0f000: 0 (SD)
 +
    mmc@01c11000: 1 (eMMC)
  
Select desired distribution. We recommend jessie for server build, and xenial for image with desktop environment.
+
Connect USB-mini cable enter:
 +
    ums 0 mmc 0
  
[[File:Armbian-7.png|640px]]
+
or:
 +
    ums 0 mmc 1
  
Select if you want server or desktop.
+
New mass storage device will show-up on the host computer. To write u-boot use:
 +
    sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX seek=16 conv=sync
  
After build the images and other packages will be in the output folder:
+
where /dev/sdX should be replaced with the new device, /dev/sdb, /dev/sdc, etc.
  # tree output
 
  output/
 
  ├── config
 
  ├── debs
 
  │   ├── armbian-config_5.41_all.deb
 
  │   ├── armbian-firmware_5.41_all.deb
 
  │   ├── armbian-firmware-full_5.41_all.deb
 
  │   ├── armbian-tools-jessie_5.41_armhf.deb
 
  │   ├── armbian-tools-xenial_5.41_armhf.deb
 
  │   ├── extra
 
  │   ├── jessie
 
  │   ├── linux-u-boot-dev-olimex-som204-a20_5.41_armhf.deb
 
  │   └── xenial
 
  │      └── linux-xenial-root-dev-olimex-som204-a20_5.41_armhf.deb
 
  ├── debug
 
  │   ├── logs-09_02_2018-13_53_10.tgz
 
  │   ├── logs-09_02_2018-15_08_20.tgz
 
  │   ├── logs-12_02_2018-10_58_50.tgz
 
  │   ├── logs-12_02_2018-11_01_35.tgz
 
  │   ├── logs-12_02_2018-11_11_51.tgz
 
  │   ├── logs-.tgz
 
  │   ├── output.log
 
  │   ├── patching.log
 
  │   └── timestamp
 
  ├── images
 
  │   ├── Armbian_5.41_Olimex-som204-a20_Debian_jessie_dev_4.15.0.img
 
  │   └── Armbian_5.41_Olimex-som204-a20_Ubuntu_xenial_dev_4.15.0_desktop.img
 
  └── patch
 
  
 +
= Building image =
  
* Flashing image
+
Make sure to take a look at the official Armbian documentation here: [https://docs.armbian.com https://docs.armbian.com]
Put sdcard in the host PC. New device should appear, e.g. /dev/sdc. Flash the image
 
using the following command:
 
  
   # dd if=Armbian_5.41_Olimex-som204-a20_Debian_jessie_dev_4.15.0.img of=/dev/sdx bs=10M
+
* Clone repository
 +
   git clone --branch olimex https://github.com/olimex/build
  
Replace /dev/sdx with your device. You must use /dev/sdx, not /dev/sdx1!
+
* Run build script
 +
    cd build
 +
    ./compile
  
==Changing display output==
+
Building requires root access. System preparation can take long, depending on system, internet connection, etc. After everything is ready a prompt will appear:
With current kernel version (4.13) changing display output must be done by recompiling u-boot. This is necessary because kernel supports only SimpleFB. This will change in the future. 
 
===LCD===
 
  
====Enable touchscreen====
+
    Select what to build:
Create blacklist file:
+
        -> U-boot and kernel packages
# echo "blacklist sun4i_gpadc_iio" > /etc/modprobe.d/blacklist-touchscreen.conf
+
        -> Full OS image for flashing
# echo "blacklist sun4i_gpadc" >> /etc/modprobe.d/blacklist-touchscreen.conf
 
  
====Calibrate touchscreen====
+
The first option will build only u-boot and kernel packages. This is suitable for updating image. The second option will make ready to use image with u-boot, kernel and rootfs.
Install calibration package:
 
# apt-get install xinput-calibrator
 
  
After completion start the program inside the X.
+
    Select the kernel configuration:
Applications
+
        -> Do not change the kernel configuration
  -> System
+
        -> Show a kernel configuration menu before compilation
    -> Calibrate Touchscreen
 
  
You will see blank screen. Touch the display at the marks. Then store the calibration values.
+
Here you can modify kernel configuration, before build. After that target must be selected.
Create new file '''99-calibration.conf'''
+
Olimex's images are not officially supported by Armbian team, so you must select '''Show CSC/WIP/EOS''' option.  
# cat > /etc/X11/xorg.conf.d/99-calibration.conf << __EOF__
 
Section "InputClass"
 
Identifier "calibration"
 
MatchProduct "1c25000.rtp"
 
Option "Calibration" "3930 108 348 3948"
 
Option "SwapAxes" "0"
 
EndSection
 
__EOF__
 
  
Put the values from the calibrator program.
+
    Select the target board. Displaying:
 +
        -  (CSC)  -  Community Supported Configuration
 +
        -  (WIP)  -  Work In Progress
 +
        -  (ESO)  -  End Of Support
  
===VGA===
 
  
====Changing resolution====
+
Here select either:
The default resolution in 1024x768. You can list all resolutions with:
+
    olinuxino-a20 - Common configuration file for All A20-OLinuXino boards
  # xrandr
 
  
The output should be something like this:
+
or
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 8192 x 8192
+
    olinuxino-a33 - A33 quad core 1Gb Soc
  VGA-1 unknown connection 1280x1024+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
 
  1024x768      60.00 +
 
  1920x1200    59.88    59.95 
 
  1920x1080    60.00 
 
  1600x1200    60.00 
 
  1680x1050    59.95    59.88 
 
  1400x1050    59.98    59.95 
 
  1600x900      60.00 
 
  1280x1024    60.02*
 
  1440x900      59.89    59.90 
 
  1280x960      60.00 
 
  1366x768      59.79    60.00 
 
  1360x768      60.02 
 
  1280x800      59.81    59.91 
 
  1280x768      59.87    59.99 
 
  1280x720      60.00 
 
  800x600      60.32    56.25 
 
  848x480      60.00 
 
  640x480      59.94 
 
  
To change resolution from the command line, do the following:
 
# export DISPLAY=:0
 
# xrandr -s <resolution>
 
  
===HDMI===
+
Next kernel variant must be selected. Here select next branch:
 +
    Select the target kernel branch
 +
    Exact kernel versions depend on selected board
 +
        -> default  Vendor provided / legacy (3.4.x - 4.4.x)
 +
        -> '''next'''    Mainline (@kernel.org)  (4.x)
 +
        -> dev      Development version      (4.x)
  
====Set custom resolution====
 
  
To use lower resolution than 1920x1080 append '''/boot/armbianEnv.txt''' with:
+
Next select distribution:
  extraargs=video=HDMI-A-1:1280x1080
+
    Select the target OS release
 +
        -> jessie  Debian 8 Jessie / unsupported
 +
        -> stretch Debian 9 Stretch
 +
        -> xenial  Ubuntu Xenial 16.04 LTS
 +
        -> bionic  Ununtu Bionic 18.04 LTS
  
This will set monitor with 1280x1080 resolution. Getting supported modes is done with:
 
# cat /sys/class/drm/card0-HDMI-A-1/modes
 
1920x1080
 
1920x1080
 
1920x1080
 
1920x1080
 
1920x1080
 
1920x1080
 
1280x1024
 
1280x960
 
1152x864
 
1280x720
 
1280x720
 
1280x720
 
1024x768
 
1024x768
 
1024x768
 
832x624
 
800x600
 
800x600
 
800x600
 
800x600
 
720x576
 
720x480
 
720x480
 
640x480
 
640x480
 
640x480
 
640x480
 
720x400
 
  
====Disabling HDMI output====
+
Finally select building desktop environment or not:
 +
    Select the target image type
 +
        -> Image with console interface (server)
 +
        -> Image with desktop environment
  
To disable video output on the HDMI monitor add folloing in '''/boot/armbianEnv.txt''':
 
extraargs=video=HDMI-A-1:d
 
  
Save the file and reboot the board.
+
After some time the image / packages will be available in the output directory. For example:
 +
    tree output
 +
    |-- debs
 +
    |  |-- armbian-config_5.65_all.deb
 +
    |  |-- armbian-firmware_5.65_all.deb
 +
    |  |-- armbian-firmware-full_5.65_all.deb
 +
    |  |-- armbian-tools-bionic_5.65_armhf.deb
 +
    |  |-- bionic
 +
    |  |  |-- armbian-bionic-desktop_5.65_all.deb
 +
    |  |  |-- linux-bionic-root-next-olinuxino-a20_5.65_armhf.deb
 +
    |  |-- linux-dtb-next-sunxi_5.65_armhf.deb
 +
    |  |-- linux-headers-next-sunxi_5.65_armhf.deb
 +
    |  |-- linux-image-next-sunxi_5.65_armhf.deb
 +
    |  |-- linux-source-next-sunxi_5.65_all.deb
 +
    |  |-- linux-u-boot-next-olinuxino-a20_5.65_armhf.deb
 +
    |--images
 +
    |  |-- Armbian_5.65_Olinuxino-a20_Ubuntu_bionic_next_4.19.5_desktop.img
  
==Debugging==
+
* Flashing image
 +
Put sdcard in the host PC. New device should appear, e.g. /dev/sdc. Flash the image
 +
using the following command:
  
===Enabling DRM debug output===
+
  # dd if=/path/to/Armbian_5.65_Olinuxino-a20_Ubuntu_bionic_next_4.19.5_desktop.img.img of=/dev/sdx bs=10M
The DRM driver supports multiple debugging levels.
 
  
Add the following in '''/boot/armbianEnv.txt''':
+
Replace /dev/sdx with your device. You must use /dev/sdx, not /dev/sdx1!
extraargs=drm.debug=0xf
 

Revision as of 04:57, 30 November 2018

How to use Armbian images

The great Armbian documentation is available here: https://docs.armbian.com

Console login

Default login is:

   login: root
   password: 1234

After login you'll be prompt for new password.

You could use the USB_OTG connector as serial port. Connect the board to a host computer via USB-mini cable. Wait some time for the board to boot. In the system log you should see something like:

   dmesg
   
   usb 3-2: new high-speed USB device number 5 using xhci_hcd
   usb 3-2: New USB device found, idVendor=0525, idProduct=a4a7
   usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
   usb 3-2: Product: Gadget Serial v2.4
   usb 3-2: Manufacturer: Linux 4.19.5-sunxi with musb-hdrc
   cdc_acm 3-2:2.0: ttyACM0: USB ACM device

Then use picocom, minicom, etc to login:

   picocom -b 115200 /dev/ttyACM0
   
   18.04.1 LTS olinuxino ttyGS0
   olinuxino login:

Selecting video output

On most boards you can select between HDMI and LCD output

  • A20-OLinuXino
    • HDMI
    • LCD
  • A33-OLinuXino
    • LCD

HDMI output if always with highest priority. That means you you plug HDMI cable, the output always will be on the monitor, regardless of other settings.

If HDMI is not present, then LCD output will be used. By default the image tries to use auto-detect method for the LCD. This will only work on newer panels and boards. You can manually override this in the u-boot console as follows.

  • Stop in the u-boot
   Autoboot in 1 seconds, press <Space> to stop
   =>
  • List all supported LCD panels:
   olinuxino monitor list
   
   Supported video outputs:
   ----------------------------------------
   LCD-OLinuXino                  - Video outout to the LCD connector with AUTO detect function
   LCD-OLinuXino-4.3TS            - Video output to LCD-OLinuXino-4.3TS
   LCD-OLinuXino-7                - Video output to LCD-OLinuXino-7
   LCD-OLinuXino-5                - Video output to LCD-OLinuXino-5
   LCD-OLinuXino-10               - Video output to LCD-OLinuXino-10
  • Set configuration, for example LCD-OLinuXino-7
   olinuxino monitor set LCD-OLinuXino-7
  • You can make changes permanent with:
   saveenv
  • Reboot the board and you're ready:
   reset

Building u-boot

Get the latest sources:

 git clone https://github.com/OLIMEX/u-boot.git
 cd u-boot

Build it:

 make A20-OLinuXino_defconfig
 make CROSS_COMPILE=arm-linux-gnueabihf-


Updating via USB

You can write the new u-boot to MMC, eMMC, SPI Flash or NAND (not fully supported) using DFU protocol.

Boot the board and stop at u-boot console. Connect USB-mini cable to a host PC.


Update SPI flash

Check the available partitions with:

   => mtd
   
   device nor0 <flash.0>, # parts = 4
    #: name		size		offset		mask_flags
    0: SPI.u-boot          0x00200000	0x00000000	0
    1: SPI.u-boot-env      0x00020000	0x00200000	0
    2: SPI.u-boot-env.backup0x00020000	0x00220000	0
    3: SPI.user            0x00dc0000	0x00240000	0
   
   active partition: nor0,0 - (SPI.u-boot) 0x00200000 @ 0x00000000
   
   defaults:
   mtdids  : nand0=nand.0,nor0=nor.0
   mtdparts: mtdparts=nand.0:4m(NAND.SPL),4m(NAND.SPL.backup),4m(NAND.u-boot),4m(NAND.u-boot.backup),4m(NAND.u-boot-env),4m(NAND.u-boot-env.backup),4m(NAND.dtb),16m(NAND.kernel),-(NAND.rootfs);nor.0:2m(SPI.u-boot),128k(SPI.u-boot-env),128k(SPI.u-boot-env.backup),-(SPI.user)
   

Activate DFU protocol with:

   => dfu 0 sf "0:0:25000000:0"
   interface: sf, devstr: 0:0:25000000:0

Next, on the host PC run:

   dfu-util -l
   
   dfu-util 0.9
   
   Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
   Copyright 2010-2016 Tormod Volden and Stefan Schmidt
   This program is Free Software and has ABSOLUTELY NO WARRANTY
   Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
   
   Found DFU: [15ba:0041] ver=0215, devnum=6, cfg=1, intf=0, path="3-2", alt=2, name="SPI.u-boot-env.backup", serial="ffffffff"
   Found DFU: [15ba:0041] ver=0215, devnum=6, cfg=1, intf=0, path="3-2", alt=1, name="SPI.u-boot-env", serial="ffffffff"
   Found DFU: [15ba:0041] ver=0215, devnum=6, cfg=1, intf=0, path="3-2", alt=0, name="SPI.u-boot", serial="ffffffff"

Update u-boot binary with:

   dfu-util -D spl/u-boot-spl.bin -a SPI.u-boot

Update SD/eMMC card

Stop loading in the u-boot. To check available MMC devices run:

   mmc list

If the board is booted from SD card and you also have eMMC, the output will be:

   mmc@01c0f000: 0 (SD)
   mmc@01c11000: 1 (eMMC)

Connect USB-mini cable enter:

   ums 0 mmc 0

or:

   ums 0 mmc 1

New mass storage device will show-up on the host computer. To write u-boot use:

   sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX seek=16 conv=sync

where /dev/sdX should be replaced with the new device, /dev/sdb, /dev/sdc, etc.

Building image

Make sure to take a look at the official Armbian documentation here: https://docs.armbian.com

  • Clone repository
 git clone --branch olimex https://github.com/olimex/build
  • Run build script
   cd build
   ./compile

Building requires root access. System preparation can take long, depending on system, internet connection, etc. After everything is ready a prompt will appear:

   Select what to build:
       -> U-boot and kernel packages 
       -> Full OS image for flashing

The first option will build only u-boot and kernel packages. This is suitable for updating image. The second option will make ready to use image with u-boot, kernel and rootfs.

   Select the kernel configuration:
       -> Do not change the kernel configuration
       -> Show a kernel configuration menu before compilation

Here you can modify kernel configuration, before build. After that target must be selected. Olimex's images are not officially supported by Armbian team, so you must select Show CSC/WIP/EOS option.

   Select the target board. Displaying:
       -  (CSC)  -  Community Supported Configuration
       -  (WIP)  -  Work In Progress
       -  (ESO)  -  End Of Support


Here select either:

   olinuxino-a20  - Common configuration file for All A20-OLinuXino boards

or

   olinuxino-a33  - A33 quad core 1Gb Soc


Next kernel variant must be selected. Here select next branch:

   Select the target kernel branch
   Exact kernel versions depend on selected board
       -> default  Vendor provided / legacy (3.4.x - 4.4.x)
       -> next     Mainline (@kernel.org)   (4.x)
       -> dev      Development version      (4.x)


Next select distribution:

   Select the target OS release
       -> jessie   Debian 8 Jessie / unsupported
       -> stretch  Debian 9 Stretch
       -> xenial   Ubuntu Xenial 16.04 LTS
       -> bionic   Ununtu Bionic 18.04 LTS


Finally select building desktop environment or not:

   Select the target image type
       -> Image with console interface (server)
       -> Image with desktop environment


After some time the image / packages will be available in the output directory. For example:

   tree output
   |-- debs
   |   |-- armbian-config_5.65_all.deb
   |   |-- armbian-firmware_5.65_all.deb
   |   |-- armbian-firmware-full_5.65_all.deb
   |   |-- armbian-tools-bionic_5.65_armhf.deb
   |   |-- bionic
   |   |   |-- armbian-bionic-desktop_5.65_all.deb
   |   |   |-- linux-bionic-root-next-olinuxino-a20_5.65_armhf.deb
   |   |-- linux-dtb-next-sunxi_5.65_armhf.deb
   |   |-- linux-headers-next-sunxi_5.65_armhf.deb
   |   |-- linux-image-next-sunxi_5.65_armhf.deb
   |   |-- linux-source-next-sunxi_5.65_all.deb
   |   |-- linux-u-boot-next-olinuxino-a20_5.65_armhf.deb
   |--images
   |   |-- Armbian_5.65_Olinuxino-a20_Ubuntu_bionic_next_4.19.5_desktop.img
  • Flashing image

Put sdcard in the host PC. New device should appear, e.g. /dev/sdc. Flash the image using the following command:

 # dd if=/path/to/Armbian_5.65_Olinuxino-a20_Ubuntu_bionic_next_4.19.5_desktop.img.img of=/dev/sdx bs=10M

Replace /dev/sdx with your device. You must use /dev/sdx, not /dev/sdx1!