Con la experiencia que tengo cambiando firmware en equipos ubiquiti me decido a hacer esta guía para que sirva de referencia (si sirve) he irla mejorando con el tiempo con los aportes de todos ustedes. Aclarar que salvo se especifique lo contrario todos los procedimientos han sido probados por mí y han funcionado tal y cual los expongo, lo primero es descargar el software necesario para llevar a cabo cualquier tarea:
Todo está para descarga aquí: ftp://10.30.1.4/Biblioteca/Software/Aps/Firmwares/\
Aquí ftp://10.30.1.4/Biblioteca/Software/Aps/imagenes/ pueden encontrar imágenes de las interfaces de los programas donde se explica mejor el procedimiento de cada uno ya que KZKG^Gaara no deja hacer una guía con imágenes como dios manda.
[h]Compliance Test (CT) internacionales y locales, mitos y realidades.[/h]
Es una realidad que a partir de la versión 5.6.x ubiquiti eliminó la posibilidad de usar CT en sus equipos independientemente de que sean o no interncionales. Un equipo internacional tiene una lista de más de 3 países, el que no lo es solamente tiene una lista de 3, ésta lista puede variar según el equipo pero cuando veas un equipo con sólo 3 países debes darte cuenta de que estás ante un equipo no internacional, por lo tanto el procedimiento para activar el CT es diferente a los internacionales y un poco más complejo.
Oficialmente existen las versiones de firmware licensed, donde se cambia la forma de indentificar en la lista el CT, ahora el elemento se llama licensed haciendo referencia a CT, en el resto de firmware seguirá apareciendo Compliance Test como siempre. Aclarar que en todos estos procedimientos se pueden usar lo mismo versiones licensed o Custom Scripts (cs) ya que es lo mismo, ambas permiten el uso de script personalizados.
Es un mito que no se le pueda activar CT a un equipo moderno, cualquiera que sea su firmware puede ser modificado para aceptar CT siguiendo uno de los procedimientos explicados más abajo, siempre es bueno tener actualizados nuestros equipos a la versión más reciente, ya que en ellas se corrigen errores y problemas de seguridad además de incluir mejoras nada despreciables.
Ahora que sabemos diferenciar si es un firmware internacional o no vamos a lo importante activar CT.
[h]Firmwares internacionales[/h]
Versiones 5.5.x Ya viene en la lista basta con seleccionarlo y listo
Versiones 5.6.x y superiores: Tres sencillos comandos con el winscp (explico el procedimiento con este programa ya que me parece mucho más sencillo de usar)
Además si ya tenía seleccionado un país y no aparece el CT seleccionado por defecto una vez se reinicie el equipo, para no tener que reinicializar el equipo por defecto y tener que realizar de nuevo los pasos use este comando
(gracias a Sykario por el aporte)
El equipo se reinicirá automáticamente y ya tendrá seleccionado por defecto el CT.
[h]Firmwares no internacionales.[/h]
Versiones 5.5.x: Deben usar este script usando winscp (explico el procedimiento con este programa ya que me parece mucho más sencillo de usar):
Abrir la consola y copiar cada línea y ejecutarla usando el botón "ejecutar"
Abren el archivo poststart y copian y pegan el sscript:
Una vez reiniciado el equipo ya deben tener activado el CT.
Versiones 5.6.x Usar un firmware cs y el script anterior.
Version 6.0.4: Usar una versión de firmware que permita cs. Si ya tiene un firmware 6.0.4 pero no es cs y no le deja subir el que tiene cs debe hacerlo por el procedimiento de tftp que se explica más abajo. Cualquier versión por debajo debe dejarles actualizar directamente a ésta. Versiones superiores deben usar el método tftp explicado más adelante.
Una vez con la versión de firmware cs usar winscp (explico el procedimiento con este programa ya que me parece mucho más sencillo de usar) para subir el siguiente script:
Abrir la consola y escribir cada línea de comando por separado en el mismo orden y ejecutarla con el boton "ejecutar"
Abrir el archivo poststart y copiar y pegar dentro:
Guardar con el botón guardar y cerrar el archivo, luego abrir una consola y escribir una línea a la vez y usando el botón ejecutar:
Listo, una vez reiniciado el equipo ya debería tener activo el CT
Para las versiones 6.0.7 o superiores debería funcionar el mismo procedimiento (siempre con una versión de firmware que soporte cs) pero con este script:
Procedimiento tftp para bajar la versión del firmware.
Este procedimiento es delicado, debe hacerse siempre con el equipo en la mano, no recomiendo hacerlo de otro modo, poe en una mano, equipo en la otra y con la mano libre relizar este procedimiento:
Si falla el procedimiento es porque subió el firmware incorrecto o porque no ha seguido correctamente los pasos, inténtelo nuevamente desde el paso 1 siempre probando antes que pueda acceder a la interfaz web del equipo. Recomiendo además que no se le asigne más de una ip a su tarjeta de red, o sea, elimine toda la configuración y agregue solamente la ip que necesita para comunicarse con su ap.
Recomiendo además cambiar el nombre del firmware una vez que ya esté seguro de que es el adecuado para su equipo y que lo copie enla raíz de uno de sus discos, espacios en la ruta pueden hacer que falle el proceso.
[h]Resumen[/h]
Existen infinidad de variantes de scripts para para agregar CT a los equipos, las que pongo aquí están probadas para cada una de las versiones de firmware y además permiten al equipo funcionar en modo Router y Bridge sin problemas, otras versiones de firmware no listadas en el tutorial no han sido probadas por mí, si las han probado y han funcionado por favor deje su comentario y será enriquecida la guía.
Faltan las versiones XC, si quieren aportar lo agregamos tambien a la guía y a la zona de descargas.
Saludos
- WinScp: Programa gráfico para los explorar archivos del firmware a través de protocolos SCP, la mayoría usa Putty, yo uso este que es mucho más fácil copiar y pegar un script en una interfaz gráfica que tener que hacerlo en una línea de comandos. Vale recalcar que puedes explorar con este programa todo el contenido del firmware del ap como si estuvieras en una carpeta en tu disco duro.
- Putty: Para aquellos viciosos de la línea de comandos, y que no se sientan excluídos, hace el mismo trabajo que el anteriror pero un poco más difícil.
- Tftpd: Aplicación para flashear cualquier firmware en equipos ubiquiti lo mismo para subir que para bajar la versión de los mismos.
- Firmwares con CS: Firmwares que permiten el uso de Custom Script en los equipos.
Todo está para descarga aquí: ftp://10.30.1.4/Biblioteca/Software/Aps/Firmwares/\
Aquí ftp://10.30.1.4/Biblioteca/Software/Aps/imagenes/ pueden encontrar imágenes de las interfaces de los programas donde se explica mejor el procedimiento de cada uno ya que KZKG^Gaara no deja hacer una guía con imágenes como dios manda.
[h]Compliance Test (CT) internacionales y locales, mitos y realidades.[/h]
Es una realidad que a partir de la versión 5.6.x ubiquiti eliminó la posibilidad de usar CT en sus equipos independientemente de que sean o no interncionales. Un equipo internacional tiene una lista de más de 3 países, el que no lo es solamente tiene una lista de 3, ésta lista puede variar según el equipo pero cuando veas un equipo con sólo 3 países debes darte cuenta de que estás ante un equipo no internacional, por lo tanto el procedimiento para activar el CT es diferente a los internacionales y un poco más complejo.
Oficialmente existen las versiones de firmware licensed, donde se cambia la forma de indentificar en la lista el CT, ahora el elemento se llama licensed haciendo referencia a CT, en el resto de firmware seguirá apareciendo Compliance Test como siempre. Aclarar que en todos estos procedimientos se pueden usar lo mismo versiones licensed o Custom Scripts (cs) ya que es lo mismo, ambas permiten el uso de script personalizados.
Es un mito que no se le pueda activar CT a un equipo moderno, cualquiera que sea su firmware puede ser modificado para aceptar CT siguiendo uno de los procedimientos explicados más abajo, siempre es bueno tener actualizados nuestros equipos a la versión más reciente, ya que en ellas se corrigen errores y problemas de seguridad además de incluir mejoras nada despreciables.
Ahora que sabemos diferenciar si es un firmware internacional o no vamos a lo importante activar CT.
[h]Firmwares internacionales[/h]
Versiones 5.5.x Ya viene en la lista basta con seleccionarlo y listo
Versiones 5.6.x y superiores: Tres sencillos comandos con el winscp (explico el procedimiento con este programa ya que me parece mucho más sencillo de usar)
Código:
touch /etc/persistent/ct
save
reboot
Código:
sed -i 's/countrycode=.*/countrycode=5000/g' /tmp/system.cfg && save && reboot
El equipo se reinicirá automáticamente y ya tendrá seleccionado por defecto el CT.
[h]Firmwares no internacionales.[/h]
Versiones 5.5.x: Deben usar este script usando winscp (explico el procedimiento con este programa ya que me parece mucho más sencillo de usar):
Abrir la consola y copiar cada línea y ejecutarla usando el botón "ejecutar"
Código:
cd /etc/persistent
touch rc.poststart
chmod +x rc.poststart
Código:
#!/bin/sh
insmod ubnt_spectral
iwpriv wifi0 setCountry UB
ifconfig wifi0 down
ifconfig ath0 down
sleep 5
rmmod ubnt_spectral
ap_freq=$(cat /tmp/system.cfg | grep wireless.1.scan_list.channels | cut -d = -f 2)M
iwconfig ath0 freq $ap_freq
ifconfig wifi0 up
ifconfig ath0 up
ap_gw=$(cat /tmp/system.cfg | grep route.1.gateway | cut -d = -f 2)
route add default gw $ap_gw ath0
echo "countrycode=511" > /var/etc/atheros.conf
sed -i 's/840/511/g' /tmp/system.cfg
sed -i 's/124/511/g' /tmp/system.cfg
echo "<option value="511">Compliance Test</option>" >> /var/etc/ccodes.inc
Guardan y cierran el archivo y en una consola escriben:
cfgmtd -w -p /etc
save
reboot
Versiones 5.6.x Usar un firmware cs y el script anterior.
Version 6.0.4: Usar una versión de firmware que permita cs. Si ya tiene un firmware 6.0.4 pero no es cs y no le deja subir el que tiene cs debe hacerlo por el procedimiento de tftp que se explica más abajo. Cualquier versión por debajo debe dejarles actualizar directamente a ésta. Versiones superiores deben usar el método tftp explicado más adelante.
Una vez con la versión de firmware cs usar winscp (explico el procedimiento con este programa ya que me parece mucho más sencillo de usar) para subir el siguiente script:
Abrir la consola y escribir cada línea de comando por separado en el mismo orden y ejecutarla con el boton "ejecutar"
Código:
cd /etc/persistent
touch rc.poststart
chmod +x rc.poststart
Código:
#!/bin/sh
insmod ubnt_spectral
iwpriv wifi0 setCountry UB
ifconfig wifi0 down
ifconfig ath0 down
sleep 5
rmmod ubnt_spectral
ap_freq=$(cat /tmp/system.cfg | grep wireless.1.scan_list.channels | cut -d = -f 2)M
iwconfig ath0 freq $ap_freq
ifconfig wifi0 up
ifconfig ath0 up
ap_gw=$(cat /tmp/system.cfg | grep route.1.gateway | cut -d = -f 2)
route add default gw $ap_gw ath0
echo "countrycode=511" > /var/etc/atheros.conf
sed -i 's/840/511/g' /tmp/system.cfg
sed -i 's/124/511/g' /tmp/system.cfg
echo "<option value="511">Compliance Test</option>" >> /var/etc/ccodes.inc
Guardar con el botón guardar y cerrar el archivo, luego abrir una consola y escribir una línea a la vez y usando el botón ejecutar:
Código:
cfgmtd -w -p /etc
save
reboot
Para las versiones 6.0.7 o superiores debería funcionar el mismo procedimiento (siempre con una versión de firmware que soporte cs) pero con este script:
Código:
#!/bin/sh
insmod ubnt_spectral
iwpriv wifi0 setCountry UB
ifconfig ath0 down
ifconfig wifi0 down
sleep 5
rmmod ubnt_spectral
ap_freq=$(cat /tmp/system.cfg | grep radio.1.freq | cut -d = -f 2) M
iwconfig ath0 freq $ap_freq
ifconfig ath0 up
ifconfig wifi0 up
echo "countrycode=511" > /var/etc/atheros.conf
sed -i 's/840/511/g' /tmp/system.cfg
echo "<option value="511">Compliance Test</option>" >> /var/etc/ccodes.inc
mkdir /etc/persistent/www
ln -s /usr/www/* /etc/persistent/www/
rm /etc/persistent/www/index.cgi
head -n 415 /usr/www/index.cgi >> /etc/persistent/www/index.cgi
echo "<div class=\"row\">" >> /etc/persistent/www/index.cgi
echo "<span class=\"label\"><? echo \"Modded By:\"; ></span>" >> /etc/persistent/www/index.cgi
echo "<span class=\"value\" style=\"color: red\"><? echo \"Social_Community\"; ></span>" >> /etc/persistent/www/index.cgi
echo "</div>" >> /etc/persistent/www/index.cgi
tail -n +416 /usr/www/index.cgi >> /etc/persistent/www/index.cgi
sed -i 's/\/usr\/www/\/etc\/persistent\/www/g' /var/etc/lighttpd.conf
/usr/etc/init.d/plugin stop httpd
/usr/etc/init.d/plugin start httpd
Procedimiento tftp para bajar la versión del firmware.
Este procedimiento es delicado, debe hacerse siempre con el equipo en la mano, no recomiendo hacerlo de otro modo, poe en una mano, equipo en la otra y con la mano libre relizar este procedimiento:
- Resetear el equipo de fábrica usando el botón de reset físico del equipo o del poe.
- Especificar en su adaptador de red una ip en el rango del ap por ejemplo 192.168.1.10
- Una vez reiniciado, Desconectar el equipo del poe.
- Presionar el botón de reset del equipo (no el del poe) y conectar el cable del ap al poe sin soltar el botón.
- Esperar a que las luces que normalmente marcan la intensidad de la señal se alternen de dos en dos y luego soltar el botón de reset. Este procedimiento hace que el equipo entre en modo tftp, para comprobarlo haga ping a la dirección del equipo y debe responder.
- Abrir el programa tftpd64.exe e ir a la pestaña Tftp Client.
- Escribir la dirección del equipo en el cuadro Host
- Seleccionar el firmware que subirá al ap usando el botón ... que aparece en Local File. Recuerde seleccionar la versión correcta para su equipo o lo dejará inservible.
- En Server interfaces seleccionar el adaptador de red por dónde está conectado el ap, debe tener la ip que se comunica directamente con el ap y el nombre del adaptador, no la 127.0.0.1, si realizó todos los pasos debe estar en el rango 192.168.1.x
- Hacer clic en el botón Put y cruzar los dedos. El proceso debe demorar algunos minutos, no mas de 10, y verás como las luces del ap parpadean de formas diferentes y el equipo debe reiniciarse un par de veces, si no estás seguro de cuándo termina el proceso de flash espere 10min y luego apague y encienda el equipo. Si el equipo se queda sin corriente y el proceso no ha termino puede quedarse el equipo inservible, aunque creo que ya hay procedimientos para recuperarlos de ese estado.
Si falla el procedimiento es porque subió el firmware incorrecto o porque no ha seguido correctamente los pasos, inténtelo nuevamente desde el paso 1 siempre probando antes que pueda acceder a la interfaz web del equipo. Recomiendo además que no se le asigne más de una ip a su tarjeta de red, o sea, elimine toda la configuración y agregue solamente la ip que necesita para comunicarse con su ap.
Recomiendo además cambiar el nombre del firmware una vez que ya esté seguro de que es el adecuado para su equipo y que lo copie enla raíz de uno de sus discos, espacios en la ruta pueden hacer que falle el proceso.
[h]Resumen[/h]
Existen infinidad de variantes de scripts para para agregar CT a los equipos, las que pongo aquí están probadas para cada una de las versiones de firmware y además permiten al equipo funcionar en modo Router y Bridge sin problemas, otras versiones de firmware no listadas en el tutorial no han sido probadas por mí, si las han probado y han funcionado por favor deje su comentario y será enriquecida la guía.
Faltan las versiones XC, si quieren aportar lo agregamos tambien a la guía y a la zona de descargas.
Saludos