Skip to content

Instantly share code, notes, and snippets.

@cyber-murmel
Last active January 28, 2024 05:43
Show Gist options
  • Save cyber-murmel/759f7d672bced1258cbc61b991a80fae to your computer and use it in GitHub Desktop.
Save cyber-murmel/759f7d672bced1258cbc61b991a80fae to your computer and use it in GitHub Desktop.
OpenWRT on ESPRESSObin Ultra

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.

All you need

  • ESPRESSObin Ultra
  • 12V 2A DC or PoE power supply
  • USB A to USB Micro-B cable
  • wired internet connection

Steps

  1. 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
  1. Plug the USB drive into the ESPRESSObin
  2. Connect your computer with it via the USB cable
  3. Connect the ESPRESSObin to a wired network with internet access via the WAN port
  4. 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
  1. Remove the USB drive
  2. Turn ESPRESSObin off and on again
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment