Zmień kod kraju karty sieci bezprzewodowej Mac OS X.

16

Mam problem z połączeniem się z routerem bezprzewodowym za pomocą Mac OS X, który jest na kanale 13. Jest tak, ponieważ w pobliżu jest inny router, który nadaje kod kraju w USA . Jedynym sposobem na to, jaki do tej pory znalazłem, jest za każdym razem iść do routera i ponownie uruchomić komputer.

Zapytałem google i wydaje się, że jest to mieszanka ludzi, którzy myślą, że to ustawienie regionalne go zmienia lub że jest to ustalone w oprogramowaniu routera. Oba okazały się błędne. man ifconfig również nie był zbyt pouczający.

Czy ktoś zna inny sposób zmuszenia karty do użycia innego kodu kraju lub kanałów? Wolałbym nie przejść na inny kanał, ponieważ w pobliżu jest dużo zakłóceń (pokazane z KisMAC).

Dzięki


Edycje

Znaleziony

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

Który wydaje się pozwalać na ustawienie arbitralnego kanału na karcie, ale nie kodu hrabstwa. To nie wydaje się mieć żadnego efektu.

Gałązka
źródło
Wiem, że nie chcesz zmieniać kanału, ale po przeczytaniu tutaj odpowiedzi wydaje mi się to najprostszym, najmniej hackującym rozwiązaniem.
wjandrea

Odpowiedzi:

6

802.11d jest protokołem używanym przez bezprzewodowe punkty dostępowe do rozgłaszania (między innymi) domeny regulacyjnej (tj. Kodów krajów), w której ma działać. Wydaje się, że może nie istnieć jasna zasada postępowania w przypadku, gdy różne urządzenia nadają sprzeczne informacje dotyczące domeny regulacyjnej.

Idealnym rozwiązaniem byłoby wyłączenie / wymiana / ponowna konfiguracja sprzętu, który emituje nieprawidłowe informacje.

Znalazłem (stary) wątek dyskusji Apple, który wskazuje, że sprzęt Mac AirPort użyje pierwszego kodu kraju, który usłyszy po włączeniu lub wybudzeniu ze snu. Późniejsze posty w wątku (na drugiej stronie ) wskazują, że wystarczy tylko wyłączyć / włączyć sam sprzęt AirPort, a nie cały system. Kilka osób zgłosiło sukces za pomocą skryptu, aby wielokrotnie wyłączać i włączać interfejs AirPort (za pomocą networksetup), aż do uzyskania pożądanego stanu (jak zgłosił system_profiler).


W oparciu o TA25972 wydaje się, że starsze urządzenia (prawdopodobnie modele, które nie nasłuchują informacji 802.11d) mogą nawet nie być w stanie zmienić „kodów krajów”.

Chris Johnsen
źródło
Niestety nie mam dostępu do routera bezprzewodowego, który nadaje niewłaściwy kod kraju. Widziałem już ten wątek do dyskusji, ale pokój, w którym jestem, jest dość daleko od właściwego routera i przy każdym ponownym uruchomieniu wydaje się, że znajduje się router nadawczy w USA. Co ciekawe, KisMAC twierdzi, że może wykrywać routery na kanale 13, nawet jeśli kod kraju jest ustawiony na US. Więc mogę zajrzeć do tego później.
Gałązka
1
Ponownie to sprawdziłem dzisiaj i KisMAC jest w stanie znaleźć mój router i stwierdzić, że jest on na kanale 13, mimo że ma kod kraju jako USA i 13 nie znajduje się na liście obsługiwanych kanałów
Twig
5

Mam ten problem i rozwiązałem go!

Chciałem tylko wyłączyć funkcję sygnalizatora 802.11d. Nie można tego zrobić w żadnych dostępnych ustawieniach systemu Mac OS X.

Można jednak naprawić binarnie sterownik karty sieciowej, myśląc, że kod kraju to zawsze X2.

Najwyraźniej musiałbym zmienić / załatać binarnie sterownik sieci za pomocą łańcucha 0x81 0x78 0x30 0x6B 0x10 0x00 0x00 0x0F 0x85do 0x81 0x78 0x30 0x6B 0x10 0x00 0x00 x90 0xE0. Zmusza to kierowcę do używania kodu kraju «X2» niezależnie od wysyłanego sygnału nawigacyjnego, więc nigdy się nie zmieni.

Możesz to zmienić za pomocą narzędzia do edycji szesnastkowej lub skopiować i wkleić następujący bardzo przydatny jeden wiersz w aplikacji terminalowej:

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/

