mirror of https://github.com/aredn/aredn.git
aredn: extend 2G band adding ch -3 and ch -4 (#210)
This commit is contained in:
parent
781425ad59
commit
ce4f694563
|
@ -142,7 +142,7 @@ $iters = 0; # number of iterations
|
||||||
|
|
||||||
$mychan = `iwinfo $iface info | grep -i channel`;
|
$mychan = `iwinfo $iface info | grep -i channel`;
|
||||||
$mychan =~ /Channel:\s+(-*\d+)/;
|
$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)
|
# ch 76 - 99 are 3ghz since no part 15 usage (5ghz board with -2ghz transverter)
|
||||||
if ($mychan >= 76 and $mychan <= 99)
|
if ($mychan >= 76 and $mychan <= 99)
|
||||||
|
|
|
@ -49,6 +49,8 @@ sub rf_channel_map
|
||||||
7 => "(922)",
|
7 => "(922)",
|
||||||
},
|
},
|
||||||
'2400' => {
|
'2400' => {
|
||||||
|
-4 => "-4 (2387)",
|
||||||
|
-3 => "-3 (2392)",
|
||||||
-2 => "-2 (2397)",
|
-2 => "-2 (2397)",
|
||||||
-1 => "-1 (2402)",
|
-1 => "-1 (2402)",
|
||||||
1 => "1 (2412)",
|
1 => "1 (2412)",
|
||||||
|
|
|
@ -828,7 +828,7 @@ if ( ${wifi_enable} )
|
||||||
{
|
{
|
||||||
selopt($rfchannels->{$channelnumber}, $channelnumber, $wifi_channel);
|
selopt($rfchannels->{$channelnumber}, $channelnumber, $wifi_channel);
|
||||||
}
|
}
|
||||||
print "</select></td></tr>\n";
|
print "</select> <a href=\"/help.html\#channel\" target=\"_blank\"><img src=\"/qmark.png\"></a></td></tr>\n";
|
||||||
|
|
||||||
print "<tr><td>Channel Width</td>\n";
|
print "<tr><td>Channel Width</td>\n";
|
||||||
print "<td><select name=wifi_chanbw>\n";
|
print "<td><select name=wifi_chanbw>\n";
|
||||||
|
|
|
@ -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.
|
contaminants and to avoid EMI/RFI interference.
|
||||||
</p>
|
</p>
|
||||||
<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
|
<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
|
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
|
speed data rates to maintain a linear spectrum. Some devices may have max power
|
||||||
|
|
|
@ -2,110 +2,33 @@ Index: openwrt/package/kernel/mac80211/patches/ath/301-extended-spectrum.patch
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ openwrt/package/kernel/mac80211/patches/ath/301-extended-spectrum.patch
|
+++ openwrt/package/kernel/mac80211/patches/ath/301-extended-spectrum.patch
|
||||||
@@ -0,0 +1,152 @@
|
@@ -0,0 +1,170 @@
|
||||||
+--- a/drivers/net/wireless/ath/ath9k/common-init.c
|
+Index: a/drivers/net/wireless/ath/ath9k/hw.h
|
||||||
++++ 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 */
|
|
||||||
+--- a/drivers/net/wireless/ath/ath9k/hw.h
|
+--- a/drivers/net/wireless/ath/ath9k/hw.h
|
||||||
++++ b/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_RSSI_BAD -128
|
||||||
+
|
+
|
||||||
+-#define ATH9K_NUM_CHANNELS 38
|
+-#define ATH9K_NUM_CHANNELS 38
|
||||||
++#define ATH9K_NUM_CHANNELS 112
|
++#define ATH9K_NUM_CHANNELS 114
|
||||||
+
|
+
|
||||||
+ /* Register read/write primitives */
|
+ /* Register read/write primitives */
|
||||||
+ #define REG_WRITE(_ah, _reg, _val) \
|
+ #define REG_WRITE(_ah, _reg, _val) \
|
||||||
|
+Index: a/drivers/net/wireless/ath/regd.c
|
||||||
|
+===================================================================
|
||||||
+--- a/drivers/net/wireless/ath/regd.c
|
+--- a/drivers/net/wireless/ath/regd.c
|
||||||
++++ b/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 */
|
+ /* 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)
|
+ #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 */
|
+ /* 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),\
|
+ #define ATH9K_5GHZ_5150_5350 REG_RULE(5150-10, 5240+10, 80, 0, 30, 0),\
|
||||||
+ REG_RULE(5260-10, 5350+10, 80, 0, 30,\
|
+ REG_RULE(5260-10, 5350+10, 80, 0, 30,\
|
||||||
+ NL80211_RRF_NO_IR)
|
+ 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" */
|
+ /* This one skips what we call "mid band" */
|
||||||
+ #define ATH9K_5GHZ_NO_MIDBAND ATH9K_5GHZ_5150_5350, \
|
+ #define ATH9K_5GHZ_NO_MIDBAND ATH9K_5GHZ_5150_5350, \
|
||||||
|
+Index: a/net/wireless/util.c
|
||||||
|
+===================================================================
|
||||||
+--- a/net/wireless/util.c
|
+--- a/net/wireless/util.c
|
||||||
++++ b/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 */
|
+ return 0; /* not supported */
|
||||||
+ switch (band) {
|
+ switch (band) {
|
||||||
+ case NL80211_BAND_2GHZ:
|
+ case NL80211_BAND_2GHZ:
|
||||||
++ chan = (int)(char)chan;
|
++ chan = (int)(char)chan;
|
||||||
+ if (chan == 14)
|
+ if (chan == 14)
|
||||||
+ return 2484;
|
+ return 2484;
|
||||||
++ else if (chan == 255)
|
++ else if (chan > 14)
|
||||||
++ return 2402;
|
++ return 2402 - (255 - chan) * 5;
|
||||||
++ else if (chan == 254)
|
|
||||||
++ return 2397;
|
|
||||||
+ else if (chan < 14)
|
+ else if (chan < 14)
|
||||||
+ return 2407 + chan * 5;
|
+ return 2407 + chan * 5;
|
||||||
+ break;
|
+ break;
|
||||||
|
@ -155,6 +78,101 @@ Index: openwrt/package/kernel/mac80211/patches/ath/301-extended-spectrum.patch
|
||||||
+ return 4000 + chan * 5;
|
+ return 4000 + chan * 5;
|
||||||
+ else
|
+ else
|
||||||
+ return 5000 + chan * 5;
|
+ 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
|
Index: openwrt/package/network/utils/iw/patches/300-extended_spectrum.patch
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
|
|
Loading…
Reference in New Issue