B-OPTIX BO-RT622-G31-g2 (MediaTek MT7981)

Dear OpenWrt Developers and Community,

I am requesting support for a new router model that is not currently listed in the OpenWrt Table of Hardware.

Device Identification

Manufacturer: B-OPTIX (ISP-branded device)
Model: BO-RT622-G31-g2
SoC: MediaTek MT7981B (or MT7981A) - ARM Cortex-A53 dual-core
Current Firmware: NAGTECH EasyWrt 3.4.3 (OpenWrt-based custom firmware)

Note: This appears to be an ISP-provided router, possibly rebranded from another manufacturer.

Evidence of OpenWrt Compatibility

The device already runs OpenWrt-based firmware (EasyWrt), which demonstrates hardware compatibility:

  1. Kernel: Linux 5.4.246 (mainline compatible)
  2. Architecture: aarch64_cortex-a53 (supported)
  3. Target: mediatek/mt7981 (already exists in OpenWrt)
  4. Bootloader: U-Boot with standard MTD layout

Hardware Specifications

CPU: MediaTek MT7981 (2x Cortex-A53 @ ~1.3GHz)
RAM: 256 MB DDR3/DDR4
Flash: 128 MB SPI NAND
WiFi: MediaTek integrated 2.4GHz & 5GHz
Switch: Integrated Gigabit Ethernet
USB: Not present (based on current info)
Buttons: Reset, WPS (assumed)
LEDs: Multiple status LEDs

Partition Layout (from existing firmware)

mtd0: 08000000 00020000 "spi0.0" # 128 MB - Entire flash
mtd1: 00100000 00020000 "BL2" # 1 MB - Bootloader stage 2
mtd2: 00080000 00020000 "u-boot-env" # 512 KB - U-Boot environment
mtd3: 00200000 00020000 "Factory" # 2 MB - WiFi calibration
mtd4: 00200000 00020000 "FIP" # 2 MB - Firmware Image Package
mtd5: 07280000 00020000 "ubi" # 114 MB - Main UBI with dual-boot

UBI Volumes (Dual-Boot System):

  • kernel, rootfs (slot 0)
  • kernel2, rootfs2 (slot 1)
  • rootfs_data (overlay)

Why This Device Should Be Supported

  1. Modern Hardware: MT7981 is a current-generation MediaTek SoC
  2. Good Specifications: 256MB RAM, 128MB flash, dual-band WiFi
  3. Already Running OpenWrt Fork: Proof of concept exists
  4. Multiple Units in Circulation: ISP deployment means many users could benefit
  5. No Factory Blobs Required: Appears to use mainline-compatible drivers

Information Available for Porting

I can provide:

  • Full dmesg boot logs
  • U-Boot environment dump
  • Serial console output (UART accessible)
  • MTD partition backups
  • Factory partition dump (WiFi calibration)
  • Photos of PCB and components
  • Current device tree if available

Current Status

:white_check_mark: Working in stock firmware:

  • Ethernet (Gigabit switch)
  • WiFi 2.4GHz & 5GHz
  • Hardware NAT acceleration
  • Dual-boot functionality
  • Serial console

:red_question_mark: Unknown (needs testing):

  • LED mappings
  • Button mappings
  • Exact WiFi chip variant
  • Power management

Request for Support

Could the OpenWrt project consider adding support for this device?

What I need guidance on:

  1. How to create a proper device definition for this model?
  2. What specific information is needed from me?
  3. Should I attempt to port it myself following existing MT7981 devices?
  4. Which existing MT7981 device is most similar as reference?

Similar Supported Devices

Looking at existing MT7981 devices in OpenWrt:

  • bananapi,bpi-r3 (different RAM/flash layout)
  • xiaomi,mi-router-ax6000 (similar SoC)
  • jcg,q30-pro (MT7981 based)

This device might be a rebrand of one of these.

Willingness to Test

I am willing to:

  • Provide all necessary technical information
  • Test development builds
  • Help with debugging
  • Document the process
  • Maintain the device entry if supported

Thank you for considering this request. This capable hardware could be a great addition to the OpenWrt supported devices list.

Could you, you own one after all, we don't - https://openwrt.org/docs/guide-developer/add.new.device.

2 Likes

I have a B-OPTIX BO-RT622-G31-g2 router from my ISP. It runs EasyWRT (OpenWrt-based firmware). I want to install regular OpenWrt on it, but it's not in the supported devices list.

The hardware:

  • MediaTek MT7981 chip
  • 256MB RAM, 128MB flash
  • Dual-band WiFi
  • Similar to SNR AX2 router

I'm not sure what information you need from me to add support. Can someone guide me on what to provide?

I can share:

  • Router technical details
  • Photos
  • Test builds if needed

We got you the 1st time, no need to repeat.

There's no wishing well.
No one's on stand by to take on new devices (esp not without having them on their desk).

You want it supported, you do the work, with the assistance from the people here.
If they feel like helping you, that is, everyone here is doing this on their free time.

Go, knock yourself out.

I'm sorry, but I don't understand what you want from me. The gpio test returned an error. I created it in Windows using the VI editor. This is what I get. gpio.sh
cat: can't open '/sys/class/gpio/gpiochip/base': No such file or directory
cat: can't open '/sys/class/gpio/gpiochip$': No such file or directory
cat: can't open '{GPIOCHIP}/ngpio': No such file or directory
gpio.sh: line 3: syntax error: unexpected "("

