Mac os wifi country code

OS X и проблемы с WiFi

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

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

Ниже приведен примере компьютера от Apple, официально поставляемого в Украину, с установленной внутри картой от Broadcom.

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

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

system_profiler SPAirPortDataType

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

Interfaces:
en1:
Card Type: AirPort Extreme (0x14E4, 0xD6)
Firmware Version: Broadcom BCM43xx 1.0 (5.106.98.100.22)
MAC Address: b8:8d:12:41:fd:b0
Locale: RoW
Country Code: US
Supported PHY Modes: 802.11 a/b/g/n
Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 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 и поддерживаемые каналы. Также указана страна – US (Спасибо добрым монтажникам, которые настроили Wi-Fi моим соседям).

Почему это произошло? И почему я теперь не могу использовать на своем Wi-Fi роутере каналы 12 и 13?

Все это произошло при включении OS X и сканировании диапазона 2.4ГГц. Параллельно OS X также пытается определить регион в котором находится компьютер, чтобы настроить региональные ограничения – делает OS X это по протоколу 802.11d, слушая какие региональные коды выставлены в роутерах.

В случае с картами Broadcom, первую смену страны OS X старается взять с предпочтительной сети, если она видна в эфире. Если предпочтительной в эфире нет, или на ней отключено 802.11d – то код страны берется с любого соседнего роутера. Но иногда этот алгоритм сбоит, и мак цепляет код страны с чужого роутера. Особенно часто беда происходит после пробуждения из сна. Также при каждом ручном подключении к другому роутеру, драйвер для карт Broadcom обновит региональный код и соответственно список каналов, на значения из роутера к которому подключается, естественно если там вещается по 802.11d другая страна, от той, на которую мак уже настроился ранее…

Для карт Atheros под OS X алгоритм другой – драйвер не ориентируется на список предпочтительных сетей, и страна по протоколу 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

В ответ получим большой список с историей смены регионального кода:
Feb 16 00:41:53 MacBook-Pro-Hades kernel[0]: en1: 802.11d country code set to ‘X2’.
Feb 16 00:41:53 MacBook-Pro-Hades kernel[0]: en1: 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

Feb 16 00:41:57 MacBook-Pro-Hades kernel[0]: en1: 802.11d country code set to ‘US’.
Feb 16 00:41:57 MacBook-Pro-Hades kernel[0]: en1: Supported channels 1 2 3 4 5 6 7 8 9 10 11 36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140 149 153 157 161 165

Читайте также:  При установке линукс не работает клавиатура

В данном случае X2 – это базовый региональный код прошитый в картах Broadcom (во встроенной eeprom-памяти) для всех компьютерах Apple официально продаваемых в Европе.

Базовый региональный код задает частоты по умолчанию на которых нужно искать роутеры при первом сканировании. Для компьютеров Apple продаваемых в других регионах – базовый код будет иметь значение X0, X1 или X3.

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

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

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

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

В моменты возникновения ситуации, когда компьютер от Apple не видит работающей сети в диапазоне 5 ГГц, нужно в терминале посмотреть на текущий режим работы адаптера:
system_profiler SPAirPortDataType
В ответе обращаем внимание на выделенные параметры:
Interfaces:
en1:
Card Type: AirPort Extreme (0x14E4, 0xD6)
Firmware Version: Broadcom BCM43xx 1.0 (5.106.98.100.22)
MAC Address: b8:8d:12:41:fd:b0
Locale: RoW
Country Code: US
Supported PHY Modes: 802.11 a/b/g/n
Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165

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

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

SSID BSSID RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
Olga 08:7a:4c:24:a9:44 -65 1 Y UA WPA(PSK/TKIP,AES/TKIP) WPA2(PSK/TKIP,AES/TKIP)
Chaka 30:85:a9:fb:44:98 -82 11 Y — WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
TP-LINK-302 64:70:02:6c:37:8a -54 7,+1 Y US WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
Flint 64:66:b3:ec:bb:30 -81 4,+1 Y — WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
iWiFi 00:25:9c:bd:26:c2 -60 2 Y — WPA(PSK/TKIP/TKIP) WPA2(PSK/AES/TKIP)

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

Пути решения

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

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

Если там в столбце СС для нашего роутера указана проблемная страна TW, CN, RU, UA, то нужно в настройках роутера поменять её на страну в которых меньше ограничений, например на US, UK, DE…

Если для нашего роутера стоят прочерки – то значит, что в роутере вообще отключено вещание региональных настроек по протоколу 802.11d, а это очень плохо для OS X, так как Мак будет хватать страну с первого попавшегося в эфире чужого роутера. При этом у соседей могут быть всевозможные региональные настройки, и МакОС постоянно будет настраиваться на различные каналы доспупны к использованию – что ведет как раз к ситуации, когда OS X периодически не видит сети 5ГГц.
Отсюда вытекает самое главное решение – протокол 802.11d должен быть обязательно включен в своем роутере, для избавления лишних проблем с OS X.

Читайте также:  Пульт для windows media center

