domingo, 2 de julio de 2017

Router ADSL de Yacom a Openwrt

Así es, tenía un viejo router de yacom/orange adsl que ya no utilizaba, y un familiar me pidió que se lo dejara para usarlo con pepephone. El problema es que estos routers traen los parámetros clave capados para que solo pueda usarse con este isp. Así que me he puesto manos a la obra para descaparlo y la cosa no es tan sencilla como a priori pudiera parecer. Se requiere algo de tiempo, compilar algún programa, herramientas baratas pero inusuales y ejecutar algunas instrucciones. 

El router es el modelo arv7518pw-a-lf-lt de Arcadyan.


Me decidí a publicar este post porque, aunque el procedimiento está extensamente comentado y muy bien por Internet, la información clave está en distintas páginas y falta una especie de manual paso-a-paso para que cualquiera pueda hacerlo. La idea es flashearle un firmware de código abierto como el Openwrt.

1- Herramientas

Necesitaremos comunicarnos con el router a través del puerto serie que trae en placa. El que tengo trae una configuración de 4 pines clásica: Vcc, Tx, Rx y Gnd. 



Para ello precisamos de un conector de puerto serie a usb, puesto que la mayoría de ordenadores actuales ya no trae conector serie. Yo he usado un cable prolific original (Plugable USB to RS-232 DB9 Serial Adapter, en Amazon por 10-15€) y un ttl-usb (JY-R2T V1.2 RS232 Serial Port Converter, en Amazon por unos 9-10 €). Tenemos que abrir el router y conectar correctamente.




2- Software

Aquí sigo primero las indicaciones de http://archive.is/tMKgM


Aunque no es del todo necesario, por seguridad podemos hacer un backup del firmware que trae. Necesitamos usar un programa llamado brndumper que hay que compilar. En la página https://github.com/olivluca/brndumper vienen las instrucciones:


- el compilador es lazarus 0.9.30, lo descargamos e instalamos
- nos bajamos y compilamos ararat synapse and synaser.
- por último, descargamos los 4 archivos de la página de github indicada:  brndumper.lpibrndumper.lprunit1.lfm y unit1.pas, y lo compilamos.

Es realmente muy sencillo, abrir el lpi y compilar. Obtenemos así  brndumper.exe. Para utilizarlo hay que abrir la conexión serie. Con hyperterminal de windows se puede hacer todo. Si no lo tienes descárgalo aquí. La conexión ha de ser 115200 8N1. 

Encendemos el router, conectado al ordenador por el puerto serie lo que es a través de algún COM, y con el hyperterminal corriendo presionamos 3 veces la barra espaciadora. Con eso entramos al menú de configuración. Ejecutamos entonces "!" para entrar al menú extendido de administrador y cerramos el hyperterminal (o Putty, da igual, pero para enviar archivos es mejor el otro)



Lanzamos brndumper especificando el puerto que se ha asignado a la conexión serie del router: 

brndumper.exe --port=\.\com?

e indicamos como inicio y fin 0xb0000000 y 0xb0800000, es decir, 8MB, que es toda la memoria del router. Le damos a dump, damos un nombre de archivo y a esperar. Si falla, en configuración de dispositivos reducir los búfferes FIFO.


3- cambiar el firmware

Primero cambiamos el uboot. Usamos hyperterminal y este archivo. Entramos en el menú administrador del router, y presionamos u ([u] Upload to Flash), luego seleccionamos área 0 ([0] Boot 0xB0000000 128K) y aceptamos  Y (ha de ser mayúscula). Enviamos entonces al archivo del uboot usando xmodem por seguridad.




Luego el firmware propiamente dicho. Yo he usado este ya compilado: 


siguiendo las indicaciones de http://2tazasdelinux.blogspot.com.es/2015/09/openwrt-repetidor-de-redes-wifi-con-los.html.

Volvemos al menú administrador serial del router y ejecutamos 

loady 0x80500000

para enviar el archivo del firmware, xmodem otra vez con hyperterminal.

Al terminar, ejecutar 

1- era ${kernel_addr} +${filesize}
2- cp.b ${ram_addr} ${kernel_addr} ${filesize}

Con esto ya estaría, reiniciamos el router o ejecutamos run flash_flash.

En este momento ya no es necesario seguir conectado por el puerto serie y podemos configurar el router via web, conectándolo a la red obviamente. La dirección por defecto es 192.168.1.1 y las credenciales de acceso por defecto root/root. 

Si los archivos indicados dejan de estar en los links originales, aquí los tenéis:

4- uboot




1 comentario: