Diferencia entre revisiones de «Firmware Modfs para Linksys WAG320N»

De Wiki de BandaAncha.eu
Saltar a: navegación, buscar
m (Un apunte muy muy importante)
m (Enlaces)
Línea 54: Línea 54:
  
 
* [[Linksys WAG320N]]
 
* [[Linksys WAG320N]]
 +
* [http://bandaancha.eu/foro/adsl-adsl2-vdsl/modem-routers/linksys Foro Linksys]
  
 
[[Categoría:Linksys]]
 
[[Categoría:Linksys]]

Revisión del 22:15 29 feb 2012

Linksys WAG320N

El firmware Modfs para el Linksys WAG320N se compone de dos partes:

La primera parte es un fichero de actualización de firmware de Linksys ligeramente modificado que habilita la escritura en /dev, crea un símbolo /dev/loop0 donde busca y monta una imagen ext3 mod_image.bin de la primera partición FAT32 que encuentra. Una vez montada mod_image.bin en /tmp/mod/modfs, ejecuta /tmp/mod/modfs/boot.sh.

La segunda parte es la arriba mencionada mod_image.bin... que puedes ser cualquier cosa que cumpla el criterio mencionado. En este caso es el pack de modificaciones, utilidades y demonios, Modfs. Se puede descargar aquí.

A fecha de hoy, Modfs tiene un paquete adicional adslsettings.mpkg, necesario para configurar y activar el forzado de SNR y/o el Watchdog de la línea adsl. adslsettings se puede descargar aquí.

¿Cómo se instala todo esto?

  • Primero, en una partición FAT32 de un pendrive o disco externo, metemos mod_image.bin.
  • Por otro lado, instalamos desde la página de configuración de Linksys el fichero de actualización modificado.
  • Una vez instalado el firmware nuevo (no vayais a apagar el router mientras se está flasheando ;) ) conectamos el pendrive o disco duro al router.. Reiniciamos el router ...
  • Una vez reiniciado, la interfaz de configuración web de Linksys es p.e. 192.168.1.1 , mientras que la de ModFS sería 192.168.1.1:8081 ...
  • Así que entramos en 192.168.1.1:8081 (usuario y contraseña 'admin'). E instalamos el paquete adslsettings.mpkg anteriormente descargado. A partir de ahora nos aparecerá una pestaña adicional para configurar varios parametros avanzados del ADSL, tales como modulación, SNR, margenes de SNR etc. Cuanto más bajo pongamos el porcentaje de SNR, más se forzará. El adsl retrain es un script que mantiene el SNR en un intervalo definido por un minimo y un máximo que nosotros definimos. Así que si no queremos iniciar el script, pero sólo forzar el SNR a lo bruto, pues sólo le damos a 'save'
  • ModFS también tiene funcionalidad de Telnet,Crond, WiFi Scheduling, Interfaz web por SSL. (https).
  • Las funciones de sshd y Openvpn aún están en fase de prueba.

Código fuente y Personalización del firmware de Linksys WAG320N

Esta sección es para usuarios avanzados de GNU/Linux y OpenWrt que sepan de qué va BusyBox, RCS, Makefile, etc.
Si desconoces esto, primero instrúyete o sencillamente usa firmwares modificados ya cocinados.

Un poco de historia

Desde hace unos años Linksys proporciona el código fuente de los firmwares de sus routers que estén basados en GNU/Linux. En el caso del WAG320N (entre otros) no sólo nos dan el código fuente, sino que nos proporcionan un paquete completo de personalización y compilación del firmware (a utilizar bajo plataforma GNU/Linux x86). Es más, nos descargamos el paquete, lo descomprimos y con un 'make auto' ya tenemos una imagen creada en la carpeta ./image.

Los cambios

Lo que he cambiado del código para que sea utilizable e instrucciones de compilación del código modificado por mí basado en este post.

