Desafortunadamente, creo que solo Apple puede solucionar esto, con suerte con una actualización de Yosemite (que, según se informa, ya se está probando, pero se desconoce la fecha de lanzamiento).
Hasta entonces, todo lo que puedo ofrecer es una solución.
Encuentra tu "puerto" de WiFi
Primero necesitas encontrar tu puerto Wi-Fi. En un MacBook Air esto es probablemente en0.
En una Mac con Ethernet y Wi-Fi incorporados, el Wi-Fi es probablemente en1
.
Si no está seguro, puede usar esto:
WIFI='/usr/sbin/networksetup -listnetworkserviceorder |\
egrep Device |\
fgrep Wi-Fi |\
sed 's#.*(Hardware Port: Wi-Fi, Device: ##g ; s#)##g''
y luego hazlo
echo "$WIFI"
para ver qué es.
Usa el comando airport
Desde Snow Leopard (al menos) ha habido una herramienta airport
en:
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
Llamemos a $AIRPORT
para abreviar:
AIRPORT='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport'
Entonces, si lo juntamos, este debería ser el comando apropiado para decirle a tu Mac que se una a la señal de Wi-Fi más fuerte disponible:
${AIRPORT} ${WIFI} prefs JoinMode=Strongest JoinModeFallback=KeepLooking
que es solo otra forma de escribir esto:
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 prefs JoinMode=Strongest JoinModeFallback=KeepLooking
Utilice launchd
Puede ejecutar automáticamente el comando airport
periódicamente con launchd
.
He reunido los archivos necesarios en enlace pero la idea es esta:
-
Use launchd
plist en /Library/LaunchDaemons/
(que debe ser propiedad de root: wheel)
-
Haga que launchd
plist vea /Library/Preferences/SystemConfiguration/
para cambios
-
Ejecute el comando anterior siempre que se produzcan cambios.
No estoy experimentando este problema en Yosemite, por lo que no puedo garantizar que esto lo solucione, pero es lo que haría para solucionarlo si me siguiera sucediendo.
Consulte la página GitHub para obtener instrucciones más detalladas, incluida la eliminación.