Apple

Материал из Энциклопедия Хаб.ру
Перейти к: навигация, поиск

Содержание

Apple

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

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

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

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

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

Для снятия данных о текущем режиме работы адаптера Wi-Fi, и параметрах работы с роутером, нужно заглянуть в приложение "Сведения о системе", в раздел Wi-Fi.

Так же есть способ посмотреть то-же самое в терминале, все цитаты ниже в этой заметке получены как раз из терминала по команде:

system_profiler SPAirPortDataType

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

   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, 60, 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, слушая какие региональные коды выставлены в роутерах.

Broadcom

В случае с картами Broadcom, первую смену страны Мак старается взять с предпочтительной сети, если она видна в эфире.

Если предпочтительной в эфире нет, или на ней отключено 802.11d - то код страны берется с любого соседнего роутера.

Но иногда этот алгоритм сбоит, и мак цепляет код страны с чужого роутера. Особенно часто беда происходит после пробуждения из сна.

Также при каждом ручном подключении к другому роутеру, драйвер для карт Broadcom обновит

региональный код и соответственно список каналов, на значения из роутера к которому подключается,

естественно если там вещается по 802.11d другая страна, от той, на которую мак уже настроился ранее...

Atheros

Для карт Atheros под Мак алгоритм другой - драйвер не ориентируется на список предпочтительных сетей,

и страна по протоколу 802.11d хватается от первого попавшегося в эфире роутера, после этого уже не важно какой код

в роутере к которому подключается MacOS - для карт Atheros код выставляется один раз и до отключения адаптера!

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

Для отображения последних срабатываний 802.11d идем в терминал и вводим команды:

cat /var/log/system.log | grep 802.11d -A1
cat /var/log/kernel.log | grep 802.11d -A1 

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

   ...
   en1: 802.11d country code set to 'CN'.
   en1: Supported channels 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 149, 153, 157, 161, 165
   ...
   en1: 802.11d country code set to 'TW'.
   en1: Supported channels 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 56, 60, 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, 60, 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 ГГц, нужно в терминале посмотреть на текущий режим работы адаптера:

system_profiler SPAirPortDataType

В ответе обращаем внимание на выделенные параметры:

   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, 60, 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 увидеть его никак не сможет.

Очень похоже на Тайвань действует и обнаружение маком страны Китай (CN):

   Card Type: AirPort Extreme (0x14E4, 0x8E)
   Firmware Version: Broadcom BCM43xx 1.0 (5.106.98.100.16)
   Locale: RoW
   Country Code: CN
   Supported PHY Modes: 802.11 a/b/g/n
   Supported Channels: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 
149, 153, 157, 161, 165

Данная страна CN ещё больше ограничивает каналы в диапазоне 5 ГГц.

Для использования разрешено лишь пять каналов 149, 153, 157, 161 и 165.

Также вредной для МакОС является установка на роутере страны 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, 60, 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. Иначе говоря, Мак в такой ситуации сетей работающих в 5 ГГц вообще видеть не будет.

Аналогичное поведение происходит и со страной 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. Для этого вводим в терминал команду для OS X 10.8:

cat /var/log/system.log | grep 802.11d -A1

или для Mac OS X 10.7:

cat /var/log/kernel.log | grep 802.11d -A1 

Пути решения

Первое что стоит проверить, это взглянуть на региональные настройки своего роутера которые видны в терминале по команде:

/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -s

Если там в столбце СС для нашего роутера указана проблемная страна TW, CN, RU, UA,

то нужно в настройках роутера поменять её на страну в которых меньше ограничений, например на US, UK, DE...

Если для нашего роутера стоят прочерки - то значит, что в роутере вообще отключено вещание региональных настроек

по протоколу 802.11d, а это очень плохо для MacOS, так как Мак будет хватать страну с первого попавшегося в эфире чужого роутера.

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

доспупны к использованию - что ведет как раз к ситуации, когда Мак периодически не видит сети 5ГГц.

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

Также желательно перевести сеть 2,4 ГГц вещающую в своем роутере на канал номер 1, чтобы при первоначальном поиске наш роутер

попался раньше соседей, и региональный код МакОС взяла с нашего роутера, а не схватила с первого попавшегося соседа...

Также есть кардинальное решение данной проблемы - пропатчить драйвер Wi-Fi из состава MacOS, выключив в нём работу протокола 802.11d.

После этого МакОС не будет обращать внимание на региональные настройки роутеров,

и список доступных каналов и диапазонов будет неизменен.

Подробности в заметке - отключение 802.11d в Mac OS X.

Из практики

Ситуация с пропаданием сети 5 ГГц в большинстве своем проявляется в связке

компьютера от Apple и роутеров от сторонних производителей.

Особенно часто проблемы представляют роутеры от TP-Link. Хотя в последнее время стал портиться ASUS:

в современных роутерах от ASUS на чипсетах Broadcom (RT-N66U, RT-AC66U и т.д.) протокол 802.11d

по умолчанию отключен, что как раз приводит в описанным в этой заметке проблемам...

Для активаци 802.11d на роутерах TP-Link, нужно в настройках параметров WIFI поменять страну.

Почему-то на большинстве роутеров TP-Link по умолчанию, после включения роутера 802.11d отключен,

и начинает вещать региональные настройки только после смены страны через GUI.

И это делать нужно при каждой перезагрузке роутера - заново лезть в настройки роутера и менять страну...

Для активации 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 для России нужно сменить страну на любую европейскую, например на Финляндию...

(c) Skvo

Источник

См. также

Источник — «http://www.hub.ru/wiki/Apple»
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты