Заметки про WiFi под Mac OS X

MacOS и диапазон 5 ГГц

Немного теории

wireless-connection-iconЧасто пользователи Mac OS X сталкиваются с проблемой, когда компьютеры от Apple не видят сетей WiFi работающих в диапазоне 5 ГГц или такие сети периодически отваливаются.

Основная проблема в данном случае возникает из-за того, что Mac OS X любит ограничивать использование каналов и диапазонов из-за различных региональных требований.

Возникновение проблемы рассмотрим на примере компьютера от Apple, официально поставляемого в Россию, с установленной внутри картой от Broadcom.

Для снятия данных о текущем режиме работы адаптера WiFi, и параметрах работы с роутером, нужно заглянуть в приложение "Сведения о системе", в раздел WiFi. Так же есть способ посмотреть то-же самое в терминале, все цитаты ниже в этой заметке получены как раз из терминала по команде:

system_profiler SPAirPortDataType

В ответе нас интересовать будут текущие параметры работы нашего адаптера WiFi:

en1:
Card Type: AirPort Extreme (0x14E4, 0xХХ)
Firmware Version: Broadcom BCM43xx 1.0 (5.10.131.36.15)
Locale: RoW
Country Code: X2
Supported PHY Modes: 802.11 a/b/g/n

Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 36, 40, 44, 48, 52, 56, 618, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165

В данном примере видно, что адаптер у нас от Broadcom, и виден текущий режим работы адаптера 802.11 a/b/g/n и поддерживаемые каналы. Также указана страна - X2.
В данном случае X2 - это базовый региональный код прошитый в картах Broadcom (во встроенной eeprom-памяти) для всех компьютерах Apple официально продаваемых в Европе (Россия в том числе). Базовый региональный код задает частоты по умолчанию на которых нужно искать роутеры при первом сканировании. Для компьютеров Apple продаваемых в других регионах - базовый код будет иметь значение X0, X1 или X3.

При первом сканировании MacOS начинает проверять эфир с диапазона 2.4ГГц и составлять для себя список имеющихся в эфире роутеров, чтобы потом подключиться к роутеру с наибольшим приоритетом выставленным в сетевых настройках в MacOS. Параллельно MacOS также пытается определить регион в котором находится компьютер, чтобы настроить региональные ограничения - делает MacOS это по протоколу 802.11d, и как только видит вещание страны по протоколу 802.11d от первого попавшегося ей роутера, тут-же изменяет список доступных каналов и режимов работы в соответствии с полученной страной.

Увидеть такую смену региональных настроек можно в системном логе (kernel.log):

en1: 802.11d country code set to 'TW'.
en1: Supported channels 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 56, 618, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165

Также сразу-же поменяется информация о текущем режиме работы адаптера выдаваемой в терминале по команде system_profiler SPAirPortDataType:

en1:
Card Type: AirPort Extreme (0x14E4, 0xХХ)
Firmware Version: Broadcom BCM43xx 1.0 (5.10.131.36.15)
Locale: RoW
Country Code: TW
Supported PHY Modes: 802.11 a/b/g/n

Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 56, 618, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165

В данном случае вместо базового кода X2 стал отображаться региональный код TW и поменялись доступные к использованию каналы.

Дальнейший поиск сетей происходит уже по обновленному списку доступных каналов, и очень часто из-за этого возникают ситуации, когда MacOS перестает видеть роутеры работающие на частотах которые отсутствуют в обновленном списке каналов, особенно работающие в диапазоне 5ГГц.

Причем данная проблема наиболее сильно проявляет себя, когда на нужном нам роутере протокол 802.11d отключен, а вокруг вещает множество соседских роутеров, на которых 802.11d активирован и MacOS приходится использовать региональные настройки с этих чужих роутеров.

Локализация проблемы 

В моменты возникновения ситуации, когда компьютер от Apple не видит работающей сети в диапазоне 5 ГГц, нужно в терминале посмотреть на текущий режим работы адаптера.В ответе обращаем внимание на выделенные параметры:

Card Type: AirPort Extreme  (0x14E4, 0x8E)
Firmware Version: Broadcom BCM43xx 1.0 (5.106.198.19.22)

Locale: RoW
Country Code: TW
Supported PHY Modes: 802.11 a/b/g/n
Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 56, 618, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165

В данном примере показана ситуация, когда Мак обнаружил страну TW (Тайвань), и скорректировал список каналов для соответствия региональным требованиям.   Данная страна TW приносит много хлопот пользователям MacOS, так-как запрещает работать в диапазоне 5 ГГц на каналах 36, 40, 44, 48 и 52, из-за того,что они запрещены для использования в Тайване.
И если наш роутер работает на одном из этих каналов, то MacOS увидеть его никак не сможет.

Также вредной для МакОС является установка на роутере страны RU (Россия):

Card Type: AirPort Extreme  (0x14E4, 0x8E)
Firmware Version: Broadcom BCM43xx 1.0 (5.106.198.19.22)
Locale: RoW

Country Code: RU
Supported PHY Modes: 802.11 a/b/g
Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 36, 40, 44, 48, 52, 56, 618, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165

В данной ситуации, драйвер для карт Broadcom при обнаружении страны RU - отключает режим N. То есть в диапазоне 2.4 ГГц можно использовать только режимы 802.11b/g, а в диапазоне 5 ГГц можно использовать только режим 802.11a.Соответственно если на роутере для диапазона 5 ГГц стоит режим n-only - то мак увидеть её не сможет. Чтобы хоть как-то роутер смог подключиться к сети работающей на 5 ГГц, в роутере в настройках сети 5 ГГц должен стоять режим 802.11a/n - в этом случае Мак с картой от Broadcom подключится в а-режиме, но будет работать на максимальной для этого режима скорости 54 Мбит/с...

