Kernel: http://downloads.debwrt.net/firmware/snapshots/mips64/

Debian root filesystem: mips, http://downloads.debwrt.net/rootfs/snapshots/mips/

Introduction

The EdgeRouter Lite is yet another very affordable, high performance solution from Ubiquity. And now runs DebWrt! It can handle 1 million packets per second, allowing near gigabit link network throughput. Ideal at home or in small offices with gigabit fiber connections to the Internet.

This throughput is achieved using hardware accelerators with drivers which are closed source. As a result the OpenWrt/LEDE firmware can't use the offloading features. On OpenWrt the throughput is limited to ~130 mbit/s in a standard NAT setup and clearly is CPU bound.

Using the Ubiquiti stock kernel I measured ~940 mbit/s using iperf. Please note that the stock kernel does only provide offloading for a limited set of configurations: IPv4 or IPv6 forwarding with PPOE and VLAN support. No bridging support, only routing! For more information on performance and offloading limitations see: here.

DebWrt builds two kernels:

  • octeon.generic: OpenWrt/LEDE kernel (no hardware acceleration)
  • octeon-native.generic: Stock Ubiquiti kernel recompiled with DebWrt patches (allows hardware acceleration)

The latter is compiled without the use of the Cavium SDK, but using the gcc compiler, binutils and kernel sources provided in the Ubiquiti GPL archive. The offloading kernel modules from the original firmware provided by Ubiquiti can be used with this kernel, as suggested here

For questions, post a message on the forum or contact amain (at) debwrt.net directly.

Installation

Installation is somewhat different from 'standard' embedded devices. The erlite has a small ~ 2GB USB drive inside. A drive which can be replaced if needed. Normally we need to flash a device, but with the erlite both kernel and root filesystem reside on the USB drive. Which makes it an ideal device for running DebWrt.

There are 2 installation methods possible:

  • USB drive (requires opening the devices)
  • NFS boot (requires serial console)

The first method is the easiest and described below. The second method is described here: NfsBootSetup.

USB drive installation

Instead of setting up the internal USB disk via NFS boot, it can also be removed from the device and prepared in another computer. It is possible to setup dual boot: Original Ubiquiti firmware and DebWrt. But then the disk needs to be re-partitioned. The normal DebWrt installation applies, but:

  • Remove disk from erlite (just 3 small screws)
  • Don't overwrite first partition (sdb1)
  • Install DebWrt kernel(s) on sdb1, can be next to the original firmware. Use bootloader to select which kernel to load. See below.
  • Install rootfs on second partition (sdb2) or when using dual boot third partition (sdb3)
  • Use a swap file, not a partition (see /etc/fstab)
  • Create U-Boot script 'disk' to test...see NfsBootSetup#Bootfromdisk
  • Make device automatically boot by changing U-Boot script 'bootcmd'...see NfsBootSetup#Bootfromdisk

To restore original Ubiquity firmware or setup a new USB stick, see:

Building from source

Choose target system 'Cavium Networks Octeon' and profile 'Generic Octeon board'. This profile will built some images include the erlite. To build the Ubiquiti kernel, select firmware type 'DebWrt native' and and target 'Octeon EdgeRouter? Lite'.

For non DebWrt users, I posted the compilation instructions on the Ubiquiti forum: here.

Serial console connection

To connect to the RJ45 console port, use an Cisco Console cable (RJ45 to DB9). Or solder / 'hack' one using an (old) RJ45 cable and an (old) serial cable (DB female). I tested the latter and it turns out that only three wires need to be connected for full serial connection: GND, RX, TX. Quick and dirty but works like a charm.

Bootlogs

References

Last modified 10 months ago Last modified on Jan 29, 2017, 7:14:22 PM