Alterar o código do país da placa sem fio Mac OS X

16

Estou com problemas para conectar-me a um roteador sem fio usando o Mac OS X que está no canal 13. Isso ocorre porque há outro roteador próximo que está transmitindo o código de país dos EUA . A única maneira de contornar isso que eu encontrei até agora é sempre ir ao roteador e reiniciar o computador.

Eu perguntei ao google e parece ser uma mistura de pessoas que pensam que ele está definindo o local e o altera ou que está corrigido no firmware do roteador. Ambos eu tenho mostrado estar errado. man ifconfig também não foi muito esclarecedor.

Alguém conhece outra maneira de forçar o cartão a usar um código ou canais de países diferentes? Prefiro não mudar para outro canal, pois há muita interferência por perto (mostrada com o KisMAC).

obrigado


Editar% s

Encontrado

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

O que parece permitir que um canal arbitrário seja definido no cartão, mas não o código do condado. Isso parece não ter efeito.

Galho
fonte
Sei que você não quer mudar de canal, mas depois de ler as respostas aqui, parece-me a solução mais simples e menos invasiva.
wjandrea

Respostas:

6

802.11d é o protocolo que os pontos de acesso sem fio usam para transmitir (entre outras coisas) o domínio regulatório (ou seja, códigos de país) no qual ele deve estar operando. Parece que pode não haver uma regra clara sobre o que fazer quando vários equipamentos estão transmitindo informações conflitantes sobre o domínio regulatório.

A solução ideal seria desativar / substituir / reconfigurar o equipamento que está transmitindo as informações incorretas.

Encontrei um tópico (antigo) da Apple Discussions que indica que indica que o hardware AirPort de um Mac usará o primeiro código do país que ouvir depois de ligar ou sair do modo de suspensão. Postagens posteriores no encadeamento (na segunda página ) indicam que é suficiente desligar / ligar o hardware AirPort em si e não o sistema inteiro. Algumas pessoas relataram êxito usando um script para ativar e desativar a interface AirPort repetidamente (usando networksetup) até que adquirisse o estado desejado (conforme relatado por system_profiler).


Com base no TA25972 , parece que equipamentos mais antigos (presumivelmente modelos que não escutam informações 802.11d) podem nem ser capazes de alternar “códigos de países”.

Chris Johnsen
fonte
Infelizmente, não tenho acesso ao roteador sem fio que está transmitindo o código do país errado. Eu já tinha visto esse tópico de discussão antes, mas a sala em que estou está muito longe do roteador correto e toda reinicialização parece encontrar o roteador de transmissão dos EUA. Curiosamente, o KisMAC diz que pode detectar roteadores no canal 13, mesmo quando o código do país está definido como EUA. Então, eu posso analisar isso mais tarde.
Twig
11
Tenho verificar isso novamente hoje e KisMAC é capaz de encontrar o meu router e identificar que é no canal 13, apesar de ter o código do país como EUA e 13 não estar na lista de canais suportados
Twig
5

Eu tenho esse problema e resolvi-o!

Tudo o que eu queria fazer era desativar a função de farol 802.11d. Isso é impossível de fazer em qualquer configuração disponível no Mac OS X.

No entanto, você pode corrigir o binário do driver da placa de rede pensando que o código do país é sempre X2.

Então, aparentemente, o que eu teria que fazer é mudar / patch binário do driver de rede com a corda 0x81 0x78 0x30 0x6B 0x10 0x00 0x00 0x0F 0x85para 0x81 0x78 0x30 0x6B 0x10 0x00 0x00 x90 0xE0. Isso força o motorista a usar o código do país «X2», independentemente do beacon que estiver sendo enviado, para que nunca mude.

Você pode alterar isso com um utilitário de edição hexadecimal ou copiar e colar o seguinte verso muito útil no aplicativo de terminal:

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/

Esta solução funciona para o Mac Book Pro Retina 2013.

Eirik
fonte
2
Para outros MBPs, você pode encontrar qual driver precisa de correção com o comando:sudo kextstat | grep AirPort
Stephen Connolly
Recebi uma mensagem sobre o kext inválido. Arquivo revertido e toquei em dir.
k06a 5/09/2015
E se você quiser que o código do país seja ES?
Fran Marzoa 25/09
Tive que desativar o SIP no MacBook Pro de 13 "no final de 2011 para fazer a alteração. Mesmo assim, não funcionou para mim. :(
GAM
não funciona .. Recebo: Não é possível remover /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortBrcm4360.kext/Contents/MacOS/AirPortBrcm4360: operação não permitida, ignorando o arquivo.
user426132
1

Solução mais fácil para códigos de países conflitantes - seu MAC está pegando o código de país incorreto no roteador de transmissão 'mais próximo' ..... portanto, se um de seus vizinhos próximos tiver um código de país incorreto, seu próprio roteador assume que está errado ' '- e atrapalha sua conexão com a Internet - SOLUÇÃO - adquira um roteador antigo que você não usa mais - basta conectá-lo à fonte de alimentação e colocá-lo próximo ao roteador ativo ... configure com o código do país correto, mas NÃO conecte-o à Internet. Em seguida, o seu MAC pegará o código do país nesse roteador 'fictício' e adotará o código do país correto ..... problema resolvido. Isso parece funcionar para mim, e estou com esse problema há tanto tempo .....

Aliás, isso resolve um dos meus problemas - mas se alguém souber vencer o Great Firewall e resolver o problema de latência aleatoriamente alta ao usar VPN, isso seria um bônus ........ apenas agradece por não estar trabalhando na China ..... sua internet é má.

Spence
fonte
1

Se você usa o driver AirPortBrcm4331 no El Capitan:

  1. reinicie no modo de recuperação (CMD + r durante a inicialização), abra o terminal e execute csrutil disable
  2. reinicie, abra o terminal e execute
    • 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. reinicie no modo de recuperação (CMD + r durante a inicialização), abra o terminal e execute csrutil enable
primianoC
fonte
0

Eu tive um problema semelhante com o meu roteador wifi, mas quando defino o roteador para 5 ghz e o canal para auto, o problema foi resolvido.

Peter Boocock
fonte
Como foi resolvido ?, o código do país mudou?
Ruskes
No Buscar, o código do país no dispositivo wifi na minha vizinhança não mudou, pelo menos até onde pude perceber, assim que troquei de 2,4 GHZ para 5 GHZ e configurei meu roteador para selecionar automaticamente o canal mais forte possível Na pesquisa, eu encontrei o problema resolvido e, se eu voltasse para 2,4 GHZ, o código do país estrangeiro surgiria novamente e provou ser um problema no cartão wifi interno do meu iMac ao conectar-se à Internet. A Ferramenta de diagnóstico Wi-Fi avisou sobre o problema do código do país. Trocamos de volta para 5GHZ e selecionamos automaticamente o melhor canal pesquisável e o problema foi removido.
Peter Boocock
0

Encontrei uma solução um pouco bizarra. Tentei todas as soluções do Google, nenhuma funcionou, mas vi um artigo que menciona o KisMAC pode ver o canal 13. Instalei e, de repente, meu código de país mudou de EUA para X3 e agora posso conectar no canal 13.

Shaun
fonte
-1

Tudo o que tive que fazer no meu MacBook Pro de meados de 2010 é mudar o nome do kext de AirPortBrcm4360 para AppleAirPortBrcm43224 e finalmente consegui minha localização certa!

miha
fonte