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.
Instructions have been moved to https://github.com/francoism90/asus-router. :)
@Reeplosin and all fyi
In general: If you restart wireless service, you will always return to the values (country etc.) fixed in the driver/firmware (or more precise: To the specific selection burned in the ROM out of all possible values in the driver, see below) So, restarting of wireless service happens also--apart from view exceptions as mentioned above in the comments--when you change settings via GUI.
Thus, there are two ways to overcome this a) put NVRAM changes in the
init-startscript (and then never issue a restart of wirelss service) or b) do the changes viawlcommand.For a) See comments above and follow the golden rule not to restart wireless service!
For b) :
make sure you have latest wl version, i.e. flash latest merlin firmware. On my AX58U and AXE11000, both on 3004.388.6_2,
wl ver Broadcom BCA: 17.10 RC157.2809 wl0: Dec 15 2023 10:37:38 version 17.10.157.2809 (r801046) 8e0370bcheck available commands of wl with:
wl -hand, yes this gives a different result,wl -i eth6 -h(assumingeth6is 5G here, you need to check devices on your router model)Check which countries are available in your current firmware:
wl country listYou can only select one of this country listed here.Each country comes with a certain list of "revisions". These are regulatory settings that have changed over time, you can check which ones are supported with e.g.,
wl country_rev USYou set a country with a specific revision as
wl -i ethXX country "US/699"(For Country = ALL you don't need to specify the revision)So, you can do on your asus, assuming
eth6is 5G:Result:
Country ALL will result in the maximum power your device can blow out in 2G / 5G / 6G and make all channels selectable. The maximum power your router can blow out is limited in the driver/firmware for country = ALL. You cannot go higher than this, independant what you select in NVRAM or with 5. below. These values are fixed in the CLM (country locale matrix) Blob loaded into the driver. Check it wich
wl clmver. Or if you manage to hack the CLM Blob, you could override and load it viawl -i eth6 clmloadcountry_abbrev_override "US"this will make your wifi now look as if it has country US although it is set to ALL, i.e. the 802.11 beacon contains now country = US. This is very useful, if your clients in STAtion mode detect country settings based on beacon country info. If you don't send country info in the beacons, i.e. just set country to ALL, then your wifi client might switch to "world" mode. This is the least common denominator of all regulations on this planet, i.e. the most conservative setting: No (!) 6G and in 5G only very few channels with very little Tx power...regulatory 1: Set 5G to 802.11d and disable 802.11h (DSF). You can check it withwl -i eth6 spect 802.11d modechanspec: Set your channel here NOT in the GUI! Remember: Setting it in the GUI, will return to ROM settiings. For 80 or 160 MHz channels, you need to select a 20 MHz channel in the 80/160 MHz and not the center frequency of the 80/160 MHz channel. This will not work.Even on a AX58U you can use the full UNII-4 band, i.e. 165/160 is possible. Don't know if this will work on your router.
Check settings with
wl -i eth6 status Mode: Managed RSSI: 0 dBm SNR: 0 dB noise: -87 dBm Channel: 165/160 ...txpwr1: See my comment above what this means.NOTE: If your client uses Intel AX-2xx adpaters: You will always end up in a mess!! They use LAR... I changed to Mediatek MT7922 (RZ616). This one even gives me 6G on Windows 10 and has no LAR, so you can use all wifi channels.