Skip to content

Gold Coast

Gold Coast (goldcoast.lan) is the house router for portland. The configuration and this doc are at https://bitbucket.org/houselan/config/src/master/

LEDE 19.07 on the Ubiquity ER-lite3

The Ubiquity EdgeRouter Lite is my new favorite OpenWrt device. It is fast and inexpensive ($150 new) and the os is on a USB Stick. [[Image(https://prd-www-cdn.ubnt.com/media/images/product-features/ER-lite-features-UNMS.jpg)]]

Pros

  • 3 independent Gigabit network ports.
  • Serial Console
  • Cheap and still supported.
  • Stock Edge-os would work for most tasks.
  • OS on a USB-stick easiest backup and install EVER.
  • 512 K of memory.

Cons (some assembly required)

  • Because the stock usb stick and (unused) flash is only 4K LEDE considers it a 4K and are threatening to stop producing stock images after 19.07.
  • Third party usb sticks take longer to start up than the on board bootloader (U-boot) expects. So a pause and usb reset need to be configured.

How do I get set up?

Building 19.07 for the device

  • Getting the source. See LEDE documentation for dependencies.

    feurig@vasily:~$ git clone https://git.openwrt.org/openwrt/openwrt.git

  • Building for the target

    feurig@vasily:~$ cd openwrt/ feurig@vasily:~/openwrt$ make clean feurig@vasily:~/openwrt$ git pull feurig@vasily:~/openwrt$ ./scripts/feeds update -a feurig@vasily:~/openwrt$ ./scripts/feeds install -a feurig@vasily:~/openwrt$ make menuconfig feurig@vasily:~/openwrt$ make -j8 download world feurig@vasily:~/openwrt$ mv bin/targets/octeon/generic/openwrt-octeon-ubnt_edgerouter-lite-ext4-sysupgrade.tar.gz ~/firmware/ feurig@vasily:~/openwrt$ ./scripts/diffconfig.sh > ../firmware/openwrt-octeon-ubnt_edgerouter-lite-ext4-sysupgrade.diffconfig

Deploying the image

  • download the image from vasily

    feurig@colbert:~ $ scp feurig@wrt.suspectdevices.com:firmware/openwrt-octeon-ubnt_edgerouter-lite-ext4-sysupgrade.tar.gz .

  • Format the stick with 2 partitions (142M dos and the lemaining linux)

    root@colbert:~ # fdisk -l ... On our machine, this is our disk ... Disk /dev/sda: 7.6 GiB, 8166703104 bytes, 15950592 sectors ... root@colbert:~ # fdisk /dev/sda ... Partition disk here ... root@colbert:~ # fdisk -l ... Disk /dev/sda: 7.6 GiB, 8166703104 bytes, 15950592 sectors Disk model: USB 2.0 FD
    ... Device Boot Start End Sectors Size Id Type /dev/sda1 2048 292863 290816 142M c W95 FAT32 (LBA) /dev/sda2 292864 3710975 3418112 1.6G 83 Linux ... root@colbert:/home/feurig# mkfs.vfat /dev/sda1 root@colbert:/home/feurig# mkfs.ext4 /dev/sda2

  • copy firmware to usb stick

    root@colbert:~ # mkdir scratch root@colbert:~ # cd scratch/ root@colbert:~ # tar -xf ../openwrt-octeon-ubnt_edgerouter-lite-ext4-sysupgrade.tar.gz root@colbert:~ # mkdir root oroot kernel root@colbert:~ # mount /dev/sda1 kernel/ root@colbert:~ # mount /dev/sda2 root/ root@colbert:~ # mount sysupgrade-erlite/root oroot -o loop root@colbert:~ # cp sysupgrade-erlite/kernel kernel/vmlinux.64 root@colbert:~ # md5sum sysupgrade-erlite/kernel | cut -d' ' -f 1 > kernel/vmlinux.64.md5 root@colbert:~ # rsync -aHAX oroot/* root/ root@colbert:~ # umount kernel root oroot root@colbert:~ # sync

Fixing the bootloader for standard USB Sticks.

  • If the usb stick used takes longer than the stock one to initialize the boot will fail.

    don$ screen /dev/tty.usbserial 115200 ... U-Boot 1.1.1 (UBNT Build ID: 4670715-gbd7e2d7) (Build time: May 27 2014 - 11:16:22) . BIST check passed. UBNT_E100 r1:2, r2:18, f:4/71, serial #: 802AA84CE978 MPR 13-00318-18 Core clock: 500 MHz, DDR clock: 266 MHz (532 Mhz data rate) DRAM: 512 MB Clearing DRAM....... done Flash: 4 MB Net: octeth0, octeth1, octeth2 . USB: (port 0) scanning bus for devices... USB device not responding, giving up (status=0) 1 USB Devices found scanning bus for storage devices... No device found. Not initialized? 0

  • Getting the stock boot command

    Octeon ubnt_e100# printenv
    bootdelay=0 baudrate=115200 download_baudrate=115200 nuke_env=protect off $(env_addr) +$(env_size);erase $(env_addr) +$(env_size) autoload=n ethact=octeth0 bootcmd=fatload usb 0 $loadaddr vmlinux.64;bootoctlinux $loadaddr coremask=0x3 root=/dev/sda2 rootdelay=15 rw rootsqimg=squashfs.img rootsqwdir=w mtd ...

  • Copy the bootcmd from the existing environment and add a delay and usb reset

    Octeon ubnt_e100# setenv bootcmd 'sleep 10;usb reset;fatload usb 0 $loadaddr vmlinux.64;bootoctlinux $loadaddr coremask=0x3 root=/dev/sda2 rootdelay=15 rw rootsqimg=squashfs.img rootsqwdir=w mtd' Octeon ubnt_e100# saveenv Octeon ubnt_e100# reset

Basic LEDE Configuration

  • network
  • dnsmasq
  • firewall
  • /etc/ethers

References

Primary

  • https://community.ui.com/questions/EdgeMax-rescue-kit-now-you-can-reinstall-EdgeOS-from-scratch/58d474b4-604d-48c9-871d-ff44fd9240f3#M12098
  • https://www.kc8apf.net/2018/01/ubiquiti-edgerouter-lite-usb-surgery/
  • https://github.com/sowbug/mkeosimg
  • http://blog.darrenscott.com/2016/09/03/recovering-an-unresponsive-ubiquiti-edgerouter-lite-router/
  • https://community.ui.com/questions/New-U-Boot-image-for-better-USB-drive-compatibility/c59436cc-dfca-4fab-a923-ba5cdc688a6f?page=2