LINKSYS EA3500: Enable all 5G channels

Right now for EA3500 only 4 bands are enabled for 5G: 36, 40, 44, 48

And there is discussion in

I finally made all 5G channels enabled. The build is in


root@LEDE-EA3500:~# iw phy1 info
Wiphy phy1
        max # scan SSIDs: 4
        max scan IEs length: 2261 bytes
        max # sched scan SSIDs: 0
        max # match sets: 0
        max # scan plans: 1
        max scan plan interval: -1
        max scan plan iterations: 0
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Available Antennas: TX 0 RX 0
        Supported interface modes:
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
        Band 2:
                Capabilities: 0xffe
                        SM Power Save disabled
                        RX Greenfield
                        RX HT20 SGI
                        RX HT40 SGI
                        TX STBC
                        RX STBC 3-streams
                        HT Delayed Block Ack
                        Max AMSDU length: 7935 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: No restriction (0x00)
                HT TX/RX MCS rate indexes supported: 0-23, 32
                        * 5180 MHz [36] (20.0 dBm)
                        * 5200 MHz [40] (20.0 dBm)
                        * 5220 MHz [44] (20.0 dBm)
                        * 5240 MHz [48] (20.0 dBm)
                        * 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
                        * 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
                        * 5300 MHz [60] (20.0 dBm) (no IR, radar detection)
                        * 5320 MHz [64] (20.0 dBm) (no IR, radar detection)
                        * 5500 MHz [100] (20.0 dBm) (no IR, radar detection)
                        * 5520 MHz [104] (20.0 dBm) (no IR, radar detection)
                        * 5540 MHz [108] (20.0 dBm) (no IR, radar detection)
                        * 5560 MHz [112] (20.0 dBm) (no IR, radar detection)
                        * 5580 MHz [116] (20.0 dBm) (no IR, radar detection)
                        * 5600 MHz [120] (20.0 dBm) (no IR, radar detection)
                        * 5620 MHz [124] (20.0 dBm) (no IR, radar detection)
                        * 5640 MHz [128] (20.0 dBm) (no IR, radar detection)
                        * 5660 MHz [132] (20.0 dBm) (no IR, radar detection)
                        * 5680 MHz [136] (20.0 dBm) (no IR, radar detection)
                        * 5700 MHz [140] (20.0 dBm) (no IR, radar detection)
                        * 5720 MHz [144] (20.0 dBm) (no IR, radar detection)
                        * 5745 MHz [149] (20.0 dBm)
                        * 5765 MHz [153] (20.0 dBm) (no IR)
                        * 5785 MHz [157] (20.0 dBm) (no IR)
                        * 5805 MHz [161] (20.0 dBm) (no IR)
                        * 5825 MHz [165] (20.0 dBm) (no IR)
        valid interface combinations:
                 * #{ AP } <= 8, #{ managed } <= 1,
                   total <= 8, #channels <= 1
        HT Capability overrides:
                 * MCS: ff ff ff ff ff ff ff ff ff ff
                 * maximum A-MSDU length
                 * supported channel width
                 * short GI for 40 MHz
                 * max A-MPDU length exponent
                 * min MPDU start spacing

The link to your image 404's.

I'm a little surprised on the pushback for enabling all channels in the driver. I thought iw would not let you pick channels if the regdomain requires DFS and the driver/chip doesn't support it. Surely there's somewhere where some of those channels are allowed and DFS isn't required.

Now that you got the patch accepted upstream, are you going to see if LEDE will pull in the patch again?

I guess LEDE will wait for upstream. Besides I am not worried because most people know how to compile.

What I really want to see is someone from Marvell can open DFS support in driver. Per the chipset has the ability of DFS. Also it is not critical.

See the chart of 5 GHz channels...

First, thank you so much for the investigation and fix. Speaking as a very inexperienced user, what kernel did this change roll into, and when will OpenWRT's snapshot builds finally start using it?

Having failed to compile the changes myself using the guide here:
waiting would be the only hope...

