installing armbian on espressobin

how to install armbian on the espressobin board

how to install armbian on espressobin

things needed:

  • ext4 formatted usb stick (to flash the bootloader)
  • sd card (for the os)

1. updating the bootloader

1.1 connecting to the espressobin

the espressobin wiki has this guide, which i followed.

connect the espressobin to your computer (dont plug in the power yet!), and run dmesg to get the right tty device.

in my case its /dev/ttyUSB0.

then, start c-kermit and paste these commands: (change /dev/ttyUSB0 to whatever it is in your case!)

set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set flow-control none
set handshake none
set prefixing all
set streaming off
set parity none
connect

after this, you can connect power to the board.

press enter on startup to stop autoboot, to access the bootloader shell.

1.2 flashing the bootloader

in the boot logs you will find the details of yor espressobin model.

TIM-1.0
WTMI-armada-17.10.1-4809244
ENTER init_ddrgen
DDR_TOPOLOGY is 2 :	DDR3, 2CS 512M + 512M
WTMI_CLOCK=2

Fill memory before self refresh...done

Fill memory before self refresh...done

Now in Self-refresh Mode
Restore CAS Read and Write Latency
Restore termination values to original values
Exited self-refresh ...

DLL TUNING
==============
   DLL 0xc0001050[21:16]: [0,21,10]
   DLL 0xc0001050[29:24]: [4,2f,19]
   DLL 0xc0001054[21:16]: [2,2b,16]
   DLL 0xc0001054[29:24]: [8,33,1d]
   DLL 0xc0001074[21:16]: [0,3f,1f]
   DLL 0xc0001074NOTICE:  Booting Trusted Firmware
NOTICE:  BL1: v1.3(release):armada-17.10.2:13f2984
NOTICE:  BL1: Built : 14:29:26, Oct  4 2NOTICE:  BL2: v1.3(release):armada-17.10.2:13f2984
NOTICE:  BL2: Built : 14:29:26, Oct  4 2017
NNOTICE:  BL31: v1.3(release):armada-17.10.2:13f2984
NOTICE:  BL31:

U-Boot 2017.03-armada-17.10.1-g440395a (Sep 25 2017 - 15:43:51 +0200)

Model: Marvell Armada 3720 Community Board ESPRESSOBin
       CPU    @ 1000 [MHz]
       L2     @ 800 [MHz]
       TClock @ 200 [MHz]
       DDR    @ 800 [MHz]
DRAM:  1 GiB
U-Boot DT blob at : 000000003f7182d8
Comphy-0: USB3          5 Gbps    
Comphy-1: PEX0          2.5 Gbps  
Comphy-2: SATA0         6 Gbps    
SATA link 0 timeout.
AHCI 0001.0300 32 slots 1 ports 6 Gbps 0x1 impl SATA mode
flags: ncq led only pmp fbss pio slum part sxs 
PCIE-0: Link down
MMC:   sdhci@d0000: 0
SF: Detected w25q32dw with page size 256 Bytes, erase size 4 KiB, total 4 MiB
Net:   eth0: neta@30000 [PRIME]

for my board, thats 1GB(2x 512MB) DDR3 ram on 800Mhz and 1Ghz cpu.

with this information, get the right file from here

the specs in the filenames are in the format MEM-RAM_CHIPS-CPU_DDR, so i get flash-image-ddr3-1g-2cs-1000_800.bin.

put this file on your ext4 formatted usb stick and plug it in your espressobin. (the armbian docs say you have to use a FAT formatted usb stick, but the board did not recognize the usb stick - so i just went with the espressobin docs and used ext4, which worked)

now you can flash the bootloader:

Marvell>> bubt flash-image-MEM-RAM_CHIPS-CPU_DDR.bin spi usb

with the new bootloader, a new bootscript is needed. run: (the snippet is copied from here https://www.armbian.com/espressobin/)

env default -a
setenv fdt_addr 0x6000000
setenv kernel_addr 0x7000000
setenv loadaddr 0x8000000
setenv initrd_size 0x2000000
setenv initrd_addr 0x1100000
setenv scriptaddr 0x6d00000
setenv initrd_image uInitrd
setenv image_name Image
setenv boot_targets 'usb sata mmc1 mmc0'
setenv boot_prefixes '/ /boot/'
setenv bootcmd_mmc0 'setenv devnum 0; setenv boot_interface mmc; run scan_dev_for_boot;'
setenv bootcmd_mmc1 'setenv devnum 1; setenv boot_interface mmc; run scan_dev_for_boot;'
setenv bootcmd_sata 'setenv devnum 0; scsi scan; scsi dev 0; setenv boot_interface scsi; run scan_dev_for_boot;'
setenv bootcmd_usb 'setenv devnum 0; usb start;setenv boot_interface usb; run scan_dev_for_boot;'
setenv bootcmd 'for target in ${boot_targets}; do run bootcmd_${target}; done'
setenv scan_dev_for_boot 'for prefix in ${boot_prefixes}; do echo ${prefix};run boot_a_script; done'
setenv boot_a_script 'ext4load ${boot_interface} ${devnum}:1 ${scriptaddr} ${prefix}boot.scr;source ${scriptaddr};'
saveenv
# Including this line to make sure saveenv is executed.

for some reason, when just pasting the whole block to the shell, there were some characters missing - so i had to paste it line by line… :/

2. installing armbian

after you upgraded the bootloader, get your armbian image. download the version you want (from armbian.com/espressobin) unpack it, and dd the file to your sd card:

sudo dd if=Desktop/Armbian_XYZ.img of=/dev/sdX

flashing will probably take a few minutes. grab a coffee. :)

when its finished, plug the sd card in your espressobin and restart - it should boot into your new debian!

the default login is root / 1234. you will need to change the password on first boot, and also create a user.

after this its safe to unplug the board and connect it to your router, connect via ssh, run updates, have some debian fun. :)

after connecting via ssh, i noticed that the remote terminal was behaving a bit weird. was fixed after i set TERM=xterm-256color.

Last modified 2019.07.11