Ubiquiti EdgeRouter Pro

EdgeMAX EdgeRouter PRO (ERPro-8) is an 8-Port Router with 2 SFP/RJ45 Ports (Rack 19“)

ModelVersionSoCCPU MHzFlash MBRAM MBWLAN HardwareWLAN2.4WLAN5.0100M portsGbit portsModemUSB
EdgeRouter Pro (ERPro-8)Cavium CN6120100040962048----8-1x 2.0

The layout of the SPI flash is not known, mostly because it is not important since the installation and operation of OpenWrt occurs entirely within the eMMC flash drive. The eMMC drive contains two partitions, one holding the kernel and the other is the rootfs.

  1. Get the appropriate RJ45 Console Port cable (see below for details)
  2. Create a USB Drive with a single FAT32 partition (32MB should be adequate).
  3. Download octeon-ubnt_edgerouter-initramfs-kernel.bin from either current or snapshot release onto the USB Drive – You can rename the file to initramfs-kernel.bin
  4. Download octeon-ubnt_edgerouter-squashfs-sysupgrade.tar from either current or snapshot release onto the USB Drive - You can rename the file to sysupgrade.tar
    On Linux OS your can use the following “lazy” script to download files are mentioned above to USB Drive (e.g. /dev/sdb1):
    export USBDRIVE=/dev/sdb1
    export URL="https://downloads.openwrt.org/releases"
    export RELEASE=21.02.2
    export TMPDIR=`mktemp -d`
    sudo mount $USBDRIVE $TMPDIR -o umask=000
    wget -O $TMPDIR/initramfs-kernel.bin $URL/$RELEASE/targets/octeon/generic/openwrt-$RELEASE-octeon-ubnt_edgerouter-initramfs-kernel.bin
    wget -O $TMPDIR/sysupgrade.tar $URL/$RELEASE/targets/octeon/generic/openwrt-$RELEASE-octeon-ubnt_edgerouter-squashfs-sysupgrade.tar
    sync; sudo umount $USBDRIVE
    rmdir $TMPDIR
  5. Unplug the power cord.
  6. Connect the Console Cable
  7. Start a Terminal-Client (8N1 115200 Baud), for example by running screen /dev/ttyUSB0 115200
  8. Plug in the power cord.
  9. Immediately hold down the enter key on your keyboard.
  10. This should halt the boot process and give you a Bootloader-Prompt Octeon ubnt_e200# (If the device continues to boot try again).
  11. Read the initramfs-kernel.bin file from USB into RAM as below:
    Octeon ubnt_e200# usb start
    (Re)start USB...
    USB:   USB EHCI 1.00
    scanning bus for devices... 2 USB Device(s) found
           scanning bus for storage devices... 1 Storage Device(s) found
    Octeon ubnt_e200# usb part 0
    Partition Map for USB device 0  --   Partition Type: DOS
    Partition     Start Sector     Num Sectors     Type
        1                 2048        15824896       b
    Octeon ubnt_e200# fatload usb 0:1 0x20000000 initramfs-kernel.bin
    reading initramfs-kernel.bin
    14688528 bytes read
    Octeon ubnt_e200# bootoctlinux 0 numcores=2 endbootargs mem=0
  12. A minimal OpenWrt environment will boot from RAM. Wait until the boot finishes and hit Enter. It should appear similar to below:
    BusyBox v1.30.1 () built-in shell (ash)
      _______                     ________        __
     |       |.-----.-----.-----.|  |  |  |.----.|  |_
     |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
     |_______||   __|_____|__|__||________||__|  |____|
              |__| W I R E L E S S   F R E E D O M
     OpenWrt 19.07.4, r11208-ce6496d796
    === WARNING! =====================================
    There is no root password defined on this device!
    Use the "passwd" command to set up a new password
    in order to prevent unauthorized SSH logins.
  13. Now mount the USB device and run sys upgrade as below to install to the internal eMMC drive:
    root@OpenWrt:/# mount /dev/sda1 /mnt
    root@OpenWrt:/# sysupgrade -n /mnt/sysupgrade.tar
    Image not in /tmp, copying...
    Image metadata not found
    Saving config files...
    Commencing upgrade. Closing all shell sessions.
    Watchdog handover: fd=3
    - watchdog -
    killall: telnetd: no process killed
    Sending TERM to remaining processes ... uhttpd ntpd udhcpc odhcp6c fw3 ubusd urngd logd rpcd dnsmasq netifd odhcpd 
    Sending KILL to remaining processes ... 
    Switching to ramdisk...
    Performing system upgrade...
    flashing kernel to /dev/mmcblk0p1
    flashing rootfs to /dev/mmcblk0p2
    567+1 records in
    567+1 records out
    Upgrade completed
    Rebooting system...
    umount: can't unmount /dev: Resource busy
    umount: can't unmount /tmp: Resource busy
    [  332.085722] reboot: Restarting system
  14. The EdgeRouter Pro now reboots into the newly flashed OpenWrt system and you can proceed with configuration.

