Topic: How to get 5GHz channel above 48 on EA3500

Hello,

The available 5GHz channel setting on my EA3500 shows only 36-48, how to get the channel above 48?

Thanks.

Re: How to get 5GHz channel above 48 on EA3500

any update or solution? I have the exact same issue so I had to revert back to stock firmware to access upper 5Ghz channels.

Re: How to get 5GHz channel above 48 on EA3500

The wireless driver would need support for DFS.

LEDE 17.01 RC2+ on D-Link DIR-860L B1 :: Netgear WNDR3700 v1 (2x) & v2 (1x) :: PC Engines APU2 :: Ubiquiti Unifi AC Pro (2x) :: TP-Link TL-WR1043ND v1 (1x) & v2 (4x) :: TL-WR841N (2x) :: LEDE trunk on Asus WL-500W (wl) :: OpenWrt Attitude Adjustment 12.09.1 on Asus WL-500G Deluxe

Re: How to get 5GHz channel above 48 on EA3500

I guess that means the recommended version on the EA3500 page does not support it...

How would I check out if there is an available driver that  support it or not?

Re: How to get 5GHz channel above 48 on EA3500

It looks to me like the hardware uses an older Marvell, which probably doesn't support DFS.

Running iw phy1 info (phy1 being your 5 GHz radio) should show DFS info if it is supported, like this:

