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

16

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

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

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

Благодарность


Правки

Нашел

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport

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

прут
источник
Я знаю, что вы не хотите менять канал, но после прочтения ответов мне кажется, что это самое простое, наименее хакерское решение.
wjandrea

Ответы:

6

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

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

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


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

Крис Джонсен
источник
К сожалению, у меня нет доступа к беспроводному маршрутизатору, который передает неправильный код страны. Я видел эту ветку обсуждения раньше, но комната, в которой я нахожусь, довольно далека от правильного маршрутизатора, и каждая перезагрузка там, кажется, находит вещательный маршрутизатор США. Интересно, что KisMAC говорит, что может обнаруживать маршрутизаторы на канале 13, даже если для кода страны установлено значение US. Так что я могу рассмотреть это позже.
Twig
1
Сегодня я снова проверил это, и KisMAC может найти мой маршрутизатор и определить, что он находится на канале 13, несмотря на то, что код страны указан как US, а 13 нет в списке поддерживаемых каналов
Twig
5

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

Все, что я хотел сделать, это отключить функцию маяка 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» независимо от того, посылается маяк, поэтому он никогда не изменится.

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

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/AirPortBrcm4360.kext/Contents/MacOS/AirPortBrcm4360 && sudo touch /System/Library/Extensions/

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

Эйрик
источник
2
Для других MBP вы можете найти, какой драйвер нуждается в исправлении с помощью команды:sudo kextstat | grep AirPort
Стивен Коннолли
У меня есть сообщение о недействительном kext. Вернул файл и коснулся реж.
k06a
Что если вы хотите, чтобы вместо кода страны использовался код ES?
Фран Марзоа,
Мне пришлось отключить SIP на 13 "Macbook Pro в конце 2011 года, чтобы внести изменения. Несмотря на это, у меня это не сработало. :(
GAM
1
не работает .. Я получаю: Не удается удалить /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortBrcm4360.kext/Contents/MacOS/AirPortBrcm4360: Операция запрещена, файл пропущен.
user426132
1

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

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

кладовая для продуктов
источник
1

Если вы используете драйвер 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
primianoC
источник
0

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

Питер Букок
источник
Как это решило? Изменился ли код страны?
Рускес
Нет Buscar, код страны на устройстве Wi-Fi в моем районе не изменился, по крайней мере, насколько я могу судить, как только я переключился с 2,4 ГГц на 5 ГГц и настроил мой маршрутизатор на автоматический выбор самого сильного канала, который мог В ходе опроса я обнаружил, что проблема решена, и если я снова переключился на 2,4 ГГц, код иностранной страны снова появился, и это оказалось проблемой для внутренней Wi-Fi-карты моего iMac при подключении к Интернету. Инструмент диагностики Wi-Fi сообщает о проблеме с кодом страны. Вернитесь к 5GHZ и автоматически выберите лучший канал, и проблема будет устранена.
Питер Бакок,
0

Я нашел немного странное решение. Я перепробовал все решения, которые предлагает Google, но ни одно из них не сработало, но я увидел статью, в которой упоминается, что KisMAC может видеть канал 13. Установил его, а затем внезапно мой код страны изменился с US на X3, и теперь я могу подключиться на канале 13.

Shaun
источник
-1

Все, что мне нужно было сделать на моем MacBook Pro в середине 2010 года, - это сменить имя kext с AirPortBrcm4360 на AppleAirPortBrcm43224, и я, наконец, понял свое местоположение!

Miha
источник