Provide the information you said you will, this is not potato market where you get asked and given coin for every piece.

Do you have a site where to download OEM firmware upgrades?

There's a website with firmware. But I didn't think it was that complicated. I have a device, and I have information about it. I've provided everything I could. Well, if something's missing, then let those who know something add it. I'm withdrawing the question.

1 Like

What you promised:

So all this was BS ?

Question or request?

1 Like

That's all I can gather about the router, I can't open it, it doesn't belong to me

1 Like

Exactly how were you planning on getting it flashed then ?

1 Like

How to flash the SNR AX2 OpenWRT version 25.12.0-rc4

OpenWrt Installation Guide for BO-RT622-G31-g2

1. Download the Files

Go to the provided link and download three files:

  • Sysupgrade.itb
  • Uboot.fip
  • Recovery.itb

2. Configure Static IP on Your Computer

Assign the following to your computer's LAN interface:

  • IP Address: 192.168.1.254
  • Subnet Mask: 255.255.255.0

3. Set Up TFTP Server

Start a TFTP server on your computer and place the recovery.itb file in the root folder.

For Windows 11: Be prepared for the program to reset the server interface settings to the first item in the list. When powering on the router, monitor the settings and quickly change them back to 192.168.1.254 (or find a more compatible program for your OS).

4. Connect Computer to Router

Connect your computer to the router's LAN port using an Ethernet cable.

Ensure SSH access to the router is available (login/password are the same as for the EasyWRT web interface).

5. Upload uboot.fip to the Router

Using SCP (I used WinSCP), copy the uboot.fip file to the /tmp directory on the router.

Important: In WinSCP, select the SCP protocol, not SFTP (otherwise you'll get an error).

6. Flash the New Bootloader

Connect to the router via SSH and execute the commands:

mtd write /tmp/YOUR-UBOOT-FILE.FIP FIP
reboot

Replace "YOUR-UBOOT-FILE.FIP" with the name of your downloaded file ending in .uboot.fip.

7. Router Will Load recovery.itb

After reboot, the router will automatically load the recovery.itb file from your TFTP server.

8. Upload sysupgrade.itb to the Router

Again use SCP (WinSCP) to copy the Sysupgrade.itb file to the /tmp directory on the router.

9. Start the Flashing Process

sysupgrade -n -v /tmp/YOUR-SYSUPGRADE-FILE.ITB

Replace "YOUR-SYSUPGRADE-FILE.ITB" with the name of your downloaded file ending in .sysupgrade.itb.

Note: Putty may show a FATAL ERROR - this is normal (or is it?).

10. Wait for Completion

Wait for the router to install the firmware and reboot. If unsure, set a timer for 15 minutes - that's sufficient.

11. Connect to the Router

After reboot, connect to the router via SSH (still via cable):

  • Login: root
  • Password: none (by default)

12. Update Repository

apk update

13. Install LuCI (Web Interface)

apk add luci
apk add luci-app-opkg

14. Enable Web Server

/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start

And you know this works, without even getting your device opened, impressive...

1 Like

Yes, I flashed the router with the SNR AX2 firmware, everything works, but rolling back to the manufacturer's firmware is difficult, but not impossible.

The SNR AX2 router is already supported by OpenWRT, even if it's only in the release candidate and snapshot.

You might have wanted to open with this.

Why exactly are you then requesting a firmware for your device ?

1 Like

dts preview

        compatible = "mediatek,mt7981-spim-snand-gsw-rfb";
        model = "BO-RT622-G31-G2";
memory {
                reg = <0x00 0x40000000 // 1GB

fw link (the file with G2 in name, other g1 is ramips mt7621)

https://data.nag.wiki/B-Optix%20WiFi/Firmware/EasyWRT%20Firmware/3.4.x/3.4.2/

can you get OpenWrt boot log (dmesg) so we see if anything is missing and guide you to make official support happen?

Because there are already a lot of these devices. I'm talking about the B-OPTIX router now.

Calm down, lets check if it is as functional as you think it is (eg. we have to dig for wifi calibration data or explore gpios for missing leds etc)
....

So am I.

Anyway, have fun doing nothing (it would appear).

Please explain what is required of me. I will do it, including using the GPIO. The script on the router doesn't work.

#!/bin/sh
GPIOCHIP=0
BASE=$(cat /sys/class/gpio/gpiochip${GPIOCHIP}/base)
NGPIO=$(cat /sys/class/gpio/gpiochip${GPIOCHIP}/ngpio)
max=$( $BASE+$NGPIO))
gpio=$BASE
while [ $gpio -lt $max ] ; do
	echo $gpio > /sys/class/gpio/export
	[ -d /sys/class/gpio/gpio${gpio} ] && {
		echo out > /sys/class/gpio/gpio$gpio/direction
 
 echo "[GPIO$gpio] Trying value 0"
		echo 0 > /sys/class/gpio/gpio$gpio/value
 sleep 3s
 
 echo "[GPIO$gpio] Trying value 1"
		echo 1 > /sys/class/gpio/gpio$gpio/value
 sleep 3s
 
 echo $gpio > /sys/class/gpio/unexport
 }
	gpio=$((gpio+1))

I don't know how to post the logs here; they don't fit. I posted them as an archive. I also added the full MTD to the exchanger.

https://disk.yandex.ru/d/EjDAmiWoJc7C0Q -> full_dmesg.log
https://disk.yandex.ru/d/jZ_LU3ed_LlzXg - mtd_backup.bin