The brcmsmac driver sets up the available 2.4 GHz (802.11 b/g) channels with flag
LOCALE_RESTRICTED_SET_2G_SHORT
All you have to do is to change it to
LOCALE_RESTRICTED_NONE
in brcmsmac/channel.c and recompile the driver.
--- brcm80211/brcmsmac/channel.c.orig 2011-12-31 17:25:12.081733667 +0100
+++ brcm80211/brcmsmac/channel.c 2011-12-31 17:25:26.549801913 +0100
@@ -418,7 +418,7 @@
static const struct locale_info locale_i = { /* locale i. channel 1 - 13 */
LOCALE_CHAN_01_11 | LOCALE_CHAN_12_13,
LOCALE_RADAR_SET_NONE,
- LOCALE_RESTRICTED_SET_2G_SHORT,
+ LOCALE_RESTRICTED_NONE,
{QDB(19), QDB(19), QDB(19),
QDB(19), QDB(19), QDB(19)},
{20, 20, 20, 0},
After loading the new kernel modules brcmutil & brcmsmac you have to set the regulatory domain with
iw reg set <regdomain>
In dmesg instead of
[...]
cfg80211: Updating information on frequency 2462 MHz for a 20 MHz width channel with regulatory rule:
cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm)
cfg80211: Disabling freq 2467 MHz
cfg80211: Disabling freq 2472 MHz
cfg80211: Disabling freq 2484 MHz
cfg80211: Regulatory domain changed to country: US
[...]
cfg80211: Found new beacon on frequency: 2472 MHz (Ch 13) on phy3
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 1)
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 2)
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 3)
wlan0: authentication with xx:xx:xx:xx:xx:xx timed out
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 1)
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 2)
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 3)
wlan0: authentication with xx:xx:xx:xx:xx:xx timed out
[...]
you should now see something like
[...]
cfg80211: Updating information on frequency 2467 MHz for a 20 MHz width channel with regulatory rule:
cfg80211: 2400000 KHz - 2483500 KHz @ KHz), (N/A mBi, 2000 mBm)
cfg80211: Updating information on frequency 2472 MHz for a 20 MHz width channel with regulatory rule:
cfg80211: 2400000 KHz - 2483500 KHz @ KHz), (N/A mBi, 2000 mBm)
cfg80211: Disabling freq 2484 MHz
cfg80211: Regulatory domain changed to country: DE
[...]
cfg80211: Found new beacon on frequency: 2472 MHz (Ch 13) on phy4
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 1)
wlan0: authenticated
wlan0: associate with xx:xx:xx:xx:xx:xx (try 1)
wlan0: RX AssocResp from xx:xx:xx:xx:xx:xx (capab=0x431 status=0 aid=1)
wlan0: associated
[...]
2467 MHz = channel 12
2472 MHz = channel 13
2484 MHz = channel 14
Update May 12th, 2012:
The following linux kernel commit for 3.0.31, 3.3.4 & 3.2.17 is supposed to fix the
problems with channel 12 & 13:
brcm80211: smac: resume transmit fifo upon receiving frames
commit badc4f07622f0f7093a201638f45e85765f1b5e4 upstream.
There have been reports about not being able to use access-points on channel 12 and 13 or having connectivity issues when these channels were part of the selected regulatory domain. Upon switching to these channels the brcmsmac driver suspends the transmit dma fifos. This patch resumes them upon handing over the first received beacon to mac80211.
Tried this patch, but I still get
wlan0: authentication with xx:xx:xx:xx:xx:xx timed out
What can I say? You saved my life!! Many thanks
ReplyDeleteDear 133nux,
ReplyDeleteI am having the same channel 13 problem with the brcmsmac driver, but the driver has since been updated and the code line you fix is no longer there. It would be great if you could look at the new code and advise? You are the only person who has treated this problem seriously and the fix has apparently never been correctly integrated into brcmsmac.
Thanks and best regards, John
Hello again, I am using Ubuntu 12.04.3 LTS with Kernel version 3.2.0-53-generic-pae. Apparently brmcsmac is integrated with the kernel - the driver version is given as 3.2.0-53-generic-pae. I have seen some comments that upgrading Ubuntu would solve the problem but I am using the long-term support version and updating would be inconvenient. If anyone out there has a solution, please write me at .
DeleteThanks so much, John
The address disappeared it is zzzzxyzz(at)yahoo.com
Delete