Specific values needed for tftp

FIXME Enter values for “FILL-IN” below

Bootloader tftp server IPv4 address FILL-IN
Bootloader MAC address (special) FILL-IN
Firmware tftp image Latest OpenWrt release (NOTE: Name must contain “tftp”)
TFTP transfer window FILL-IN seconds
TFTP window start approximately FILL-IN seconds after power on
TFTP client required IP address FILL-IN


  • Browse to LuCI Upgrade URL
  • Upload image file for sysupgrade to LuCI
  • Wait for reboot

If you don't have a GUI (LuCI) available, you can alternatively upgrade via the command line.

Note: It is important that you put the firmware image into the ramdisk (/tmp) before you start flashing.


  • Login as root via SSH on, then enter the following commands:
cd /tmp
wget http://downloads.openwrt.org/snapshots/trunk/XXX/xxx.abc
sysupgrade /tmp/xxx.abc

Flashing back to Factory Firmware is a quite easy procedure. You need just run a recovery image from USB Drive in bootloader prompt once.

  1. Download the current EdgeRouter recovery image from the relevant article in Ubiquiti Support and Help Center to USB Drive with a single FAT32 partition.
    On a Linux system, you can use the following fast script (don't forget to put the right USB device path!):
    export USBDRIVE=/dev/sdb1
    export TMPDIR=`mktemp -d`
    sudo mount $USBDRIVE $TMPDIR -o umask=000
    wget -O $TMPDIR/vmlinux.64 https://dl.ui.com/firmwares/edgemax/v2.0.x/ER-e200.recovery.v2.0.6.5208554.190708.0611.16de5fdde.vmlinux.64
    sync; sudo umount $USBDRIVE
    rmdir $TMPDIR 
  2. Plug the USB Drive with recovery image to powered off device and do steps 5-10 from Easy installation via Serial and USB section.
  3. At the bootloader prompt:
    # Read the recovery image from USB Drive
    Octeon ubnt_e200# usb start
    Octeon ubnt_e200# fatload usb 0:1 0x20000000 vmlinux.64
    # Boot to recovery image
    Octeon ubnt_e200# bootoctlinux 0 

Recovery image will do all necessary actions and after reboot you'll get a default Edgemax firmware.

Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.

The default network configuration is:

Interface Name Description Default configuration
br-lan (eth0) LAN port 0
wan (eth1) LAN port 1 DHCP
(eth2) LAN port 2 Not configured
(eth3) LAN port 3 Not configured
(eth4) LAN port 4 Not configured
(eth5) LAN port 5 Not configured
(eth6) LAN port 6 Not configured
(eth7) LAN port 7 Not configured

The bridge on eth0 is useless since eth2-7 are not configured, and disabling it might increase performance.

No Switch Ports on device

hardware.button on howto use and configure the hardware button(s). Here, we merely name the buttons, so we can use them in the above Howto.

The Ubiquiti EdgeRouter has the following buttons:

Reset reset
Brand Ubiquiti
Model EdgeRouter Pro (ERPro-8)
Device Type Router
Availability unknown 2020
Comments - general
OpenWrt Support
Supported Since Commit https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=1b6dece9eaf60a041fd557edb07e55133a86f099
Supported Since Release 15.05
Supported Current Release 22.03.2
Bootloader U-Boot
Target octeon
System-On-Chip Cavium CN6120
CPU MHz 1000
Flash MB 4096
RAM MB 2048
Ethernet 100M ports -
Ethernet Gbit ports 8
Switch ¿
Modem -
Comments - network ports 2xSFP
WLAN 2.4GHz -
WLAN 5.0GHz -
WLAN Hardware -
Detachable Antennas -
Comments - WLAN
USB ports 1x 2.0
SATA ports -
Serial Yes
Comments - USB & SATA ports
LED count 1
Button count 1
Power supply 100 - 240 VAC, 50/60 Hz
Forum Topic URL
WikiDevi URL https://wikidevi.wi-cat.ru/Ubiquiti_Networks_EdgeRouter_PRO
OEM device homepage URL https://www.ubnt.com/edgemax/edgerouter/
Firmware OEM Stock URL https://www.ui.com/download/edgemax/edgerouter-pro
Firmware OpenWrt Install URL https://downloads.openwrt.org/releases/22.03.2/targets/octeon/generic/openwrt-22.03.2-octeon-ubnt_edgerouter-initramfs-kernel.bin
Firmware OpenWrt Upgrade URL https://downloads.openwrt.org/releases/22.03.2/targets/octeon/generic/openwrt-22.03.2-octeon-ubnt_edgerouter-squashfs-sysupgrade.tar
Edit the underlying data View/Edit data



Backside label:

Opening this device exposes
parts under high voltage (110/230 VAC)!

  • Risk of deadly electrical shock
  • Risk of irreversable damage to other components attached, e.g. your PC connected via serial

Make sure to keep your fingers, conductive tools and serial cables away from the high voltage at all times!

Capacitors can still retain dangerous voltages
after disconnection from mains!

Continue at your own risk!

Note: This will void your warranty!

The case is easily opened by removing the 3 Phillips head screws at the lower back of the device. Then pull the top back from the front plate.

Main PCB:
Insert photo of PCB

port.serial general information about the serial port, serial port cable, etc.

How to connect to the Serial Port of this specific device:
Insert photo of PCB with markings for serial port

There is an RJ45 console port which can be used with an RJ45 to 9pin serial cable or RJ45 to USB Console cable. The connector pinout is the same as those found on much Cisco equipment and it uses true RS-232 levels. USB to TTL adapters must not be connected to this port, as the voltage levels are not compatible. Use a USB to RS-232 adapter or 9 pin RS-232 port mostly found on older computers, along with a 9 pin to RJ45 adapter wired to the Cisco standard.

Serial connection parameters
for Ubiquiti EdgeRouter Pro
115200, 8N1

port.jtag general information about the JTAG port, JTAG cable, etc.

There appears to be a standard 14-pin JTAG port located at J2.

Insert photo of PCB with markings for JTAG port

RAM is provided via a 2GB 204-Pin PC3-12800 SODIMM. There are reports of successful upgrades to both 4GB and 8GB.

Jumping to start of image at address 0xbfca0000 U-Boot 2012.04.01 (UBNT Build ID: 4670715-g7c4b1d0) (Build time: May 27 2014 - 11:19:05) Skipping PCIe port 0 BIST, in EP mode, can't tell if clocked. Skipping PCIe port 1 BIST, reset not done. (port not configured) BIST check passed. UBNT_E200 r1:0, r2:19, serial #: FCECDA45614D MPR 13-00317-19 Core clock: 1000 MHz, IO clock: 600 MHz, DDR clock: 533 MHz (1066 Mhz DDR) Base DRAM address used by u-boot: 0x8f800000, size: 0x800000 DRAM: 2 GiB Clearing DRAM...... done Flash: 8 MiB Net: octeth0, octeth1, octeth2, octeth3, octeth4, octeth5, octeth6, octeth7 MMC: Octeon MMC/SD0: 0 USB: USB EHCI 1.00 scanning bus for devices... 1 USB Device(s) found Type the command 'usb start' to scan for USB storage devices. Hit any key to stop autoboot: 0 reading vmlinux.64 5319248 bytes read argv[2]: numcores=2 argv[3]: endbootargs Allocating memory for ELF segment: addr: 0xffffffff80100000 (adjusted to: 0x100000), size 0x53b1f0 ## Loading big-endian Linux kernel with entry point: 0xffffffff80423e60 ... Bootloader: Done loading app on coremask: 0x3 Starting cores 0x3 Linux version 3.4.27-UBNT (ancheng@ubnt-builder2) (gcc version 4.7.0 (Cavium Inc. Version: SDK_3_0_0 build 16) ) #1 SMP Mon Oct 14 18:16:38 PDT 2013 CVMSEG size: 2 cache lines (256 bytes) Cavium Inc. SDK-3.0 bootconsole [early0] enabled CPU revision is: 000d9301 (Cavium Octeon II) Checking for the multiply/shift bug... no. Checking for the daddiu bug... no. Determined physical RAM map: memory: 000000000e800000 @ 0000000000700000 (usable) memory: 0000000000c00000 @ 000000000f200000 (usable) memory: 000000006f800000 @ 0000000020000000 (usable) memory: 000000000003a000 @ 00000000005d6000 (usable after init) Wasting 83664 bytes for tracking 1494 unused pages Using passed Device Tree <8000000000080000>. Placing 0MB software IO TLB between 8000000002c0a000 - 8000000002c4a000 software IO TLB at phys 0x2c0a000 - 0x2c4a000 Zone PFN ranges: DMA32 0x000005d6 -> 0x000f0000 Normal empty Movable zone start PFN for each node Early memory PFN ranges 0: 0x000005d6 -> 0x00000610 0: 0x00000700 -> 0x0000ef00 0: 0x0000f200 -> 0x0000fe00 0: 0x00020000 -> 0x0008f800 Cavium Hotplug: Available coremask 0x0 Primary instruction cache 37kB, virtually tagged, 37 way, 8 sets, linesize 128 bytes. Primary data cache 32kB, 32-way, 8 sets, linesize 128 bytes. Secondary unified cache 1024kB, 16-way, 512 sets, linesize 128 bytes. PERCPU: Embedded 10 pages/cpu @8000000002c6f000 s9216 r8192 d23552 u40960 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 511210 Kernel command line: root=/dev/mmcblk0p2 rootdelay=10 rw rootsqimg=squashfs.img rootsqwdir=w mtdparts=phys_mapped_flash:640k(boot0),640k(boot1),64k(eeprom) console=ttyS0,115200 PID hash table entries: 4096 (order: 3, 32768 bytes) Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes) Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes) Memory: 2044368k/2076904k available (3259k kernel code, 32536k reserved, 1688k data, 232k init, 0k highmem) Hierarchical RCU implementation. NR_IRQS:256 Calibrating delay loop (skipped) preset value.. 2000.00 BogoMIPS (lpj=10000000) pid_max: default: 32768 minimum: 301 Security Framework initialized Mount-cache hash table entries: 256 Checking for the daddi bug... no. SMP: Booting CPU01 (CoreId 1)... CPU revision is: 000d9301 (Cavium Octeon II) Brought up 2 CPUs NET: Registered protocol family 16 PTP Clock: Using sclk reference at 600000000 Hz bio: create slab <bio-0> at 0 usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb Switching to clocksource OCTEON_CVMCOUNT NET: Registered protocol family 2 IP route cache hash table entries: 65536 (order: 7, 524288 bytes) TCP established hash table entries: 262144 (order: 10, 4194304 bytes) TCP bind hash table entries: 65536 (order: 8, 1048576 bytes) TCP: Hash tables configured (established 262144 bind 65536) TCP: reno registered UDP hash table entries: 1024 (order: 3, 32768 bytes) UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes) NET: Registered protocol family 1 ERROR: octeon_pci_console_setup0 failed. /proc/octeon_perf: Octeon performance counter interface loaded squashfs: version 4.0 (2009/01/31) Phillip Lougher Registering unionfs 2.5.11 (for 3.4) msgmni has been set to 3992 io scheduler noop registered io scheduler cfq registered (default) Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled loop: module loaded ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver octeon-ehci 16f0000000000.ehci: Octeon EHCI octeon-ehci 16f0000000000.ehci: new USB bus registered, assigned bus number 1 octeon-ehci 16f0000000000.ehci: irq 56, io mem 0x16f0000000000 octeon-ehci 16f0000000000.ehci: USB 0.0 started, EHCI 1.00 hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver octeon-ohci 16f0000000400.ohci: Octeon OHCI octeon-ohci 16f0000000400.ohci: new USB bus registered, assigned bus number 2 octeon-ohci 16f0000000400.ohci: irq 56, io mem 0x16f0000000400 hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected usbcore: registered new interface driver libusual i2c-octeon 1180000001000.i2c: version 2.0 i2c-octeon 1180000001200.i2c: version 2.0 octeon_wdt: Initial granularity 5 Sec TCP: cubic registered NET: Registered protocol family 17 NET: Registered protocol family 15 L2 lock: TLB refill 256 bytes L2 lock: General exception 128 bytes L2 lock: low-level interrupt 128 bytes L2 lock: interrupt 640 bytes L2 lock: memcpy 1152 bytes 1180000000800.serial: ttyS0 at MMIO 0x1180000000800 (irq = 34) is a OCTEON console [ttyS0] enabled, bootconsole disabled console [ttyS0] enabled, bootconsole disabled 1180000000c00.serial: ttyS1 at MMIO 0x1180000000c00 (irq = 35) is a OCTEON Bootbus flash: Setting flash for 8MB flash at 0x1f400000 phys_mapped_flash: Found 1 x16 devices at 0x0 in 8-bit bank. Manufacturer ID 0x0000c2 Chip ID 0x0000c9 Amd/Fujitsu Extended Query Table at 0x0040 Amd/Fujitsu Extended Query version 1.1. phys_mapped_flash: Swapping erase regions for top-boot CFI table. number of CFI chips: 1 3 cmdlinepart partitions found on MTD device phys_mapped_flash Creating 3 MTD partitions on "phys_mapped_flash": 0x000000000000-0x0000000a0000 : "boot0" 0x0000000a0000-0x000000140000 : "boot1" 0x000000140000-0x000000150000 : "eeprom" mmc0: new high speed MMC card at address 0001 mmcblk0: mmc0:0001 SEM04G 3.68 GiB Waiting 10sec before mounting root device... mmcblk0boot0: mmc0:0001 SEM04G partition 1 2.00 MiB mmcblk0boot1: mmc0:0001 SEM04G partition 2 2.00 MiB mmcblk0: p1 p2 mmcblk0boot1: unknown partition table mmcblk0boot0: unknown partition table kjournald starting. Commit interval 5 seconds EXT3-fs (mmcblk0p2): using internal journal EXT3-fs (mmcblk0p2): recovery complete EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode VFS: Mounted root (unionfs filesystem) on device 0:10. Freeing unused kernel memory: 232k freed Algorithmics/MIPS FPU Emulator v1.5 ^MINIT: version 2.88 booting ^MINIT: Entering runlevel: 2 Starting routing daemon: rib. Starting EdgeOS router: migrate rl-system configure. Welcome to EdgeOS ubnt ttyS0 By logging in, accessing, or using the Ubiquiti product, you acknowledge that you have read and understood the Ubiquiti License Agreement (available in the Web UI at, by default, and agree to be bound by its terms. ubnt login:


Space for additional notes, links to forum threads or other resources.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2022/06/25 08:00
  • by tmomas