Sry but the link does not work , is it possible for a newer upload to the fix for the e3500 for all 5ghz chan enabled?

1 Like

Seconded--obviously nobody is obligated to provide a custom build, but speaking as someone who spent over 15 hours unsuccessfully self-compiling this driver change, it would be much appreciated!

It doesn't look like the OpenWRT/LEDE project will be adopting the latest Linux kernel with this driver fix (4.15?) anytime soon...

1 Like

The patch accepted by kernel org only added below 5 channels. Unfortunately it won't be in 18.06.

{ .band = NL80211_BAND_5GHZ, .center_freq = 5745, .hw_value = 149, },
{ .band = NL80211_BAND_5GHZ, .center_freq = 5765, .hw_value = 153, },
{ .band = NL80211_BAND_5GHZ, .center_freq = 5785, .hw_value = 157, },
{ .band = NL80211_BAND_5GHZ, .center_freq = 5805, .hw_value = 161, },
{ .band = NL80211_BAND_5GHZ, .center_freq = 5825, .hw_value = 165, },

Sorry I cannot find original shared build. Also I would need time to setup the build environment if there was need to rebuild something.

1 Like

heck even those channels would be good for me because on stock firm 161 worked fine with my device , its the 36-48 that my device does not see at all . thats why i was asking if the previous custom build was still available for a re-upload if possible . 5ghz bridge setup since i have 3 of these routers and a main on 3 floor bringing down over 5ghz instead of 2.4ghz sadly device is region locked so the only 5ghz channel that used to work with it was 161 -157-153 and i think even 149 as well .

Rebuild with 25 channels. It depends on your region to show the channels. Because DFS is not supported in driver so any DFS channels will not be shown.

This one the rebuild version based on latest 17.01.


wow that was really quick , thank you for your hard work on this , i will test it out on one of the routers and will report back.

Update! extra 5ghz channels are working again , I got my device connected as normal on the 161 , but just now noticed that even when dbm is set to 30 it caps out to 18 , not sure if its the hardware's limit or that the settings are not being applied but overall great great work @ximibaba. Thank You so much . Also is there a tutorial we can follow for grabing the source-code and compiling then kernel/img ?

@ximibaba That was very nice of you. Thank you, especially if you ended up setting up a build environment to recompile. Of course, big thanks to your work investigating the issue last year!

@Dantekazuma I attempted to use this and (looks outdated), but could not get the wifi hardware to be recognized after adding those channels to the driver. But that's probable because of any number of things I did wrong in the 50 or so steps required...

@ximibaba when i get my network issues all sorted out i wanted to take a dive into this , i usually do kernel work on android so i will be a noob at this but my goal is to find out if for this router i could increase the rx and tx power and some cpu overclocking as well . I used to run ddwrt on a old e1200 v2 and it had cpu oc and tx power but not rx , since i use these routers as bridges tx and rx power increase def are a nice upgrade without upgrading the hardware.

There once in different places were a lot of discussion about tx power and cpu oc. It doesn't worth to try the hack.

  1. Need to obey the law on tx power. Regulatory of your region does not allow you to create noise for your neighbors.
  2. CPU OC only shorten the life and cause unstable. More problems than benefits.

well i did something stupid in the hopes that in the new updates that maybe the channels are back like it was on stock . So i updated to 18.06.0 now im back to 4 5ghz channels that my devices cannot use. I really dont want to ask you to keep this project up to date so im wondering if you can coach me on how to setup my linux laptop to compile the update with your 5ghz patch to unlock all the 5ghz frequencies yet keeping it on 18.06.0 specially for like the security patches. Or if you have a github regarding this device.

And the worst part is that now it wont accept your build , 18.06.0 does not accept .tar upgrade files or i guess its because its a lower version compared to 18.06.0

If you have interest on building it from scratch, start from this link The build system – About

1 Like

i grabbed te source code but have no clue how to set it up to compile for the ea3500 only .

would it be possible for you to share your .config file for the ea3500 please ?