OpenWRT supports the ESPRESSObin Ultra since 2020. Official builds are available.
In thins gist I want to explain how to install the image onto the board via a USB thumb drive.
- ESPRESSObin Ultra
- 12V 2A DC or PoE power supply
- USB A to USB Micro-B cable
- wired internet connection
- Download the most recent version of the sd card image, decompress it and write it to the USB drive (in my case
/dev/sdb/
).
cd $(mktemp -d)
wget http://downloads.openwrt.org/snapshots/targets/mvebu/cortexa53/openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img.gz
gunzip openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img.gz
sudo dd if=openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img status=progress obs=64k oflag=direct of=/dev/sdb
- Plug the USB drive into the ESPRESSObin
- Connect your computer with it via the USB cable
- Connect the ESPRESSObin to a wired network with internet access via the WAN port
- Power it on.
# on my computer the serial connection appears as /dev/ttyUSB0
screen -L /dev/ttyUSB0 115200
# hiter enter repeatedly to drop into bootloader shell (Marvell>>)
# start usb subsystem
usb start
# check contents of kernel partition
ext4ls usb 0:1
<DIR> 4096 .
<DIR> 4096 ..
<DIR> 4096 lost+found
10268680 Image
12224 armada-3720-espressobin-ultra.dtb
973 boot.scr
# set file names
setenv image_name Image
setenv fdt_name armada-3720-espressobin-ultra.dtb
# save file names to non-volatile storage
saveenv
# load files
ext4load usb 0:1 $kernel_addr_r $image_name
ext4load usb 0:1 $fdt_addr_r $fdt_name
# set boot argument line
setenv bootargs $console root=/dev/sda2 rw rootwait
# boot this kernel
booti $kernel_addr_r - $fdt_addr_r
# hiter enter repeatedly to drop into console
# download and decompress image again, but on the ESPRESSObin
cd $(mktemp -d)
wget http://downloads.openwrt.org/snapshots/targets/mvebu/cortexa53/openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img.gz
gunzip openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img.gz
# write the image to the eMMC
dd if=./openwrt-mvebu-cortexa53-globalscale_espressobin-ultra-squashfs-sdcard.img of=/dev/mmcblk0 && sync
# shut down
poweroff
- Remove the USB drive
- Turn ESPRESSObin off and on again