Skip to content

Instantly share code, notes, and snippets.

@dvdrhr
Forked from francoism90/README.md
Last active November 11, 2024 08:53
Show Gist options
  • Save dvdrhr/aa0497bae89cbf867a6cdce690061d5c to your computer and use it in GitHub Desktop.
Save dvdrhr/aa0497bae89cbf867a6cdce690061d5c to your computer and use it in GitHub Desktop.
Change country to unlock channels, increase TX-power. (Use at your own risk)

Warning

Following instructions are provided without any warranty, and may even get you in trouble legally. The instructions are provided for testing, and should be use with care. We (including commentators) are not responsible for any damage to your device(s).

Introduction

This may (in most cases don't) enable additional channels and power on ASUS Merlin provided routers.

The nvram settings have been tested on a ASUS RT-AX58U, they may work on other models as well (ASUS RT-AC78U).

Use nvram dump and adjust when needed.

Login into router using SSH

See https://www.htpcguides.com/enable-ssh-asus-routers-without-ssh-keys/ for instructions.

Backup current settings

nvram dump > dump.txt

NOTE: You need to copy the dump.txt (or output by nvram dump to somewhere else, as they will be lost on reboot

JFFS custom scripts and configs

Make sure Enable JFFS custom scripts and configs, is enabled in System settings. See https://github.com/RMerl/asuswrt-merlin.ng/wiki/User-scripts for details.

Create a /jffs/scripts/wl file, and paste the nvram overwrites into this file (see given example file).

Create/adjust /jffs/scripts/init-start:

#!/bin/sh

[ -x /jffs/scripts/wl ] && /jffs/scripts/wl &
# [ -x /jffs/addons/AdGuardHome.d/AdGuardHome.sh ] && /jffs/addons/AdGuardHome.d/AdGuardHome.sh init-start & # place before addons

Make sure the scripts are executable:

chmod a+rx /jffs/scripts/*

Add cronjob

See https://www.cyberciti.biz/faq/how-to-add-cron-job-on-asuswrt-merlin-wifi-router/ for details.

cru a wl "* * * * * /jffs/scripts/wl"

This will ensure the nvram overwrites are applied every minute.

Reboot

You may now reboot the router. Please note changing settings in the UI, may undo nvram changes. It is recommended to change settings using CLI instead.

#!/bin/sh
# Allow all channels
nvram set location_code=#a
nvram set 0:ccode=#a
nvram set 0:regrev=0
nvram set 1:ccode=#a
nvram set 1:regrev=0
nvram set territory_code=CN/02
nvram set wl0_country_code=#a
nvram set wl0_country_rev=0
nvram set wl0_reg_mode=off
nvram set wl1_chlist="36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140 149 153 157 161 165 169 173 177"
nvram set wl1_country_code=#a
nvram set wl1_country_rev=0
nvram set wl1_reg_mode=off
nvram set acs_unii4=1
nvram set wl_acs_excl_chans_dfs=
nvram set wl_acs_excl_chans=
nvram set wl0_acs_dfs=1
nvram set wl0_acs_excl_chans_base=
nvram set wl0_acs_excl_chans=
nvram set wl1_acs_dfs=1
nvram set wl1_acs_excl_chans_base=
nvram set wl1_acs_excl_chans=
# Set TX-Power (risky!)
nvram set 0:maxp2ga0=120
nvram set 0:maxp2ga1=120
nvram set 1:maxp5gb0a0=120
nvram set 1:maxp5gb0a1=120
nvram set 1:maxp5gb0a2=120
nvram set 1:maxp5gb0a3=120
nvram set 1:maxp5gb1a0=120
nvram set 1:maxp5gb1a1=120
nvram set 1:maxp5gb1a2=120
nvram set 1:maxp5gb1a3=120
nvram set 1:maxp5gb2a0=120
nvram set 1:maxp5gb2a1=120
nvram set 1:maxp5gb2a2=120
nvram set 1:maxp5gb2a3=120
nvram set 1:maxp5gb3a0=120
nvram set 1:maxp5gb3a1=120
nvram set 1:maxp5gb3a2=120
nvram set 1:maxp5gb3a3=120
nvram set 1:maxp5gb4a0=120
nvram set 1:maxp5gb4a1=120
nvram set 1:maxp5gb4a2=120
nvram set 1:maxp5gb4a3=120
nvram set wl0_txpower=500
nvram set wl1_txpower=500
nvram set wl_txpower=500
# Channel section
nvram set wl0_chanspec=0 # auto
nvram set wl1_chanspec=0 # auto
nvram set wl_chanspec=0 # auto
# nvram set wl0_sel_channel=7 # 2.4GHz channel
# nvram set wl1_sel_channel=149 # 5GHz channel
# Commit changes
nvram commit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment