EdgeRouter Lite is a nice low budget router powerful enough to push packets around in a small home network and, best of all, you can run OpenBSD (with bootloader) on it# this means KARL will work and you can use sysupgrade(8) instead of messing with the /dev/sd0i partition.
This instructions are tested working with OpenBSD 7.0 and 7.1. This guide doesn't replace reading the official documentation.
Recommended reading
Parts needed
Cisco RJ45 to DB9 cable
DB9 Serial Port
EdgeRouter Lite
Sandisk Cruzer Fit 16GB
Internet connection
If your computer lacks a DB9 Serial Port you can use an USB to Serial adapter compatible with your operating system. My adapter is an UGREEN PL2303 supported by OpenBSD.
Installation
First of all download the latest image - in this case install70.img from octeon directory and once verified with signify(1) burn it into the Sandisk Cruzer Fit. There are several ways to do this depending on the operating system you use; in OpenBSD it could be done using dd(1), being sdXc the Sandisk USB device. Be careful with the 'of' parameter of this command since it will wipe your data if you choose the wrong disk:
$ doas dd if=install70.img of=/dev/rsdXc bs=1m
Insert the Sandisk USB inside the EdgeRouter Lite, replacing the USB drive it already has. With the Cisco cable connected to the Console port in the router use cu(1) (or Minicom is you use Linux) this way if you are using a USB to Serial adapter:
$ cu -l cuaU0 -s 115200
The user should belong to dialer group (usermod -G dialer youruser)
Or this way if you are using your computer's serial port:
$ cu -s 115200
Press some keys while you are connected to the console and the Edgerouter is booting. A shell will appear, then you have to enter these commands:
Octeon ubnt_e100# fatload usb 0 $loadaddr bsd.rd
Octeon ubnt_e100# bootoctlinux
At this point the OpenBSD installation goes as usual. After rebooting interrupt the Edgerouter boot process to configure the bootloader, saving the old boot command just in case you want to revert the installation:
Octeon ubnt_e100# setenv old_bootcmd "${bootcmd}"
Octeon ubnt_e100# setenv bootcmd 'usb reset; fatload usb 0 ${loadaddr} boot; bootoctlinux rootdev=sd0 numcores=2'
Octeon ubnt_e100# saveenv ; reset
Since the EdgeRouter Lite lacks an internal battery to keep the hour you want to add rdate pool.ntp.org to /etc/rc.local once installed and booted to sync the clock at every boot.