Compilando cruzadamente para Router Modem ADSL dual bhs amper ASL-26555_CL

Jun 24, 2012 10 Comments by

El modem router adsl dual bhs amper asl-26555_cl, es un módem basado en GNU/Linux, bajo la plataforma Ralink Soc, procesador MIPS (específicamente mipsel) y al menos 32 mb de ram. Es un buen candidato para algo más que “solo un módem”.

Por defecto tiene acceso telnet a través del puerto 23 con el usuario Administrador y clave Te1ef6n1c4$$, una vez dentro podemos ver que utiliza un sistema base con busybox v1.0 y al menos disponemos de una serie de comandos básicos.

ASL-26555 # cat /proc/cpuinfo
#system type             : Ralink SoC
#processor               : 0
#cpu model               : MIPS 24K V4.12
#BogoMIPS                : 255.48
#wait instruction        : yes
#microsecond timers      : yes
#tlb_entries             : 32
#extra interrupt vector  : yes
#hardware watchpoint     : yes
#ASEs implemented        : mips16 dsp
#VCED exceptions         : not available
#VCEI exceptions         : not available

Preparación de un entorno de desarrollo con Buildroot

Siguiendo las instrucciones para generar un entorno de desarrollo con buildroot para MIPS, solo hay que modificar la arquitectura, a MIPS little endian (mipsel).

Una vez con el entorno de desarrollo, podemos compilar cruzadamente desde x86 a mipsel, a través del binario mipsel-linux-gcc, en el ejemplo, compilamos un hello world para mipsel.

#include <stdio.h>
main()
{
    int i;
    for(i=0;i<100;i++)
        printf("Hi Router MIPSEL!!\n");
}
mipsel-linux-gcc /tmp/helloworld.c -static -s -o /tmp/helloworld-mipsel

Como solo hay acceso telnet al equipo, no es posible traspasar el archivo por SCP, tampoco dispone de wget, a si que procedemos a copiar el ejecutable helloworld-mipsel en un pendrive.

Una vez montado el dispositivo en el router, podemos ejecutar el binario y ver el resultado

./var/tmp/storage_dev/usb1_2/helloworld-mipsel
#Hi Router MIPSEL!!

Enjaulando un busybox más actualizado

Al generar el entorno de desarrollo con buildroot, se compila una versión reciente de busybox para la arquitectura, en este caso (mipsel), en el directorio output/target, procedemos a copiar esa base de archivos a alguna partición ext2/ext3 del pendrive (para preservar los permisos)

cp /opt/mips/buildroot-2012.05/output/target /media/pendrive -r -d 

Insertamos el pendrive en el modem router y podemos observar que ha montado automáticamente la/s particion/es.

ASL-26555 # df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 5.3M      5.3M         0 100% /
/dev/sda1                11.2G      2.9G      8.3G  26% /var/tmp/storage_dev/usb1_1
/dev/sda2                 3.7G      1.2G      2.3G  35% /var/tmp/storage_dev/usb1_2

En mi caso, ha montado la partición ext2 en la ruta /var/tmp/storage_dev/usb1_2 y tengo el file system de busybox (carpeta target del entorno de desarollo) en la ruta /var/tmp/storage_dev/usb1_2/mips/mipsel/target/, vamos a enjaular (chroot) el busybox más nuevo.

# Hay que adaptar las rutas
mount -o bind /proc /var/tmp/storage_dev/usb1_2/mips/mipsel/target/proc
mount -o bind /dev /var/tmp/storage_dev/usb1_2/mips/mipsel/target/dev
/var/tmp/storage_dev/usb1_2/mips/mipsel/target/usr/sbin/chroot /var/tmp/storage_dev/usb1_2/mips/mipsel/target/

Una vez enjaulado el busybox más actual, podemos observar que tenemos acceso a más comandos y aplicaciones como vim, alias, top, wget, ssh e incluso el servidor ssh dropbear (siempre y cuando los hayamos seleccionados al momento de configurar el entorno con buildroot).

