How to setup wifi for the WRT3200ACM / WRT3X / WRT1900ACS (Europe) -- Channel issues

Hi! Having spend the afternoon configuring this properly I might as well share what I've found.

When:

  • you have a european WRT3200ACM or
  • you want to use the channels which for regulatory reasons have to use DFS (basically most of the frequencyband).
  • you've just gotten this model and want it to 'just work'.

Symptons:

  • you set channel for the 5G to 100 or something but nothing comes up (even after 10 minutes) but setting the channel to the lowest (non-dfs) does work.

Tip:

  • diagnose via ssh using logread | grep hostapd. This can tell you if the changes you made were accepted by the backend.

Shortform what:

  • remove package mwifiex-sdio-firmware and kmod-mwifiex-sdio
  • regenerate wifi config
  • set country code for 5G radio to FR
  • reboot afterwards to see effect !

Longform how:

  1. Install latest Divested build (no plug or anything, this is the build that gives me the fastest consistent throughput for some reason (tested with iperf3 between WAP<->Client) and it's a reasonably vanilla build). At some time in the future another build might come along or the vanilla stable will work out of the box.
  • I installed: divested-wrt-snapshot-r17180+10-089c2bb217-mvebu-cortexa9-linksys_wrt3200acm-squashfs-sysupgrade.bin by flashing through good old Luci.
  • If you are setting up a new device: take the build tagged factory for you model and flash it through the website after running the first setup wizard when you first plugged in the box (192.168.1.1 -> Connectivity -> "manual upgrade" (ignore the warnings about filename mismatch)).
  1. The router will reboot. Don't wait longer than a minute or two for it to come up, it's borked then. Just press the reset button at the back for 10 seconds on bootup (or do a 30-30-30 reset), it will bring you back to the Linksys page for you to try again. If you can log in on 192.168.1.1 you're good.
  2. Get a ssh client if you dont have one (on windows: putty). Ssh into the router (root@192.168.1.1).
  3. Delete two packages that stop the wifi from functioning properly (why they are included completely beats me. Listen to the master himself). Also remove the existing wifi configuration.
opkg remove kmod-mwifiex-sdio
opkg remove mwifiex-sdio-firmware
mv /etc/config/wireless /etc/config/wireless.old
wifi config > /etc/config/wireless
  1. After reboot, login and go to "Wireless Overview". Press edit for the ' Marvell 88W8964 802.11nac' card. Go to Advanced. Set country to FR and reboot.

  2. Proceed using other guides.

DFS should work properly now.

I don't quite understand why (not having touched openwrt for a while) but my guess would be that DFS for som reason badly initializes due to mismatch/misconfig of country code between hardcoded device value and userland config. With these changes I am more than happy with this device. Got a wee scared there after buying this chunky looking unit after seeing the wifi-issues. For Googlers; maybe go for a R7800 or something if you are expecting crazy WiFi from this device. It performs fine but I've definitely seen better better ranged performance on wifi (LAN performance is subliminal though).

Hopely this will save some onlooker some time! Cheers.