Драйвер для карт Atheros при обнаружении страны RU действует по другому:

en1:
Card Type: AirPort Extreme  (0x168C, 0x17AA)
Firmware Version: Atheros 9280: 4.0.67.5-P2P
Locale: RoW
Country Code: RU
Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13

В данной ситуации вместо отключения режима N, происходит отключение диапазона 5 ГГц, то есть в диапазоне 2.4 ГГц - можно использовать все режимы 802.11b/g/n, а в диапзоне 5ГГц - вообще нельзя использовать ни 802.11a, ни 802.11n... 

Аналогичное поведение происходит и со страной UA:

  • драйвер для карт Broadcom при обнаружении страны UA отключает режим N в обоих диапазонах.
  • драйвер для карт Atheros при обнаружении страны UA отключает диапазон 5Ггц. 

Для определения источника возникновения проблемы, с которого МакОС берет проблемную страну нужно запустить в терминале сканирование эфира по команде:

/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -s
В ответ мы получим список роутеров которые видит наш Мак:

SSID           BSSID                    RSSI    CH   HT   CC   SECURITY (auth/unicast/group)
dlink178      1c:7e:e5:d0:df:хх   -65   1,+1  Y     RU   WPA(PSK/TKIP,AES/TKIP)
hh245          cc:5d:4e:fb:8f:хх    -67   1       Y     TW   WPA2(PSK/AES/AES) 
Dread          00:22:90:90:07:хх -69   11      N     --      WPA(PSK/TKIP/TKIP) 
MajorWiFi   50:46:5d:cc:c2:хх  -41   6       Y     --      WPA2(PSK/AES/AES) 
sohc             f0:7d:68:9b:da:хх  -75   6       N     --      WPA(PSK/TKIP/TKIP)

В данном отчете наглядно видно региональные настройки роутеров. Для этого смотрим столбец СС (Country Code): - для роутеров с отключенным протоколом 802.11d мы увидим прочерки.- для роутеров вещающих региональный код, будут видны две буквы.

Пути решения

Первое что стоит проверить, это взглянуть на региональные настройки своего роутера которые видны в терминале по команде выше.   Если там в столбце СС для нашего роутера указана проблемная страна TW, RU, UA, то нужно в настройках роутера поменять её на страну в которых меньше ограничений, например на US, UK, DE...   Если для нашего роутера стоят прочерки - то значит, что в роутере вообще отключено вещание региональных настроек по протоколу 802.11d, а это очень плохо для MacOS, так как Мак будет хватать страну с первого попавшегося в эфире чужого роутера. При этом у соседей могут быть всевозможные региональные настройки, и МакОС постоянно будет настраиваться на различные каналы доспупны к использованию - что ведет как раз к ситуации, когда Мак периодически не видит сети 5ГГц.
Отсюда вытекает самое главное решение - протокол 802.11d должен быть обязательно включен в своем роутере, для избавления лишних проблем с MacOS. Также желательно перевести сеть 2,4 ГГц вещающую в своем роутере на канал номер 1, чтобы при первоначальном поиске наш роутер попался раньше соседей, и региональный код МакОС взяла с нашего роутера, а не схватила с первого попавшегося соседа...   Также есть кардинальное решение данной проблемы - пропатчить драйвер WiFi из состава MacOS, выключив в нём работу протокола 802.11. После этого МакОС не будет обращать внимание на региональные настройки роутеров, и список доступных каналов и диапазонов будет неизменен.

Из практики

Ситуация с пропаданием сети 5 ГГц в большинстве своем проявляется в связке компьютера от Apple и роутеров от сторонних производителей...   Особенно часто проблемы представляют роутеры от TP-Link, хотя в последнее время к ним подтянулся и ASUS: во всех современных роутерах от ASUS (rt-n56u, rt-n66u, rt-ac66u и т.д.) протокол 802.11d по умолчанию отключен, что как раз приводит в описанным в этой заметке проблемам...
Для активации 802.11d на роутерах от ASUS нужно использовать Telnet. К примеру рецепт для ASUS rt-n66u:

1. подключаемся про telnet
2. даём четыре команды
nvram set wl0_reg_mode=h
nvram set wl_reg_mode=h
nvram commit
reboot

У родных роутеров от Apple - проблем меньше, но тоже есть...
Протокол 802.11d, жизненно важный для правильной работы MacOS, по умолчанию включен во всех роутерах от Apple и нигде в настройках не отключается - это хорошо.
Но к выбору страны нужно относиться внимательно:
В роутерах Apple официально поставляемым в России - есть для использования выбор страны Россия (RU), но использовать её крайне не рекомендуется. Из-за этого будет пропадать режим N на Маках с Broadcom, или 5 ГГц на Маках c Atheros, как я говорил выше.
Поэтому в роутерах Apple для России нужно сменить страну на любую европейскую, например на Финляндию...

Материал взят отсюда
Мне помогло - дай боже и вам поможет ))   

Обо мне

bottom-logo

Я дизайнер. Здесь вы можете увидеть мои работы. Хорошо я делаю свою работу или не очень — судить вам.

Главное правило — вы никогда не увидите незаконченной работы. Только досконально отточенный проект можно выпускать в жизнь.

Калькулятор упаковки