Ahora podemos jugar un poco con este módem (como tratar de enjaular un Debian para MIPS)

Sistemas Embebidos

About the author

Ingeniero en Informática, Oracle Certified Master Java EE 6 Enterprise Architect, Oracle Certified Professional Java Programmer. Experto en distintas ramas de la computación y otras "yerbas" xD. Si te gusto este post, sígueme en @deerme_org, escríbeme a info AT deerme.org o contactame por linkedin.

10 Responses to “Compilando cruzadamente para Router Modem ADSL dual bhs amper ASL-26555_CL”

  1. Roberto says:

    Hola, necesito ayuda, mi router ADSL dual bhs amper ASL-26555_CL dice que requiere actualización del firmware, el cual no encuentro ¿tú sabes dónde lo puedo descargar?

  2. deerme.org says:

    Roberto, efectivamente no hay disponible un firmware público, ya que el producto no está disponible a venta directa, si no, solo el proveedor lo entrega a sus clientes (ISP’s).

    Además el panel no permite descargar el firmware (solo subir), de todas forma voy a ver el script a haber si hay una forma facil de extraer el firmware.

    En caso contrario, es mejor que cambies el router modem (llama diciendo que se hecho a perder xD).

  3. Roberto says:

    Hola, encontré un firmware pero es de españa, y no es compatible, puesto que soy de chile, existen 2 versiones de este router, el de españa tiene el doble de memoria, por lo que el firmware que descargué no sirve al router, no es compatible, solo me queda probar openwrt, ya que no he podido encontrar un firmware para chile, si pudieras encontrarlo te lo agradecería.Gracias

  4. Andres says:

    Hola ¿cuánto dura la compilación? ¿la configuración de arquitectura buildroot es la misma que la del post de el tplink o es otra? yo uso la misma y se demora mucho en compilar, además cuando compilo comienza a descargar otros paquetes y los compila, yo solo necesito unos pocos ¿dónde puedo selecciónar los paquetes a compilar? ya que el proceso se demora mucho y solo la carpeta me ha llegado a usar 2,5gb ¿es correcto ese tamaño? uso Ubuntu 12.10..

  5. deerme.org says:

    Hola Andres, efectivamente es un proceso que demora, ya que descarga el fuente de todo lo selecionado y luego comienza a compilar cruzadamente para la plataforma MIPSEL. En un equipo normal, tomo cerca de 2 horas todo el proceso.

    Con

    make menuconfig

    puedes selecionar los paquetes a instalar.

    Saludos

  6. Andres says:

    ¿Qué configuración colocaste en menuconfig? ¿es la misma del tp-link o modificaste algo?

  7. deerme.org says:

    Andres, puedes dejar los paquetes selecionados por defecto o comenzar a limpiar la lista, todo depende de las necesidades que necesitas. Saludos

  8. Erwin says:

    Estimado hace un tiempo estoy investigando sobre esta maravilla pero aun no obtengo todos los resultados que quiero, le comento que estoy cargando open wrt a través de cable serial soldado al puerto interno del modem logre cargar por uboot una versión del firmware con éxito y la ultima versión original también con exito pero aun necesito algo superior si me colabora le estaria muy agradecido quizas podría conseguir cargar o experimentar en un firmware ddwrt mas avanzado que me permita configurar vpn proxys y demases que es lo que actualmente busco quedo a su disposición para enviarle la información del cable serial y firmware open wrt saludos cordiales …

  9. Alex says:

    Que tal. Pregunta noobie: ¿Mediante la GUI, es posible configurar este modem como repetidor de señal wifi (Internet) de otro router también wifi conectado a internet? (Range-extender)

    Gracias, Saludos.

  10. djtrance says:

    Alex, no se puede, por defecto, pero puedes levantar interfaces virtuales de red, es bastante laborioso. pero busca como levantar interfaces virtuales de red y vas a entender la idea.

Leave a Reply to Roberto

Cancel Reply


+ 6 = fifteen