Following instructions are provided without any warranty, and may even get you in trouble legally.
The instructions are provided for testing, learning, preventing e-waste, and should be use with care.
We (including contributers + commentators) are not responsible for any damage to your device(s) or any legal issues.
This repo provides information on how one may possibly enable additional or change WiFi-channels, and TX-power on ASUS Merlin provided routers. Please use the instructions with care, and read the disclaimer before applying any changes.
The purpose is to adjust a router of AP to the legal state of the country (e.g. you bought an ASUS router in JAP, and want to re-use again it in GER). The current method is focussing on exposed nvram variables, and overrule them again when a service or event has been restarted or dispatched.
The adjusted nvram settings have been tested on the ASUS RT-AX58U v1 (Asuswrt-Merlin) & ASUS ZenWiFi AX XT8 v2 (AiMesh node - stock firmware).
Note: Please do not ask for any support on the SNBForums, ASUS or any (official) Merlin related projects about these tweaks. See the Troubleshooting section to reset any changes, or remove any adjustments first if you need to ask for support/help.
Note: Most modern wireless devices use something called Location Aware Regulatory (LAR), and other hidden signals to check the origin of the country. This means that even changing/forcing your router's WiFi-settings, your clients may choose to ignore it (use a fallback-mode) or do not connect at all. See troubleshooting if this happens in your case.
A massive shoutout goes out to the contributes on my previous gist, and members of the SNBForums for findings and information about certain parameters.
See https://www.htpcguides.com/enable-ssh-asus-routers-without-ssh-keys/ for instructions. The guide explains both the usage of a password and SSH-keys.
Login into router using SSH (password or key):
- Run
nvram dump > dump.txt
- Use
scp
to copy it to your working machine or copy the contents ofnvram dump
to somewhere safe. - Make sure
Enable JFFS custom scripts and configs
is enabled and working in System settings. - Reboot router
See https://github.com/RMerl/asuswrt-merlin.ng/wiki/User-scripts for details.
- Make sure JFFS has been enabled:
nvram set jffs2_on=1
nvram set jffs2_scripts=1
nvram commit
-
Create/update the required
/jffs/scripts
files, see given example for details. -
Update your device
nvram
overwrites into the/jffs/scripts/wlupdate
file.
You may also want to use and adjust /jffs/scripts/wlboost
to your channel and country. This script isn't called by default, but may be useful to force channels.
- Make sure scripts are executable:
chmod a+rx /jffs/scripts/*
- Apply nvram overwrites:
/jffs/scripts/wlupdate
If they work, you can make them persistent on reboots:
nvram commit
reboot
- To validate the wireless settings, you may want to use
com.vrem.wifianalyzer
.
To make changes persistent, adjust the /jffs/scripts/wlboost
and /jffs/scripts/wlupdate
files.
Restart the wireless service using service restart_wireless
or by using the scMerlin addon. These methods are preferred, since the router itself may overrule values.
You may also want to System Log > Wireless Log page of the router:
It's possible to restore factory nvram settings by using a hard reset:
This will clear all overwrites and restores factory defaults.