Bueno... ¿dónde está el truco? :P … Pues el truco está en que el target.tgz (que es el fichero que contiene la partición FS del firmware) es inservible.. y en el momento de flashear el router, este se queda semi-brick (ver más abajo sección de debrick).. Pero.. gracias al proyecto firmware-mod-kit ha sido posible extraer un FS totalmente funcional.. y al comprimirlo y renombrarlo, pues cumple perfectamente nuestras necesidades. Por otro lado... en caso de duda, leedos los Makefile :D .. que están bastante ordenaditos... el Makefile (que es invocado si kernel/vlminux.lz.a y kernel/src/vmlinux están ausentes) del kernel sobreescribe cualquier .config que haya.. Como soy muy vago, pues he modificado un poco el Makefile y en vez de hacer un make oldconfig automático, hará un make menuconfig (ojo, hay que tener instalado ncurses-dev .. como si compilaramos un nucleo de Debian, p.e) .. en el que tendremos como mínimo que activar soporte modular para ext3, jbd, y loop … y podemos integrar soporte para lo que queramos, sólo que si son módulos , habrá que copiarlos a mano en la carpeta /lib/modules/mod, p.e del target.tgz . (los ext3, jbd, mbcache y loop están ya metidos...).. Por otro lado está el fichero /rcS (presente en target.tgz), hay un bucle que convierte /dev en escribible y varias cosas más (eso ya, cada uno lo cambia como quiere :P ).

Por otro lado están las aplicaciones.. que son fácilmente configurables mediante menuconfig :D .. p.e. si nos vamos a tk_apps , podemos configurar muchas funcionalidades.. (yo tengo puestas las básicas).. Eso sí.. para busybox, ningún Makefile nos hace los symlinks nuevos (aunque el binario sí tenga las nuevas funcionalidades) .. y habrá que hacerlos a mano (editando target.tgz) .. (evidentemente target.tgz del código que he enlazado refleja el contenido actual del .config de busybox).. Por otro lado, si leen el /rcS verán que hay líneas añadidas... que son para dar soporte al kit de utilidades ModFS (del que hablaré en otro artículo).

Un apunte muy importante

'make auto' pasa un fichero que es el CFE al constructor de imagen de Linksys. Más les vale no modificar ni el CFE ni el constructor de imagen, ya que se quedarán con un hard-brick( hay que tirar de JTAG .. ver esquemas más abajo).

Debrick del WAG32ON

¡OJO! Usar TFTP con el wag320n causa hard brick. Hay dos tipos de brick: soft brick y hard brick. Ambos métodos de desbrickeo han sido descubierots por Mr. Eko (que también se dedica desbrickear routers por un coste muy bajo).

  • El soft brick ocurre cuando el CFE sigue intacto.. El método es este .Usando una tarjeta de red antigua (NDIS 1.0) y windows XP (hay gente que con Vista le ha funcionado...) , y el programa Sercomm ( 534270510c7be84e5784646e8e5385a0 *Sercomm_Upgrade_207_XP.exe). Para desbrickear, conectamos mediante cable ethernet normal, ponemos el router en modo Recovery (encendemos y mantememos el botón reset (con una aguja, p.e) hasta que el router se ponga a parpadear en rojo) , ejecutamos el programa UpgradeUtil (el sercomm mencionado) , seleccionamos la tarjeta de red (la misma puede aparecer repetida varias veces) , elegimos el fichero de firmware (que sea el original de Linksys) y le damos a OK .. Aparecerá una barra de progreso y tardará sobre media hora.
  • El hard brick ocurre cuando el CFE está dañado.. Aquí hay fotos de la interfaz JTAG y Serial del Router (fotos hechas por Mr. Eko) . Notense las soldaduras hechas donde el puerto serial, para que esté funcione ;) .. Y esquemáticos del serial y jtag (la foto la he hecho yo y con prisas...) .. Tengo cuatro ficheros mtd0, mtd1 , mtd2, mtd3 .. si alguién los necesita que me los pida en el foro... ( de todas formas, parece ser que con una imagen del firmware de Linksys, se puede restaurar perfectamente).

Enlaces