Змініть код країни бездротової картки Mac OS X


16

У мене проблеми з підключенням до бездротового маршрутизатора за допомогою Mac OS X, який знаходиться на каналі 13. Це тому, що поруч є якийсь інший маршрутизатор, який транслює код країни США . Єдиний спосіб, який я знайшов поки що, - це кожен раз переходити до маршрутизатора та перезавантажувати комп'ютер.

Я запитав google, і, здається, це суміш людей, які думають, що це налаштування локалі зміни його або що він зафіксований у прошивці маршрутизатора. Обидва я показали, що помиляються. man ifconfig також не надто просвічує.

Хтось знає інший спосіб змусити карту використовувати інший код країни чи канали? Я б краще не перейшов на інший канал, оскільки поруч є багато перешкод (показано з KisMAC).

Спасибі


Правки

Знайдено

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

Здається, на картці може бути встановлений довільний канал, але не код округу. Це, здається, не має ефекту.


Я знаю, що ви не хочете змінювати канал, але прочитавши відповіді тут, мені здається найпростішим, найменш хакізним рішенням.
wjandrea

Відповіді:


6

802.11d - це протокол, за допомогою якого точки бездротового доступу використовують для трансляції (серед іншого) домену регулятора (тобто кодів країни), в якому він повинен працювати. Здається, що може не існувати чіткого правила, що робити, коли різноманітне обладнання транслює суперечливу регуляторну інформацію про домен.

Ідеальним рішенням було б відключити / замінити / перенастроїти обладнання, яке транслює неправильну інформацію.

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


Виходячи з TA25972 , здається, що старі обладнання (імовірно, моделі, які не слухають інформацію 802.11d), можливо, навіть не зможуть перемикати "коди країн".


На жаль, у мене немає доступу до бездротового маршрутизатора, який транслює неправильний код країни. Я вже бачив цю дискусійну тему раніше, але кімната, в якій я перебуваю, досить далека від правильного маршрутизатора, і кожен перезавантаження там, здається, знаходить американський роутер. що цікаво, проте KisMAC каже, що він може виявляти маршрутизатори на каналі 13, навіть коли для коду країни встановлено значення US. Тож я можу розглянути це пізніше.
Гілочка

1
Я сьогодні перевіряю це ще раз, і KisMAC може знайти мій маршрутизатор та визначити, що він перебуває на каналі 13, незважаючи на те, що код країни як США, а 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
Stephen Connolly

У мене є повідомлення про недійсний кекс. Відновлений файл і торкнувся реж.
k06a

Що робити, якщо ви хочете замість цього коду країни бути ES?
Fran Marzoa

Довелося вимкнути 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

0

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


Як це вирішили? Чи змінився код країни?
Ruskes

Ні Buscar, код країни на Wi-Fi пристрої в моїй околиці не змінився, принаймні, наскільки я міг сказати, як тільки я перейшов з 2,4 ГГц на 5 ГГц і встановив маршрутизатор для автоматичного вибору найсильнішого каналу, який він міг Опитування, я визнав проблему вирішеною, і якщо я повернувся до 2,4 ГГц, тоді код закордонної країни знову з’явився і виявився проблемою для внутрішньої wifi-картки iMac, підключення до Інтернету. Інструмент діагностики Wi-Fi повідомляє про проблему з кодом країни. Повернувся назад до 5 ГГц і автоматично вибирав найкращий канал, який можна перевірити, і проблема усунена.
Пітер Бук

0

Я знайшов дещо химерне рішення. Я спробував усі рішення, які придумав Google, жодне не працювало, але я побачив статтю, в якій згадується, що KisMAC може бачити канал 13. Установив його, а потім раптом мій код країни змінився з США на X3 і тепер я можу підключитися на каналі 13.


-1

Все, що я повинен був зробити в середині 2010 року MacBook Pro - це змінити назву Kext з AirPortBrcm4360 на AppleAirPortBrcm43224, і я нарешті зрозумів своє місцезнаходження!


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.