The one thing I would add to your list and wulfy's helpful notes is that the build system is pretty dicey on FreeBSD and I don't know that it has been shaken out on macOS at all. I'd recommend a VM running Debian (my current choice of Linux distros for interactive use). VirtualBox works well. As I recall you need at least 32 GB of disk, if not 64 GB. "Expandable" works fine for the disk. Setting up two interfaces, one for NAT and one for "host only" means that you'll be able to SSH in to your VM once the initial install/config is done. (You might have to configure "vboxnet0" in VirtualBox to get the host-only option.) If you can spare them, at least 4 cores will speed things. 1-2 GB of memory should be enough.
You can skip the graphical environment if you include sshd as one of the services in the install. I'd also install sudo (and make sure that your non-privileged user is in the right group, usermod -G sudo <you>
is, as I recall, the proper incantation.
Other than installing the packages with apt
, nothing should be run as root when building OpenWrt!
If you're 100% comfortable with working on the command line then the master
branch of OpenWrt would probably be fine.
If you want LuCI (what's behind the "Advanced Settings" in the GL.iNet menu and what you often see posted here), then I'd add luci-ssl-nginx
from the LuCI > Collections screen in make menuconfig
.
The GL.iNet firmware includes many solid "travel router" features that I find valuable and its merge-base of v18.06.1
is relatively recent. I run GL.iNet firmware on the AR750S that is with me on travel.
If you have an AR300M with NAND flash, only the GL.iNet firmware supports the NAND. Running master
would limit you to the 16 MB of NOR flash, which it probably sufficient. (I'm working on SPI NAND support on the other AR750S that is with me, but won't happen until after v19 is released.)
If building on master
, you should use the better-maintained ath79
target (ar71xx
is being deprecated). If you have an AR300M-Lite, there is a different target for that than the AR300M. The major difference is that as the -Lite has only a single Ethernet, it needs to be configured as LAN on first boot so that you can access the device (as well as in failsafe).
I personally add to most of my builds (on either source tree) that would possibly be useful to you
CONFIG_DEVEL=y
CONFIG_BUILD_LOG=y
CONFIG_CCACHE=y
CONFIG_PACKAGE_block-mount=y
CONFIG_PACKAGE_diffutils=y
CONFIG_PACKAGE_findutils-find=y
CONFIG_PACKAGE_htop=y
CONFIG_PACKAGE_kmod-fs-ext4=y
CONFIG_PACKAGE_kmod-usb-storage=y
CONFIG_PACKAGE_kmod-usb-storage-uas=y
CONFIG_PACKAGE_less=y
CONFIG_PACKAGE_procps-ng=y
CONFIG_PACKAGE_tcpdump-mini=y
CONFIG_PACKAGE_usbutils=y
# CONFIG_PACKAGE_wpad-basic is not set
CONFIG_PACKAGE_wpad-mesh-openssl=y
In make menuconfig
, the slash /
key lets you search. For common terms, something like GE_less
can focus the results more.