User:Omega/Apple

Apple • http://archive.li/0JFS0

Содержание
 * 1 Apple
 * 1.1 MacOS и диапазон 5 ГГц
 * 1.1.1 Немного теории
 * 1.1.2 Broadcom
 * 1.1.3 Atheros
 * 1.1.4 Локализация проблемы
 * 1.1.5 Пути решения
 * 1.1.6 Из практики
 * 1.1.7 Источник
 * 1.1.8 См. также

=Apple=

Немного теории
Часто пользователи 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 идем в терминал и вводим команды:
 * - для Mac 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 В ответ получим большой список с историей смены регионального кода: ...  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 мы увидим прочерки.
 * - для роутеров вещающих региональный код, будут видны две буквы.

Также полезно поизучать лог последних срабатываний 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

Отключение 802.11d в Mac OS X (disable 802.11d in Mac OS X)
Отключение 802.11d в Mac OS X 10.9 или как заставить Wi-Fi на iMac работать в диапазоне 5 Ггц. Немного теории.

Протокол 802.11d предназначен для адаптации различных Wi-Fi-устройств к специфическим условиям различных стран.
 * Используя протокол 802.11d, MacOS ограничивает использование некоторых каналов и диапазонов запрещенных в отдельных странах.

Необходимость отключения 802.11d может возникнуть из-за проблем с работой WiFi в диапазоне 5 ГГц под Mac OS X...
 * Для отключения 802.11d необходим бинарный патч драйвера WiFi.

В составе MacOS несколько драйверов для различных адаптеров WiFi от Broadcom и Atheros.
 * Из-за этого патчить нужно текущий используемый драйвер.

Для определения текущего драйвера нужно выполнить в терминале команду: sudo kextstat | grep AirPort В ответе будет указан используемый драйвер: skvo$ kextstat | grep AirPort 56 0 0x11c2000 0x228000 0x227000 com.apple.driver.AirPort.Brcm4331 (561.7.22) В данном случае используется драйвер AirPort.Brcm4331.

Также в ответе можно увидеть AirPort.Brcm43224, AirPort.Atheros21, AirPort.Atheros40.
 * В зависимости от ответа - выбираем необходимый патч ниже.

1. Отключение 802.11d в драйвере AirPort.Brcm4331
Для отключения 802.11d нужно выполнить две команды в терминале:

первая команда на бинарный патч драйвера AirPortBrcm4331: sudo perl -pi -e 's|\x81\x78\x30\x6B\x10\x00\x00\x0F\x85|\x81\x78\x30\x6B\x10\x00\x00\x90\xE9|' /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortBrcm4331.kext/Contents/MacOS/AirPortBrcm4331

вторая для пересоздания кэша кекстов: sudo touch /System/Library/Extensions/

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

После перезагрузки в "Сведениях о системе" в разделе WiFi вы должны видеть
 * прошитый в картах Broadcom исходный региональный код X0, X1, X2, X3.

Для примера на Маках продаваемых официально в России - будет X2.
 * Никакие региональные настройки роутеров сбивать этот код не будут.

Режимы работы и список каналов будет всегда постоянен: Interfaces: 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

Данный патч прошел проверку и работоспособен в системах Mac OS X 10.7.5 и OS X 10.8.4.
 * Также обязан сработать на любой системе 10.7.х и 10.8.х.

2. Отключение 802.11d в драйвере AirPort.Brcm43224
Для отключения 802.11d нужно выполнить две команды в терминале:

первая команда на бинарный патч драйвера AirPortBrcm43224: sudo perl -pi -e 's|\x81\x78\x28\x6B\x10\x00\x00\x0F\x85|\x81\x78\x28\x6B\x10\x00\x00\x90\xE9|' /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AppleAirPortBrcm43224.kext/Contents/MacOS/AppleAirPortBrcm43224

вторая для пересоздания кэша кекстов: sudo touch /System/Library/Extensions/

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

Данный патч прошел проверку и работоспособен в системах Mac OS X 10.7.5 и OS X 10.8.4.
 * Также обязан сработать на любой системе 10.7.х и 10.8.х.

3. Отключение 802.11d в драйвере AirPort.Atheros40
Для меня был актуальным способ, описанный ниже, т.к. у меня установлен
 * адаптер Atheros 9280 и Mac OS X 10.9.

