aredn: extend 2G band adding ch -3 and ch -4 (#210)

This commit is contained in:
Joe AE6XE 2022-01-21 19:52:26 -08:00 committed by GitHub
parent 781425ad59
commit ce4f694563
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 120 additions and 94 deletions

View File

@ -142,7 +142,7 @@ $iters = 0; # number of iterations
$mychan = `iwinfo $iface info | grep -i channel`;
$mychan =~ /Channel:\s+(-*\d+)/;
$mychan = ( ! defined $1 || ! int($1) || ! ($1 >= -2 && $1 <= 185) ) ? 0 : $1;
$mychan = ( ! defined $1 || ! int($1) || ! ($1 >= -4 && $1 <= 185) ) ? 0 : $1;
# ch 76 - 99 are 3ghz since no part 15 usage (5ghz board with -2ghz transverter)
if ($mychan >= 76 and $mychan <= 99)

View File

@ -49,6 +49,8 @@ sub rf_channel_map
7 => "(922)",
},
'2400' => {
-4 => "-4 (2387)",
-3 => "-3 (2392)",
-2 => "-2 (2397)",
-1 => "-1 (2402)",
1 => "1 (2412)",

View File

@ -828,7 +828,7 @@ if ( ${wifi_enable} )
{
selopt($rfchannels->{$channelnumber}, $channelnumber, $wifi_channel);
}
print "</select></td></tr>\n";
print "</select>&nbsp;&nbsp;<a href=\"/help.html\#channel\" target=\"_blank\"><img src=\"/qmark.png\"></a></td></tr>\n";
print "<tr><td>Channel Width</td>\n";
print "<td><select name=wifi_chanbw>\n";

View File

@ -365,6 +365,12 @@ As always a dummy load on unused RF ports is recommended to keep out physical
contaminants and to avoid EMI/RFI interference.
</p>
<p>
<a name="channel"></a>The <strong>Channel</strong> and <strong>Channel Width</strong>
selection determines the center frequency and signal bandwidth. AREDN reminds operators
that they must select frequencies, bandwidths, and power levels which comply with their
country's amateur radio license requirements.
</p>
<p>
<a name="power"></a>The <strong>Power</strong> setting controls the max power
the unit may output. The node may decrease its power output as it enters higher
speed data rates to maintain a linear spectrum. Some devices may have max power

View File

@ -2,110 +2,33 @@ Index: openwrt/package/kernel/mac80211/patches/ath/301-extended-spectrum.patch
===================================================================
--- /dev/null
+++ openwrt/package/kernel/mac80211/patches/ath/301-extended-spectrum.patch
@@ -0,0 +1,152 @@
+--- a/drivers/net/wireless/ath/ath9k/common-init.c
++++ b/drivers/net/wireless/ath/ath9k/common-init.c
+39a40,41
+> CHAN2G(2397, 39), /* Channel -2 */
+> CHAN2G(2402, 38), /* Channel -1 */
+70a73,99
+> /* _We_ claim this "For the HAMS" */
+> CHAN5G(5370, 40), /* Channel 74 */
+> CHAN5G(5375, 41), /* Channel 75 */
+> CHAN5G(5380, 42), /* Channel 76 */
+> CHAN5G(5385, 43), /* Channel 77 */
+> CHAN5G(5390, 44), /* Channel 78 */
+> CHAN5G(5395, 45), /* Channel 79 */
+> CHAN5G(5400, 46), /* Channel 80 */
+> CHAN5G(5405, 47), /* Channel 81 */
+> CHAN5G(5410, 48), /* Channel 82 */
+> CHAN5G(5415, 49), /* Channel 83 */
+> CHAN5G(5420, 50), /* Channel 84 */
+> CHAN5G(5425, 51), /* Channel 85 */
+> CHAN5G(5430, 52), /* Channel 86 */
+> CHAN5G(5435, 53), /* Channel 87 */
+> CHAN5G(5440, 54), /* Channel 88 */
+> CHAN5G(5445, 55), /* Channel 89 */
+> CHAN5G(5450, 56), /* Channel 90 */
+> CHAN5G(5455, 57), /* Channel 91 */
+> CHAN5G(5460, 58), /* Channel 92 */
+> CHAN5G(5465, 59), /* Channel 93 */
+> CHAN5G(5470, 60), /* Channel 94 */
+> CHAN5G(5475, 61), /* Channel 95 */
+> CHAN5G(5480, 62), /* Channel 96 */
+> CHAN5G(5485, 63), /* Channel 97 */
+> CHAN5G(5490, 64), /* Channel 98 */
+> CHAN5G(5495, 65), /* Channel 99 */
+88a118,164
+> /* _We_ claim this "For the HAMS" x2 */
+> CHAN5G(5655, 66), /* Channel 131 */
+> CHAN5G(5665, 67), /* Channel 133 */
+> CHAN5G(5670, 68), /* Channel 134 */
+> CHAN5G(5675, 69), /* Channel 135 */
+> CHAN5G(5685, 70), /* Channel 137 */
+> CHAN5G(5690, 71), /* Channel 138 */
+> CHAN5G(5695, 72), /* Channel 139 */
+> CHAN5G(5705, 73), /* Channel 141 */
+> CHAN5G(5710, 74), /* Channel 142 */
+> CHAN5G(5715, 75), /* Channel 143 */
+> CHAN5G(5720, 76), /* Channel 144 */
+> CHAN5G(5725, 77), /* Channel 145 */
+> CHAN5G(5730, 78), /* Channel 146 */
+> CHAN5G(5735, 79), /* Channel 147 */
+> CHAN5G(5740, 80), /* Channel 148 */
+> CHAN5G(5750, 81), /* Channel 150 */
+> CHAN5G(5755, 82), /* Channel 151 */
+> CHAN5G(5760, 83), /* Channel 152 */
+> CHAN5G(5770, 84), /* Channel 154 */
+> CHAN5G(5775, 85), /* Channel 155 */
+> CHAN5G(5780, 86), /* Channel 156 */
+> CHAN5G(5790, 87), /* Channel 158 */
+> CHAN5G(5795, 88), /* Channel 159 */
+> CHAN5G(5800, 89), /* Channel 160 */
+> CHAN5G(5810, 90), /* Channel 162 */
+> CHAN5G(5815, 91), /* Channel 163 */
+> CHAN5G(5820, 92), /* Channel 164 */
+> CHAN5G(5830, 93), /* Channel 166 */
+> CHAN5G(5835, 94), /* Channel 167 */
+> CHAN5G(5840, 95), /* Channel 168 */
+> CHAN5G(5845, 96), /* Channel 169 */
+> CHAN5G(5850, 97), /* Channel 170 */
+> CHAN5G(5855, 98), /* Channel 171 */
+> CHAN5G(5860, 99), /* Channel 172 */
+> CHAN5G(5865, 100), /* Channel 173 */
+> CHAN5G(5870, 101), /* Channel 174 */
+> CHAN5G(5875, 102), /* Channel 175 */
+> CHAN5G(5880, 103), /* Channel 176 */
+> CHAN5G(5885, 104), /* Channel 177 */
+> CHAN5G(5890, 105), /* Channel 178 */
+> CHAN5G(5895, 106), /* Channel 179 */
+> CHAN5G(5900, 107), /* Channel 180 */
+> CHAN5G(5905, 108), /* Channel 181 */
+> CHAN5G(5910, 109), /* Channel 182 */
+> CHAN5G(5915, 110), /* Channel 183 */
+> CHAN5G(5920, 111), /* Channel 184 */
@@ -0,0 +1,170 @@
+Index: a/drivers/net/wireless/ath/ath9k/hw.h
+===================================================================
+--- a/drivers/net/wireless/ath/ath9k/hw.h
++++ b/drivers/net/wireless/ath/ath9k/hw.h
+@@ -71,7 +71,7 @@
+@@ -74,7 +74,7 @@
+
+ #define ATH9K_RSSI_BAD -128
+
+-#define ATH9K_NUM_CHANNELS 38
++#define ATH9K_NUM_CHANNELS 112
++#define ATH9K_NUM_CHANNELS 114
+
+ /* Register read/write primitives */
+ #define REG_WRITE(_ah, _reg, _val) \
+Index: a/drivers/net/wireless/ath/regd.c
+===================================================================
+--- a/drivers/net/wireless/ath/regd.c
++++ b/drivers/net/wireless/ath/regd.c
+@@ -33,6 +33,7 @@ static int __ath_regd_init(struct ath_re
+@@ -34,6 +34,7 @@ static struct reg_dmn_pair_mapping *ath_
+ */
+
+ /* Only these channels all allow active scan on all world regulatory domains */
++#define ATH9K_2GHZ_CHN02_00 REG_RULE(2392-5, 2407+10, 40, 0, 20, 0)
++#define ATH9K_2GHZ_CHN02_00 REG_RULE(2387-10, 2407+10, 40, 0, 20, 0)
+ #define ATH9K_2GHZ_CH01_11 REG_RULE(2412-10, 2462+10, 40, 0, 20, 0)
+
+ /* We enable active scan on these a case by case basis by regulatory domain */
+@@ -46,17 +47,25 @@ static int __ath_regd_init(struct ath_re
+@@ -47,17 +48,25 @@ static struct reg_dmn_pair_mapping *ath_
+ #define ATH9K_5GHZ_5150_5350 REG_RULE(5150-10, 5240+10, 80, 0, 30, 0),\
+ REG_RULE(5260-10, 5350+10, 80, 0, 30,\
+ NL80211_RRF_NO_IR)
@ -133,19 +56,19 @@ Index: openwrt/package/kernel/mac80211/patches/ath/301-extended-spectrum.patch
+
+ /* This one skips what we call "mid band" */
+ #define ATH9K_5GHZ_NO_MIDBAND ATH9K_5GHZ_5150_5350, \
+Index: a/net/wireless/util.c
+===================================================================
+--- a/net/wireless/util.c
++++ b/net/wireless/util.c
+@@ -72,13 +72,18 @@ int ieee80211_channel_to_frequency(int c
+@@ -76,13 +76,16 @@ int ieee80211_channel_to_frequency(int c
+ return 0; /* not supported */
+ switch (band) {
+ case NL80211_BAND_2GHZ:
++ chan = (int)(char)chan;
+ if (chan == 14)
+ return 2484;
++ else if (chan == 255)
++ return 2402;
++ else if (chan == 254)
++ return 2397;
++ else if (chan > 14)
++ return 2402 - (255 - chan) * 5;
+ else if (chan < 14)
+ return 2407 + chan * 5;
+ break;
@ -155,6 +78,101 @@ Index: openwrt/package/kernel/mac80211/patches/ath/301-extended-spectrum.patch
+ return 4000 + chan * 5;
+ else
+ return 5000 + chan * 5;
+Index: a/drivers/net/wireless/ath/ath9k/common-init.c
+===================================================================
+--- a/drivers/net/wireless/ath/ath9k/common-init.c
++++ b/drivers/net/wireless/ath/ath9k/common-init.c
+@@ -37,6 +37,10 @@
+ * we have calibration data for all cards though to make
+ * this static */
+ static const struct ieee80211_channel ath9k_2ghz_chantable[] = {
++ CHAN2G(2387, 0), /* Channel -4 */
++ CHAN2G(2392, 0), /* Channel -3 */
++ CHAN2G(2397, 0), /* Channel -2 */
++ CHAN2G(2402, 0), /* Channel -1 */
+ CHAN2G(2412, 0), /* Channel 1 */
+ CHAN2G(2417, 1), /* Channel 2 */
+ CHAN2G(2422, 2), /* Channel 3 */
+@@ -68,6 +72,79 @@ static const struct ieee80211_channel at
+ CHAN5G(5280, 19), /* Channel 56 */
+ CHAN5G(5300, 20), /* Channel 60 */
+ CHAN5G(5320, 21), /* Channel 64 */
++ /* _We_ claim this "For the HAMS" */
++ CHAN5G(5370, 40), /* Channel 74 */
++ CHAN5G(5375, 41), /* Channel 75 */
++ CHAN5G(5380, 42), /* Channel 76 */
++ CHAN5G(5385, 43), /* Channel 77 */
++ CHAN5G(5390, 44), /* Channel 78 */
++ CHAN5G(5395, 45), /* Channel 79 */
++ CHAN5G(5400, 46), /* Channel 80 */
++ CHAN5G(5405, 47), /* Channel 81 */
++ CHAN5G(5410, 48), /* Channel 82 */
++ CHAN5G(5415, 49), /* Channel 83 */
++ CHAN5G(5420, 50), /* Channel 84 */
++ CHAN5G(5425, 51), /* Channel 85 */
++ CHAN5G(5430, 52), /* Channel 86 */
++ CHAN5G(5435, 53), /* Channel 87 */
++ CHAN5G(5440, 54), /* Channel 88 */
++ CHAN5G(5445, 55), /* Channel 89 */
++ CHAN5G(5450, 56), /* Channel 90 */
++ CHAN5G(5455, 57), /* Channel 91 */
++ CHAN5G(5460, 58), /* Channel 92 */
++ CHAN5G(5465, 59), /* Channel 93 */
++ CHAN5G(5470, 60), /* Channel 94 */
++ CHAN5G(5475, 61), /* Channel 95 */
++ CHAN5G(5480, 62), /* Channel 96 */
++ CHAN5G(5485, 63), /* Channel 97 */
++ CHAN5G(5490, 64), /* Channel 98 */
++ CHAN5G(5495, 65), /* Channel 99 */
++ CHAN5G(5655, 66), /* Channel 131 */
++ CHAN5G(5665, 67), /* Channel 133 */
++ CHAN5G(5670, 68), /* Channel 134 */
++ CHAN5G(5675, 69), /* Channel 135 */
++ CHAN5G(5685, 70), /* Channel 137 */
++ CHAN5G(5690, 71), /* Channel 138 */
++ CHAN5G(5695, 72), /* Channel 139 */
++ CHAN5G(5705, 73), /* Channel 141 */
++ CHAN5G(5710, 74), /* Channel 142 */
++ CHAN5G(5715, 75), /* Channel 143 */
++ CHAN5G(5720, 76), /* Channel 144 */
++ CHAN5G(5725, 77), /* Channel 145 */
++ CHAN5G(5730, 78), /* Channel 146 */
++ CHAN5G(5735, 79), /* Channel 147 */
++ CHAN5G(5740, 80), /* Channel 148 */
++ CHAN5G(5750, 81), /* Channel 150 */
++ CHAN5G(5755, 82), /* Channel 151 */
++ CHAN5G(5760, 83), /* Channel 152 */
++ CHAN5G(5770, 84), /* Channel 154 */
++ CHAN5G(5775, 85), /* Channel 155 */
++ CHAN5G(5780, 86), /* Channel 156 */
++ CHAN5G(5790, 87), /* Channel 158 */
++ CHAN5G(5795, 88), /* Channel 159 */
++ CHAN5G(5800, 89), /* Channel 160 */
++ CHAN5G(5810, 90), /* Channel 162 */
++ CHAN5G(5815, 91), /* Channel 163 */
++ CHAN5G(5820, 92), /* Channel 164 */
++ CHAN5G(5830, 93), /* Channel 166 */
++ CHAN5G(5835, 94), /* Channel 167 */
++ CHAN5G(5840, 95), /* Channel 168 */
++ CHAN5G(5845, 96), /* Channel 169 */
++ CHAN5G(5850, 97), /* Channel 170 */
++ CHAN5G(5855, 98), /* Channel 171 */
++ CHAN5G(5860, 99), /* Channel 172 */
++ CHAN5G(5865, 100), /* Channel 173 */
++ CHAN5G(5870, 101), /* Channel 174 */
++ CHAN5G(5875, 102), /* Channel 175 */
++ CHAN5G(5880, 103), /* Channel 176 */
++ CHAN5G(5885, 104), /* Channel 177 */
++ CHAN5G(5890, 105), /* Channel 178 */
++ CHAN5G(5895, 106), /* Channel 179 */
++ CHAN5G(5900, 107), /* Channel 180 */
++ CHAN5G(5905, 108), /* Channel 181 */
++ CHAN5G(5910, 109), /* Channel 182 */
++ CHAN5G(5915, 110), /* Channel 183 */
++ CHAN5G(5920, 111), /* Channel 184 */
+ /* _We_ call this "Middle band" */
+ CHAN5G(5500, 22), /* Channel 100 */
+ CHAN5G(5520, 23), /* Channel 104 */
Index: openwrt/package/network/utils/iw/patches/300-extended_spectrum.patch
===================================================================
--- /dev/null