Cambiar el código de país de la tarjeta inalámbrica Mac OS X

16

Tengo problemas para conectarme a un enrutador inalámbrico con Mac OS X que se encuentra en el canal 13. Esto se debe a que hay otro enrutador cercano que transmite el código de país de EE . UU . La única forma de evitar esto que he encontrado hasta ahora es ir cada vez al enrutador y reiniciar la computadora.

Le pregunté a Google y parece ser una mezcla de personas que piensan que está configurando la configuración regional, o que está arreglado en el firmware del enrutador. Ambos he demostrado estar equivocado. man ifconfig tampoco ha sido muy esclarecedor.

¿Alguien sabe de otra manera de obligar a la tarjeta a utilizar un código de país o canales diferentes? Prefiero no cambiar a otro canal, ya que hay mucha interferencia cerca (se muestra con KisMAC).

Gracias


Ediciones

Encontró

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

Lo que parece permitir que se establezca un canal arbitrario en la tarjeta, pero no el código del condado. Esto parece no tener efecto.

Ramita
fuente
Sé que no quieres cambiar el canal, pero después de leer las respuestas aquí, me parece la solución más simple y menos hacky.
wjandrea

Respuestas:

6

802.11d es el protocolo que utilizan los puntos de acceso inalámbrico para transmitir (entre otras cosas) el dominio regulador (es decir, los códigos de país) en el que se supone que está operando. Parece que puede que no haya una regla clara sobre qué hacer cuando varios equipos transmiten información conflictiva de dominio regulatorio.

La solución ideal sería deshabilitar / reemplazar / reconfigurar el equipo que está transmitiendo la información incorrecta.

Encontré un hilo de Discusiones de Apple (más antiguo) que indica que indica que el hardware AirPort de una Mac usará el primer código de país que escuche después de encenderse o despertarse. Las publicaciones posteriores en el hilo (en la segunda página ) indican que es suficiente simplemente apagar / encender el hardware AirPort y no todo el sistema. Un par de personas reportaron éxito usando un script para apagar y encender la interfaz AirPort repetidamente (usando networksetup) hasta que adquirió el estado deseado (según lo informado por system_profiler).


Basado en TA25972 , parece que los equipos más antiguos (presumiblemente modelos que no escuchan la información 802.11d) ni siquiera pueden cambiar los "códigos de país".

Chris Johnsen
fuente
Desafortunadamente, no tengo acceso al enrutador inalámbrico que transmite el código de país incorrecto. Había visto ese hilo de discusión antes, pero la sala en la que estoy está bastante lejos del enrutador correcto y cada reinicio parece encontrar el enrutador de transmisión de EE. UU. Curiosamente, KisMAC dice que puede detectar enrutadores en el canal 13, incluso cuando el código de país está configurado en EE. UU. Entonces puedo investigar eso más tarde.
Twig
1
Revisé esto nuevamente hoy y KisMAC puede encontrar mi enrutador e identificar que está en el canal 13 a pesar de tener el código de país como EE. UU. Y 13 no está en la lista de canales compatibles
Twig
5

¡Tengo este problema y lo resolví!

Todo lo que quería hacer es desactivar la función de baliza 802.11d. Esto es imposible de hacer en cualquier configuración disponible en Mac OS X.

Sin embargo, puede parchear binariamente el controlador de la tarjeta de red pensando que el código del país siempre es X2.

Así que al parecer, lo que tendría que hacer es cambiar / parche binario del controlador de red con la cadena 0x81 0x78 0x30 0x6B 0x10 0x00 0x00 0x0F 0x85a 0x81 0x78 0x30 0x6B 0x10 0x00 0x00 x90 0xE0. Esto obliga al conductor a usar el código de país «X2», sea cual sea la baliza que se envíe, por lo que nunca cambiará.

Puede cambiar esto con una utilidad de edición hexadecimal o copiar y pegar la siguiente línea útil muy útil en la aplicación 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 solución funciona para Mac Book Pro Retina 2013.

Eirik
fuente
2
Para otros MBP, puede encontrar qué controlador necesita parchear con el comando:sudo kextstat | grep AirPort
Stephen Connolly
Tengo un mensaje sobre kext inválido. Archivo revertido y directorio tocado.
k06a
¿Qué sucede si desea que el código de país sea ES?
Fran Marzoa
Tuve que deshabilitar SIP en Macbook Pro de 13 "a fines de 2011 para hacer el cambio. Aun así, no funcionó para mí. :(
GAM
no funciona. Obtengo: No se puede eliminar /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortBrcm4360.kext/Contents/MacOS/AirPortBrcm4360: Operación no permitida, omitiendo el archivo.
user426132
1

La solución más fácil para el código de país en conflicto: su MAC está recogiendo el código de país incorrecto del enrutador de transmisión 'más cercano' ... así que si uno de sus vecinos cercanos tiene un código de país incorrecto, su propio enrutador supone que está en ese 'error' 'país - y estropea su conexión a internet - SOLUCIÓN - obtenga un enrutador viejo que ya no usa - y simplemente conéctelo a la fuente de alimentación y colóquelo cerca de su enrutador en vivo ..... asegúrese de que su enrutador viejo esté configure con el código de país correcto pero NO lo conecte a internet. Luego, su MAC recogerá el código de país de este enrutador 'ficticio' y adoptará el código de país correcto ..... problema resuelto. Esto parece funcionar para mí, y he estado molesto con este problema durante tanto tiempo .....

Por cierto, esto resuelve uno de mis problemas, pero si alguien sabe cómo vencer al Gran Firewall y resolver el problema de la latencia aleatoriamente alta al usar VPN, eso sería una ventaja ... solo agradezco que no esté trabajando en China ..... su internet es malo.

Spence
fuente
1

Si usa el controlador AirPortBrcm4331 en El Capitan:

  1. reiniciar en modo de recuperación (CMD + r durante el arranque), abrir el terminal y ejecutar csrutil disable
  2. reiniciar, abrir terminal y ejecutar
    • 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. reiniciar en modo de recuperación (CMD + r durante el arranque), abrir el terminal y ejecutar csrutil enable
primianoC
fuente
0

Tuve un problema similar con mi enrutador wifi, pero cuando configuré el enrutador a 5 ghz y el canal para auto se resolvió el problema.

Peter Boocock
fuente
¿Cómo lo resolvió ?, ¿cambió el código del país?
Ruskes
No Buscar, el código de país en el dispositivo wifi en mi vecindad no cambió, al menos por lo que pude ver, tan pronto como cambié de 2.4 GHZ a 5 GHZ y configuré mi enrutador para seleccionar automáticamente el canal más fuerte posible encuesta, encontré el problema resuelto y si volví a cambiar a 2,4 GHZ, el código del país extranjero volvió a aparecer y resultó ser un problema para que la tarjeta wifi interna de mi iMac obtuviera una conexión a Internet. La herramienta de diagnóstico de Wi-Fi informó sobre el problema del código de país. Volvió a 5GHZ y seleccionó automáticamente el mejor canal que se puede sondear y se eliminó el problema.
Peter Boocock
0

Encontré una solución un poco extraña. Probé todas las soluciones que ofrece Google, ninguna funcionó, pero vi un artículo que menciona que KisMAC puede ver el canal 13. Lo instalé y, de repente, el código de mi país cambió de EE. UU. A X3 y ahora puedo conectarme al canal 13.

Shaun
fuente
-1

Todo lo que tuve que hacer en mi MacBook Pro de mediados de 2010 fue cambiar el nombre kext de AirPortBrcm4360 a AppleAirPortBrcm43224 y finalmente obtuve mi ubicación correcta.

miha
fuente