Также есть кардинальное решение данной проблемы – пропатчить драйвер Wi-Fi из состава OS X, выключив в нём работу протокола 802.11d. После этого 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, жизненно важный для правильной работы OS X, по умолчанию включен во всех роутерах от Apple и нигде в настройках не отключается – это хорошо.
Но к выбору страны нужно относиться внимательно:
Выбор страны Россия (RU) крайне не рекомендуется. Из-за этого будет пропадать режим N на OS X с Broadcom, или 5 ГГц на OS X c Atheros, как я говорил выше.
Поэтому в роутерах Apple для России нужно сменить страну на любую европейскую, например на Финляндию…

Если компьютер не проявляет признаков неполадок при подключении к другой сети Wi-Fi, тогда проблема может иметь отношение к маршрутизатору или интернет-провайдеру. В этом случае необходимо связаться с производителем маршрутизатора или интернет-провайдером.

Чертовски полезно, спасибо

Leave a Reply Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Источник

Изменить код страны карты Mac OS X Wireless

У меня проблема с подключением к беспроводному маршрутизатору с использованием Mac OS X, который находится на канале 13. Это связано с тем, что поблизости есть другой маршрутизатор, который передает код страны США . Единственный способ обойти это, я нашел, каждый раз, чтобы перейти к маршрутизатору и перезагрузить компьютер.

Я спросил Google, и это, кажется, смесь людей, которые думают, что он устанавливает локаль, меняет ее, или что это исправлено в прошивке роутера. И то, и другое я доказал, что был неправ. Человек ifconfig также не был слишком поучительным.

Кто-нибудь знает другой способ заставить карту использовать другой код страны или каналы? Я бы предпочел не переходить на другой канал, так как рядом много помех (показано с помощью KisMAC).

Который, кажется, позволяет установить произвольный канал на карте, но не код округа. Это, кажется, не имеет никакого эффекта.

Читайте также:  Политика безопасности windows реферат

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

Идеальным решением было бы отключить / заменить / перенастроить оборудование, которое передает неверную информацию.

Я обнаружил (устаревшую) ветку Apple Discussions, которая указывает, что оборудование Mac AirPort будет использовать первый код страны, который он слышит после включения или выхода из спящего режима. Более поздние публикации в ветке (на второй странице ) указывают на то, что достаточно просто выключить / включить оборудование AirPort, а не всю систему. Несколько человек сообщили об успешном использовании сценария для многократного включения и выключения интерфейса AirPort (с использованием networksetup ), пока он не достиг желаемого состояния (как сообщает system_profiler ).

Основываясь на TA25972 , кажется, что старое оборудование (предположительно модели, которые не прослушивают информацию 802.11d), возможно, даже не сможет переключать «коды стран».

Я получил эту проблему, и я решил ее!

Все, что я хотел сделать, это отключить функцию маяка 802.11d. Это невозможно сделать в любых доступных настройках Mac OS X.

Однако вы можете выполнить двоичное исправление драйвера сетевой карты, думая, что код страны всегда X2.

Итак, очевидно, что мне нужно было бы сделать / изменить / двоичное исправление сетевого драйвера со строкой 0x81 0x78 0x30 0x6B 0x10 0x00 0x00 0x0F 0x85 в 0x81 0x78 0x30 0x6B 0x10 0x00 0x00 x90 0xE0 . Это вынуждает водителя использовать код страны «X2» независимо от того, посылается маяк, поэтому он никогда не изменится.

Вы можете изменить это с помощью утилиты шестнадцатеричного редактирования или скопировать и вставить следующую очень удобную однострочную строку в терминальном приложении:

Это решение работает для Mac Book Pro Retina 2013.

Самое простое решение для конфликтующего кода страны — ваш MAC выбирает неправильный код страны с «ближайшего» вещательного маршрутизатора . поэтому, если у одного из ваших ближайших соседей есть неверный код страны, ваш собственный маршрутизатор предполагает, что он указан «неправильно» ‘страна — и это портит ваше интернет-соединение — РЕШЕНИЕ — получите старый маршрутизатор, который вы больше не используете — и просто подключите его к источнику питания и поместите его рядом с вашим действующим маршрутизатором . убедитесь, что ваш старый маршрутизатор работает Установите правильный код страны, но НЕ подключайте его к Интернету. Затем ваш MAC получит код страны с этого «фиктивного» маршрутизатора и примет правильный код страны . проблема решена. Кажется, это работает для меня, и я так долго сталкивался с этой проблемой .

Между прочим, это решает одну из моих проблем — но если кто-то знает, как побить Великий Брандмауэр и решить проблему случайной высокой задержки при использовании VPN, это было бы бонусом . просто будьте благодарны, что вы не работаете в Китае . его интернет — зло.

Если вы используете драйвер AirPortBrcm4331 на El Capitan:

  1. перезапустите в режиме восстановления (CMD + r при загрузке), откройте терминал и запустите csrutil disable
  2. перезагрузить, открыть терминал и запустить
    • sudo perl -pi -e ‘s|\x30\x6B\x10\x00\x00\x0F\x85\xEA|\xFF\xFF\x10\x00\x00\x0F\x85\xEA|g’ /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortBrcm4331.kext/Contents/MacOS/AirPortBrcm4331
    • sudo touch /System/Library/Extensions/
  3. перезапустите в режиме восстановления (CMD + r при загрузке), откройте терминал и запустите csrutil enable

У меня была похожая проблема с моим маршрутизатором Wi-Fi, но когда я установил маршрутизатор на 5 ГГц и канал на авто, проблема была решена.

Источник

Оцените статью