As routers grow with more storage and memory, it opens up your router to use a wider selection of terminal packages, some of which are modernized/optimized for the terminal, and have more frequent releases.
More importantly, these standalone binaries do not conflict w/ the rest of your system, so unlike traditional installs, you are free to install/upgrade/delete the binaries w/o breaking things
Quick Need-to-Know
Summary
Storage Requirements
Go/Rust binaries are 2-10MB each (vs <100KB for typical OpenWrt apps).
- Ideally your router has 128MB+ flash or an extroot setup
- If you are unsure, check your available space:
df -h
Get Your Architecture
cat /etc/os-release |grep -i arch
Determine What It Means
ARMv7: Cortex-A7, A9, A15 โ Look for:
armv7-*-musleabihf(most specific, e.g., Rust projects)armv7orlinux-armv7(usually works, e.g., Go projects)armv7l(little-endian. Technically correct reference to the most common ARMv7 standard)
Choose .tar.gz format for OpenWrt
ARM64/AArch64: Cortex-A53, A55, A72, A76 โ Look for:
aarch64-*-musl(most specific, e.g., Rust projects)aarch64,arm64, orlinux-arm64(usually works, e.g., Go projects)
Choose .tar.gz format for OpenWrt
Alternative Confirmation method
Common Board targets
If you need additional confirmation, you can also run: cat /etc/os-release |grep -i board to check which Board you are running:
- ipq40xx (Cortex-A7) โ ARMv7
- ipq807x/ipq60xx (A53) โ ARM64
- mt7621 (MIPS) โ MIPS/MIPSel
- x86_64 โ x86_64
Installation
With the basic understanding out of the way, here's how to install the software:
- Go to the package repository on GitHub/Codeberg/etc
- Navigate to the 'Releases' page
- Find the package that corresponds to your architecture (read 'Need to Know' section if unsure). Right click it and select 'Copy URL'
- In your terminal, type
mkdir -p /tmp/myInstall && cd /tmp/myInstall. This creates a temporary folder that will be deleted at reboot and places you inside of the folder - Run
wget paste-copied-URL-hereto copy the file to your router. - A zipped file is now saved in the folder. Run
tar -xzf filenameto unzip the file - Look for the binary in the unzipped content. It is often a single word (snitch, zoxide, etc) and is the largest file. Since it is an executable, if you type
lsin your terminal, it will often be a highlighted. Example - Move the binary file with the rest of your binaries in the
/binfolder:mv binaryName /bin/folder. This is a part of$PATH, so you can use this package at any time by typing its name. - Test that it works by running the binary with the --version flag (ie:
zoxide --version) - (OPTIONAL) If you plan on installing multiple binaries and are pressed for storage, delete the unzipped contents:
cd ~ && rm -rf /tmp/myInstall
