diff --git a/files/usr/local/bin/wscan b/files/usr/local/bin/wscan index bf20d7f0..92fd073e 100755 --- a/files/usr/local/bin/wscan +++ b/files/usr/local/bin/wscan @@ -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) diff --git a/files/www/cgi-bin/channelmaps.pm b/files/www/cgi-bin/channelmaps.pm index 249f36cf..9a14ab9b 100644 --- a/files/www/cgi-bin/channelmaps.pm +++ b/files/www/cgi-bin/channelmaps.pm @@ -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)", diff --git a/files/www/cgi-bin/setup b/files/www/cgi-bin/setup index 0afb5aac..d817bcf9 100755 --- a/files/www/cgi-bin/setup +++ b/files/www/cgi-bin/setup @@ -828,7 +828,7 @@ if ( ${wifi_enable} ) { selopt($rfchannels->{$channelnumber}, $channelnumber, $wifi_channel); } - print "\n"; + print " \n"; print "
+The Channel and Channel Width +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. +
The Power 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 diff --git a/patches/701-extended-spectrum.patch b/patches/701-extended-spectrum.patch index 6b40c9d9..62d83676 100644 --- a/patches/701-extended-spectrum.patch +++ b/patches/701-extended-spectrum.patch @@ -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