Для того, что бы узнать, какой адаптер установлен у вас, нажмите на:
 * Яблоко - об этом Мак - Подробнее - Отчет о системе - Сеть - Wi-Fi.

Патч для системы OS X 10.9 Maverics: Для отключения 802.11d нужно выполнить две команды в терминале:

первая команда на бинарный патч драйвера AirPort.Atheros40: sudo perl -pi -e 's|\x75\x3B\x48\x85\xF6|\xE9\xBC\x00\x00\x00|' /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros40.kext/Contents/MacOS/AirPortAtheros40

вторая для пересоздания кэша кекстов: sudo touch /System/Library/Extensions/

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

После перезагрузки в "Сведениях о системе" в разделе WiFi вы должны видеть пустое поле с названием страны.
 * Базовый список каналов зависит от регионального кода (regdomain) прошитого в картах Atheros.

Никакие региональные настройки роутеров сбивать этот базовый список не будут.

Для примера отчет с iMac официально продаваемого в России: Interfaces: en0: Card Type: AirPort Extreme (0x168C, 0x17AA) Firmware Version: Atheros 9280: 4.0.72.0-P2P Locale: RoW Country Code: 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

При этом вокруг два роутера с включенным 802.11d, и к одному из них мы подключены: SSID BSSID RSSI CH HT CC SECURITY (auth/unicast/group) Panda a0:f3:c1:89:9f:xx -58 6 Y RU WPA2(PSK/AES/AES) TerLink 00:26:18:c8:3a:xx -57 11 Y US WPA2(PSK/AES/AES)

Патч для системы OS X 10.8.x: sudo perl -pi -e 's|\x75\x3A\x48\x85\xF6\x75\x0D\x31\xC0\xF6\x43\x59\x80\x75\x2D|\x90\x90\x48\x85\xF6\x90\x90\x31\xC0\xF6\x43\x59\x80\x90\x90|' /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros40.kext/Contents/MacOS/AirPortAtheros40

Патч для системы Mac OS X 10.7.5.
 * Он идет в двух вариантах, в зависимости от разрядности вашей системы (32 или 64 бит).

Для определения разрядности системы в терминале запускаем uname -a, и смотрим последний параметр на разрядность ядра.

Для систем i386 (32-бит) патч для AirPort.Atheros40 под Mac OS X 10.7.5: sudo perl -pi -e 's|\x75\x33\x85\xC9\x75\x0B\xF6\x46\x3D\x80\x75\x29|\x90\x90\x85\xC9\x90\x90\xF6\x46\x3D\x80\x90\x90|' /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros40.kext/Contents/MacOS/AirPortAtheros40

Для систем x86_64 (64-бит) патч для AirPort.Atheros40 под OS X 10.7.5: sudo perl -pi -e 's|\x75\x34\x48\x85\xF6\x75\x0B\xF6\x43\x59\x80\x75\x29|\x90\x90\x48\x85\xF6\x90\x90\xF6\x43\x59\x80\x90\x90|' /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros40.kext/Contents/MacOS/AirPortAtheros40

вторая команда одинакова для обоих версий: sudo touch /System/Library/Extensions/

Примечание
При обновлении системы Combo или Delta обновленим - данный патч слетит,
 * так как обновление системы обновляет драйвера WiFi.

Поэтому, если патч применялся на системе OS X 10.8.2, то нужно повторно
 * его выполнить после обновления системы на версию OS X 10.8.3...

(c) Skvo

Ссылка на оригинал статьи http://wifi-mac.blogspot.ru/2013/03/80211d-macos.html

МЕТКИ: 5 Ггц, 802.11d, atheros, imac, wi-fi, патч

Источник

 * http://wifi-mac.blogspot.ru/2013/03/atheros-wi-fi-apple.html#!/2013/03/atheros-wi-fi-apple.html
 * http://wifi-mac.blogspot.ru/2013/03/mac-os-x-5.html#!/2013/03/broadcom-wi-fi-apple.html

См. также

 * http://wifi-mac.blogspot.ru/?view=classic

Категория: Маршрутизаторы

© 2002–2012 «Хаб.ру», по всем вопросам пишите на admin@hub.ru