To rozwiązanie działa na Mac Book Pro Retina 2013.

Eirik
źródło
2
W przypadku innych MBP możesz znaleźć, który sterownik wymaga łatania za pomocą polecenia:sudo kextstat | grep AirPort
Stephen Connolly,
Mam wiadomość o nieprawidłowym kext. Cofnięto plik i dotknięto reż.
k06a
Co zrobić, jeśli zamiast tego chcesz, aby kod kraju to ES?
Fran Marzoa,
Musiałem wyłączyć SIP na 13-calowym Macbooku Pro pod koniec 2011 roku, aby dokonać zmiany. Mimo to nie działało to dla mnie. :(
GAM
1
nie działa .. Otrzymuję: Nie można usunąć /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortBrcm4360.kext/Contents/MacOS/AirPortBrcm4360: Operacja niedozwolona, ​​pomijanie pliku.
user426132
1

Najłatwiejsze rozwiązanie dla sprzecznego kodu kraju - twój MAC odbiera nieprawidłowy kod kraju z „najbliższego” routera nadawczego ..... więc jeśli jeden z twoich bliskich sąsiadów ma nieprawidłowy kod kraju, twój własny router zakłada, że ​​jest w tym „zły” „kraj - i to zakłóca twoje połączenie internetowe - ROZWIĄZANIE - zdobądź stary router, którego już nie używasz - i po prostu podłącz go do źródła zasilania i umieść w pobliżu routera na żywo ..... upewnij się, że twój stary router jest skonfiguruj właściwy kod kraju, ale NIE podłączaj go do Internetu. Następnie Twój MAC odbierze kod kraju z tego „fałszywego” routera i przyjmie prawidłowy kod kraju ..... problem rozwiązany. Wydaje się, że to działa dla mnie i tak długo miałem problem z tym problemem .....

Nawiasem mówiąc, rozwiązuje to jeden z moich problemów - ale jeśli ktoś wie, jak pokonać Wielką zaporę ogniową i rozwiązać problem losowo dużych opóźnień podczas korzystania z VPN, co byłoby dodatkową korzyścią ........ po prostu wdzięczny, że nie pracujesz w Chinach ..... jego internet jest zły.

Spence
źródło
1

Jeśli używasz sterownika AirPortBrcm4331 na El Capitan:

  1. uruchom ponownie w trybie odzyskiwania (CMD + r podczas uruchamiania), otwórz terminal i uruchom csrutil disable
  2. uruchom ponownie, otwórz terminal i uruchom
    • 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. uruchom ponownie w trybie odzyskiwania (CMD + r podczas uruchamiania), otwórz terminal i uruchom csrutil enable
primianoC
źródło
0

Miałem podobny problem z moim routerem Wi-Fi, ale kiedy ustawiłem router na 5 Ghz i kanał na auto, problem został rozwiązany.

Peter Boocock
źródło
Jak to rozwiązało ?, czy zmienił się kod kraju?
Ruskes
Nie Buscar, kod kraju na urządzeniu Wi-Fi w mojej okolicy nie zmienił się, przynajmniej o ile mogłem powiedzieć, gdy tylko zmieniłem z 2,4 GHZ na 5 GHZ i ustawiłem router na automatyczne wybieranie najsilniejszego kanału, jaki mógł w sondażu stwierdziłem, że problem został rozwiązany, a jeśli przełączyłem się z powrotem na 2,4 GHZ, kod obcego kraju ponownie się pojawił i okazało się, że jest to problem z połączeniem wewnętrznej karty Wi-Fi mojego komputera iMac z Internetem. Narzędzie diagnostyczne Wi-Fi poinformowało o problemie z kodem kraju. Zamieniono z powrotem na 5GHZ i automatycznie wybierz najlepszy kanał do pollable i problem został usunięty.
Peter Boocock,
0

Znalazłem nieco dziwne rozwiązanie. Wypróbowałem wszystkie rozwiązania wymyślone przez Google, żadne nie działało, ale widziałem artykuł, w którym wspomina się, że KisMAC widzi kanał 13. Zainstalowałem go, a potem nagle mój kod kraju zmienił się z US na X3, a teraz mogę połączyć się z kanałem 13.

Shaun
źródło
-1

Wszystko, co musiałem zrobić na moim MacBooku Pro w połowie 2010 roku, to zmienić nazwę kext z AirPortBrcm4360 na AppleAirPortBrcm43224 i wreszcie udało mi się poprawnie ustalić swoją lokalizację!

Miha
źródło