# iw phy1 info
Wiphy phy1
    max # scan SSIDs: 4
    max scan IEs length: 2261 bytes
    max # sched scan SSIDs: 0
    max # match sets: 0
    Retry short limit: 7
    Retry long limit: 4
    Coverage class: 0 (up to 0m)
    Device supports AP-side u-APSD.
    Device supports T-DLS.
    Available Antennas: TX 0x3 RX 0x3
    Configured Antennas: TX 0x3 RX 0x3
    Supported interface modes:
         * IBSS
         * managed
         * AP
         * AP/VLAN
         * WDS
         * monitor
         * mesh point
         * P2P-client
         * P2P-GO
         * outside context of a BSS
    Band 2:
        Capabilities: 0x11ce
            HT20/HT40
            SM Power Save disabled
            RX HT40 SGI
            TX STBC
            RX STBC 1-stream
            Max AMSDU length: 3839 bytes
            DSSS/CCK HT40
        Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
        Minimum RX AMPDU time spacing: 8 usec (0x06)
        HT TX/RX MCS rate indexes supported: 0-15
        Frequencies:
            * 5180 MHz [36] (17.0 dBm)
            * 5200 MHz [40] (17.0 dBm)
            * 5220 MHz [44] (17.0 dBm)
            * 5240 MHz [48] (17.0 dBm)
            * 5260 MHz [52] (20.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5280 MHz [56] (20.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5300 MHz [60] (20.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5320 MHz [64] (20.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5500 MHz [100] (21.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5520 MHz [104] (24.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5540 MHz [108] (24.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5560 MHz [112] (24.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5580 MHz [116] (24.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5600 MHz [120] (24.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5620 MHz [124] (24.0 dBm) (radar detection)
              DFS state: usable (for 37085 sec)
              DFS CAC time: 60000 ms
            * 5640 MHz [128] (24.0 dBm) (radar detection)
              DFS state: usable (for 37085 sec)
              DFS CAC time: 60000 ms
            * 5660 MHz [132] (24.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5680 MHz [136] (24.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5700 MHz [140] (21.0 dBm) (radar detection)
              DFS state: usable (for 511498 sec)
              DFS CAC time: 60000 ms
            * 5745 MHz [149] (disabled)
            * 5765 MHz [153] (disabled)
            * 5785 MHz [157] (disabled)
            * 5805 MHz [161] (disabled)
            * 5825 MHz [165] (disabled)
    valid interface combinations:
         * #{ managed } <= 2048, #{ AP, mesh point } <= 8, #{ P2P-client, P2P-GO } <= 1, #{ IBSS } <= 1,
           total <= 2048, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz }

         * #{ WDS } <= 2048,
           total <= 2048, #channels <= 1, STA/AP BI must match
    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
LEDE 17.01 RC2+ on D-Link DIR-860L B1 :: Netgear WNDR3700 v1 (2x) & v2 (1x) :: PC Engines APU2 :: Ubiquiti Unifi AC Pro (2x) :: TP-Link TL-WR1043ND v1 (1x) & v2 (4x) :: TL-WR841N (2x) :: LEDE trunk on Asus WL-500W (wl) :: OpenWrt Attitude Adjustment 12.09.1 on Asus WL-500G Deluxe

Re: How to get 5GHz channel above 48 on EA3500

Why does this also disable channels 149-161 that don't require DFS?

Re: How to get 5GHz channel above 48 on EA3500

remove DFS flag from frequency range it's been set to before building image

Re: How to get 5GHz channel above 48 on EA3500

Where is the DFS flag set?

Re: How to get 5GHz channel above 48 on EA3500

check compat-wireless, mac80211 and regdb

Re: How to get 5GHz channel above 48 on EA3500

Thanks for the advice but it didn't seem to help. I updated regdb.txt to remove NO-IR, DFS, and DFS-FCC, as in the following diff:

diff --git a/package/kernel/mac80211/files/regdb.txt b/package/kernel/mac80211/files/regdb.txt
index 463ace3..210cba1 100644
--- a/package/kernel/mac80211/files/regdb.txt
+++ b/package/kernel/mac80211/files/regdb.txt
@@ -8,11 +8,11 @@ country 00:
        # Channel 36 - 48
        (5170 - 5250 @ 80), (20), AUTO-BW
        # Channel 52 - 64
-       (5250 - 5330 @ 80), (20), NO-IR, DFS, AUTO-BW
+       (5250 - 5330 @ 80), (20), AUTO-BW
        # Channel 100 - 144
-       (5490 - 5730 @ 160), (20), NO-IR, DFS
+       (5490 - 5730 @ 160), (20)
        # Channel 149 - 165
-       (5735 - 5835 @ 80), (20), NO-IR
+       (5735 - 5835 @ 80), (20)
        # IEEE 802.11ad (60GHz), channels 1..3
        (57240 - 63720 @ 2160), (0)
 
@@ -1161,12 +1161,12 @@ country UG: DFS-FCC
        (5490 - 5730 @ 160), (24), DFS
        (5735 - 5835 @ 80), (30)
 
-country US: DFS-FCC
+country US:
        (2402 - 2472 @ 40), (30)
        # 5.15 ~ 5.25 GHz: 30 dBm for master mode, 23 dBm for clients
        (5170 - 5250 @ 80), (23), AUTO-BW
-       (5250 - 5330 @ 80), (23), DFS, AUTO-BW
-       (5490 - 5730 @ 160), (23), DFS
+       (5250 - 5330 @ 80), (23), AUTO-BW
+       (5490 - 5730 @ 160), (23)
        (5735 - 5835 @ 80), (30)
        # 60g band

and built an image. Now `iw reg get' reflects this change, but `iw phy1 show' still only shows channels 36-48.

Re: How to get 5GHz channel above 48 on EA3500

It looks like the driver itself is limited to 4 channels: https://github.com/torvalds/linux/blob/ … l8k.c#L381

Re: How to get 5GHz channel above 48 on EA3500

I managed to add the higher non-DFS channels by dropping this patch into the source tree as package/kernel/mac80211/patches/980-mwl8k_channels_50.patch:

--- a/drivers/net/wireless/marvell/mwl8k.c
+++ b/drivers/net/wireless/marvell/mwl8k.c
@@ -199,7 +199,7 @@
        struct ieee80211_channel channels_24[14];
        struct ieee80211_rate rates_24[13];
        struct ieee80211_supported_band band_50;
-       struct ieee80211_channel channels_50[4];
+       struct ieee80211_channel channels_50[9];
        struct ieee80211_rate rates_50[8];
        u32 ap_macids_supported;
        u32 sta_macids_supported;
@@ -383,6 +383,12 @@
        { .band = NL80211_BAND_5GHZ, .center_freq = 5200, .hw_value = 40, },
        { .band = NL80211_BAND_5GHZ, .center_freq = 5220, .hw_value = 44, },
        { .band = NL80211_BAND_5GHZ, .center_freq = 5240, .hw_value = 48, },
+
+       { .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, },
 };
 
 static const struct ieee80211_rate mwl8k_rates_50[] = {

13 (edited by kyzhk 2017-08-13 03:06:46)

Re: How to get 5GHz channel above 48 on EA3500

nickptar wrote:

I managed to add the higher non-DFS channels by dropping this patch into the source tree as package/kernel/mac80211/patches/980-mwl8k_channels_50.patch:

--- a/drivers/net/wireless/marvell/mwl8k.c
+++ b/drivers/net/wireless/marvell/mwl8k.c
@@ -199,7 +199,7 @@
        struct ieee80211_channel channels_24[14];
        struct ieee80211_rate rates_24[13];
        struct ieee80211_supported_band band_50;
-       struct ieee80211_channel channels_50[4];
+       struct ieee80211_channel channels_50[9];
        struct ieee80211_rate rates_50[8];
        u32 ap_macids_supported;
        u32 sta_macids_supported;
@@ -383,6 +383,12 @@
        { .band = NL80211_BAND_5GHZ, .center_freq = 5200, .hw_value = 40, },
        { .band = NL80211_BAND_5GHZ, .center_freq = 5220, .hw_value = 44, },
        { .band = NL80211_BAND_5GHZ, .center_freq = 5240, .hw_value = 48, },
+
+       { .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, },
 };
 
 static const struct ieee80211_rate mwl8k_rates_50[] = {

Hey nickptar,

Thanks for your work!

Did you get it to work i.e. transmitting/receiving in the 149+ channels? If so, would you like to submit a PR?

Re: How to get 5GHz channel above 48 on EA3500

kyzhk wrote:
nickptar wrote:

I managed to add the higher non-DFS channels by dropping this patch into the source tree as package/kernel/mac80211/patches/980-mwl8k_channels_50.patch:

--- a/drivers/net/wireless/marvell/mwl8k.c
+++ b/drivers/net/wireless/marvell/mwl8k.c
@@ -199,7 +199,7 @@
        struct ieee80211_channel channels_24[14];
        struct ieee80211_rate rates_24[13];
        struct ieee80211_supported_band band_50;
-       struct ieee80211_channel channels_50[4];
+       struct ieee80211_channel channels_50[9];
        struct ieee80211_rate rates_50[8];
        u32 ap_macids_supported;
        u32 sta_macids_supported;
@@ -383,6 +383,12 @@
        { .band = NL80211_BAND_5GHZ, .center_freq = 5200, .hw_value = 40, },
        { .band = NL80211_BAND_5GHZ, .center_freq = 5220, .hw_value = 44, },
        { .band = NL80211_BAND_5GHZ, .center_freq = 5240, .hw_value = 48, },
+
+       { .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, },
 };
 
 static const struct ieee80211_rate mwl8k_rates_50[] = {

Hey nickptar,

Thanks for your work!

Did you get it to work i.e. transmitting/receiving in the 149+ channels? If so, would you like to submit a PR?

I have compiled using this patch just now. I will test out the higher channels and report back soon. I am not sure how to properly submit a PR if it does work. I would rather leave that to nickptar anyway.

Re: How to get 5GHz channel above 48 on EA3500

I can't seem to transmit/receive on the upper channels after making changes to: 

/drivers/net/wireless/marvell/mwl8k.c
and
/package/kernel/mac80211/files/regdb.txt

Couldn't get your exact patch to work for some reason. Had to edit mwl8k.c manually. The driver was using:

 .band = IEEE80211_BAND_5GHZ

instead of:

 .band = NL80211_BAND_5GHZ

16 (edited by kyzhk 2017-08-29 23:31:20)

Re: How to get 5GHz channel above 48 on EA3500

dangersnake wrote:

I can't seem to transmit/receive on the upper channels after making changes to: 

/drivers/net/wireless/marvell/mwl8k.c
and
/package/kernel/mac80211/files/regdb.txt

Couldn't get your exact patch to work for some reason. Had to edit mwl8k.c manually. The driver was using:

 .band = IEEE80211_BAND_5GHZ

instead of:

 .band = NL80211_BAND_5GHZ

Are you saying that after changing

.band = IEEE80211... to NL80211... and recompiling successfully enabled the upper 5ghz channel with mwl8k driver?

In this case could you provide the binary driver to me - I can help test the upper 5ghz channels.


Also, what changes did you make to /package/kernel/mac80211/files/regdb.txt?

Assuming regdb.txt is referenced by mac80211 module compilation, please also let me have the mac80211.o / cfg80211.o modules.

Thanks!

Re: How to get 5GHz channel above 48 on EA3500

I was not able to get the upper channels to show up or work at all. Let me look at the exact changes again.