Benton SN-R1
Support for this device is pending in PR #25096. No official images are available until it is merged.
Hardware Highlights
| CPU | MediaTek MT7981B (Filogic 820), dual-core ARM Cortex-A53 @ 1.3 GHz |
|---|---|
| RAM | 1 GB DDR4 |
| Flash | 128 GB eMMC |
| Wireless | MediaTek MT7976C, 2.4 GHz 2×2 + 5 GHz 2×2, 802.11ax |
| Switch | MediaTek MT7531AE, 5x 1 GbE (4x LAN, 1x WAN) |
| LEDs | 3x status (blue / yellow / red) |
| Buttons | Reset, Mesh |
| Power supply | 12 V DC / 1.5 A |
Installation
No serial cable is needed. The U-Boot shipped on the device has a web failsafe that can boot an OpenWrt image from RAM.
Before you start: back up the factory partition (mmcblk0p2) from the stock firmware. It holds the Wi-Fi calibration data and MAC addresses of your unit. From an SSH shell on the stock firmware:
dd if=/dev/mmcblk0p2 of=/tmp/factory.bin
Then copy /tmp/factory.bin to your PC.
First install (U-Boot web failsafe)
- Connect your PC to a LAN port and give it the static address
192.168.1.2/24. - Hold the reset button while powering on the router, for about 5 seconds.
- Open
http://192.168.1.1in a browser and choose Load initramfs. - Upload
openwrt-mediatek-filogic-benton_sn-r1-initramfs-kernel.binand boot it. OpenWrt now runs from RAM only; nothing has been written yet. - Open LuCI at
http://192.168.1.1and flashopenwrt-mediatek-filogic-benton_sn-r1-squashfs-sysupgrade.binunder System → Backup / Flash Firmware, without keeping settings. Or copy it to/tmpand run:
sysupgrade -n /tmp/openwrt-mediatek-filogic-benton_sn-r1-squashfs-sysupgrade.bin
- After the reboot, OpenWrt runs from eMMC and is reachable at
192.168.1.1.
Testing without flashing
Follow steps 1–4 above and stop there. The initramfs image runs from RAM only; power-cycling the router returns it to the installed firmware.
Upgrading
On a device already running OpenWrt built with SN-R1 support, flash openwrt-mediatek-filogic-benton_sn-r1-squashfs-sysupgrade.bin through LuCI or with the sysupgrade command.
Note for earlier unofficial builds (for example 25.12.5 r33199): their upgrade script does not know this board uses eMMC, so a normal sysupgrade fails. Use the web failsafe method above instead.
Recovery
The U-Boot web failsafe (hold reset at power-on, then http://192.168.1.1) is always available and is not overwritten by OpenWrt. With a serial console, it can also be started from the U-Boot boot menu (a. Start Web failsafe).
Serial connection
A 3.3 V TTL serial adapter is only needed for debugging (boot log, U-Boot menu).
| Baud rate | 115200 |
|---|---|
| Data bits | 8 |
| Parity | None |
| Stop bits | 1 |
| Flow control | None |
Pinout (J6)
| Pin | Function | Notes |
|---|---|---|
| 1 | 3.3 V (square pad) | Do not connect |
| 2 | GND | Connect to the adapter's GND |
| 3 | RX | Connect to the adapter's TX |
| 4 | TX | Connect to the adapter's RX |
Set the USB-UART adapter to 3.3 V logic before connecting.
MAC Addresses
| Interface | Source |
|---|---|
| LAN (gmac0) | factory 0x2a |
| WAN | factory 0x24 |
| Wi-Fi 2.4 GHz | factory 0x4 (Wi-Fi EEPROM) |
| Wi-Fi 5 GHz | derived from the 2.4 GHz address (locally administered bit set) |
eMMC layout
| Partition | Name | Size | Contents |
|---|---|---|---|
| mmcblk0p1 | u-boot-env | 512 KiB | U-Boot environment |
| mmcblk0p2 | factory | 2 MiB | Wi-Fi calibration, MAC addresses |
| mmcblk0p3 | fip | 2 MiB | Bootloader (BL31 + U-Boot) |
| mmcblk0p4 | kernel | 32 MiB | OpenWrt kernel |
| mmcblk0p5 | rootfs | 1 GiB | OpenWrt root filesystem and settings overlay |
| mmcblk0p6 | userdata | ~109 GiB | Free for user data |
Using the userdata partition and zram swap (optional)
The 107 GB userdata partition (mmcblk0p6, ext4) is not mounted by default. To mount it automatically and add compressed swap in RAM, install these packages:
apk update apk add block-mount kmod-fs-ext4 zram-swap reboot
After the reboot, check the result:
cat /proc/swaps block info | grep mmcblk0p6 df -h /mnt/mmcblk0p6
If mmcblk0p6 is not mounted, enable automatic mounting:
uci set fstab.@global[0].anon_mount='1' uci commit fstab block mount
Kernel modules (kmod-*) must match the running kernel, so install them from the repository of the image you are running. For a self-built image, select the packages in make menuconfig instead.