Hi guys,
I had a problem with Wifi on my Macbook Pro. So I am sharing a solution here just for case anyone has same issue.
Well. Why should someone want to disable 802.11d feature on his Mac?
This feature just simply scans available wifi networks and sets wireless card to some region based on this scan. Wireless networks transmits some informations about themselves. Informations are SSID (network name), channel, country code and some other... In case of Apple computers it sets wireless card region to most restrictive one country code that this scan find.
Based on region set on wireless card you can use specific frequency (channel) to connect to wireless network.
And here is the problem. Many users don't know how to properly setup their Wifi and they are transmitting bad country code.
For example in my case. I am living in Czech Republic, which uses wireless channels 1 - 13. So my wireless AP is set to country code CZ.
But many nearby networks transmits country code US - United states (because this is default configuration on most routers). But US have only channels 1 - 11 available for wifi.
So in this case my Macbook sets wireless region to US. Result is that I can't connect to WiFi networks on channel 12 and 13.
So for everyone with the same problem, here is final resolution to fix this. Just keep in mind that you are disabling this feature and it will no longer work (but it is not necessary feature, for example most windows notebooks does not have this feature at all).
Bad thing is, you must repeat this 802.11d fix procedure after every OS update
I had a problem with Wifi on my Macbook Pro. So I am sharing a solution here just for case anyone has same issue.
Well. Why should someone want to disable 802.11d feature on his Mac?
This feature just simply scans available wifi networks and sets wireless card to some region based on this scan. Wireless networks transmits some informations about themselves. Informations are SSID (network name), channel, country code and some other... In case of Apple computers it sets wireless card region to most restrictive one country code that this scan find.
Based on region set on wireless card you can use specific frequency (channel) to connect to wireless network.
And here is the problem. Many users don't know how to properly setup their Wifi and they are transmitting bad country code.
For example in my case. I am living in Czech Republic, which uses wireless channels 1 - 13. So my wireless AP is set to country code CZ.
But many nearby networks transmits country code US - United states (because this is default configuration on most routers). But US have only channels 1 - 11 available for wifi.
So in this case my Macbook sets wireless region to US. Result is that I can't connect to WiFi networks on channel 12 and 13.
So for everyone with the same problem, here is final resolution to fix this. Just keep in mind that you are disabling this feature and it will no longer work (but it is not necessary feature, for example most windows notebooks does not have this feature at all).
Reboot your Mac in recovery mode (CMD+R while booting)
Open Tools - Terminal from menu
Then run command "csrutil disable"
Reboot to OS
Open Terminal
Run "kextstat | grep AirPort"
Now you can determine what type of wireless card do you have.
If you have AirPort.Atheros40 then run:
sudo perl -pi -e 's|\x75\x47\x48\x85\xF6|\xE9\xCB\x00\x00\x00|' /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros40.kext/Contents/MacOS/AirPortAtheros40
For AirPortBrcm4360 run:
sudo perl -pi -e 's|\x24\xC8\x05\x00\x00\x6B\x10|\x24\xC8\x05\x00\x00\xFF\xFF|' /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortBrcm4360.kext/Contents/MacOS/AirPortBrcm4360
For AirPortBrcm4331 run:
sudo perl -pi -e 's|\x30\x6B\x10\x00\x00\x0F\x85\xEA|\xFF\xFF\x10\x00\x00\x0F\x85\x EA|g' /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortBrcm4331.kext/Contents/MacOS/AirPortBrcm4331
When you done this, run "sudo touch /System/Library/Extensions/"
Now you can reboot your system. 802.11d should be disabled after reboot.
For security reasons I recommend to enable system files protection again.
If you want to do this, reboot your Mac to recovery mode again. Open terminal and run "csrutil enable".
Reboot to OS.
Bad thing is, you must repeat this 802.11d fix procedure after every OS update