Un poco de historia.
Llevaba tiempo con la idea de 'meterle mano' a este router, pero todas las búsquedas que había hecho sobre la posibilidad de firmwares alternativos habían sido en vano (buscad en google a ver si encontráis
algo). Ni siquiera aparece en la lista de hardware soportado de OpenWrt
http://oldwiki.openwrt.org/TableOfHardware.html .
Sin embargo, el otro día, 'se me encendió la lucecita'. Empezé a buscar qué tipo de hardware (memoria, procesador, etc.) lleva este 'cacharro' (en la página de 3Com no hay nada al respecto). Una de las
referencias, me llevó hasta
LugroMesh (Grupo de Usuarios de Software Libre de la ciudad de Rosario, LUGRo, Argentina)
http://www.lugro-
mesh.org.ar/wiki/Hardware_Utilizado y me topé con esto:
3CRWER200-75
* Procesador: Atheros AR2315 SOC, MIPS 4KC, 180MHz
* Memoria: 16MB SDRAM, 4MB Flash
* Interfaz de red: 4 LAN + 1 WAN autosensing 10BASE-T/100BASE-TX port. Ethernet
* Antena: 2 antenas, no removibles de 2 dBi
* Potencia TX: ? ~ 18 dBm (63mW)
* Sensibilidad: ?
* PoE: No
* Temperatura: -10°C to 45°C
* Peso: 0,592 kg
Leches, esto tiene buena pinta. Continúo mirando y justo debajo encuentro:
MR3201A (Fonera 2200)
* Procesador: Atheros AR2315 SOC, MIPS 4KC, 180MHz
* Memoria: 16MB SDRAM, 4MB Flash
* Interfaz de red: 1 LAN autosensing 10BASE-T/100BASE-TX port. Ethernet
* Antena: 1 antena removible de 2 dBi
* Potencia TX: ? ~ 18 dBm (63mW)
* Sensibilidad: ?
* PoE: No
* Temperatura: 0°C to 40°C
* Peso: 0.? kg
Sigo leyendo y averiguo que están usando
Nightwing http://nightwing.lugro-mesh.org.ar/: un firmware basado en OpenWrt. ¡ Esto se pone cada vez mejor !
Um ... Pienso (luego existo, jajaja): hardware muy similar (a la fonera), procesador y memoria idénticas ... ¿ Y si me arriesgo (total el router estaba dentro de un armario sin uso ninguno) e intento meterle
gargoyle (firmware también basado en openwrt) ?
Dicho y hecho. Bajo la última versión de fonflash (aquí tenéis más info de este programa:
https://foro.seguridadwireless.net/software/nuevo-fon-flash-recover-tool/) y los ficheros de la última versión estable (la versión 'test' va más avanzada, pero prefiero no arriesgarme) de gargoyle para
atheros (
http://www.gargoyle-router.com/download.php).
Sigo el procedimiento habitual, y todo concluye (aparentemente) de forma correcta. Apago y enciendo el router para que se rebote y ... no funciona. Configuro la tarjeta de red con ip fija, intento conectar
por web, ... ssh, nada ... ¡¡¡ mi router ha muerto !!! Descanse en paz. Tengo un bonito ladrillo encima de la mesa

Pero en estas, que me pongo a ver el foro de LugroMesh, me registro y cuento mi problema.
Tras un par de días de 'lucha' y con la ayuda de
JulioCP, al final, lo que parecía ya imposible se convierte en realidad: Gargoyle funciona estupendamente en mi 3Com 3CRWER200-75 (es que no estaba
'muerto' sólo se lo lo hacia, jaja)

Ale ahora, después de soltaros el rollo patatero (lo siento, pero me apetecía contar la 'historia'), nos ponemos al tajo.
Parto desde el momento en que mi router se había quedado 'muerto'.
Presupongo que el proceso será el mismo teniendo el firmware 'oficial instalado'. Si alguien lo hace y nos lo cuenta, salimos de dudas.
Pero ojo, que el proceso es arriesgado y yo no puedo hacerme responsable.
Necesitamos:- Los dos ficheros de la 'rama estable' de gargoyle para atheros.
YO RECOMIENDO la versión 1.0.12 (las posteriores me parecen menos estables): gargoyle_1.0.12-atheros-root.squashfs
http://www.gargoyle-router.com/downloads/images/atheros-2.6/gargoyle_1.0.12-atheros-root.squashfs y gargoyle_1.0.12-atheros-vmlinux.lzma
http://www.gargoyle-router.com/downloads/images/atheros-2.6/gargoyle_1.0.12-atheros-vmlinux.lzma- Tftpd32
http://tftpd32.jounin.net/- Putty
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html- Calculadora de windows
El proceso se llevará a cabo desde windows, pero se puede hacer de forma casi idéntica desde linux.
Lo primero, desactivar todas las tarjetas de red (wifi incluídas) menos la que vayamos a conectar al 3Com. Conectamos el cable de red (en la hayamos dejado activa) al router y configuramos la red con IP fija
de la siguiente forma:
Dirección IP : 192.168.1.111
Máscara de Subred: 255.255.255.0
Puerta de Enlace Predeterminada: 192.168.1.1

Lanzamos Putty y lo configuramos para que se conecte a la IP 192.168.1.1, marcamos el protocolo telnet y ponemos 9000 en el puerto.
Pero aún no le déis a conectar (Open). Dejadlo así por ahora.

¡¡¡ Llega el momento de la verdad !!!
Conectad el router a la alimentación (aseguraros que el cable de red esté en uno de los puerto LAN).
Tras unos segundos (4 o 5), veréis que el icono de red de windows, indica que hay conexión, es el momento de darle a conectar (Open) a Putty.
Si habéis sido rápidos, obtendréis como respuesta, algo así:
== Executing boot script in 3.130 seconds - enter ^C to abort
^C
RedBoot>Ya estamos dentro del RedBoot (arranque) del router y vamos a empezar a flashear el firmware (en 2 partes).
Pero antes, nos aseguramos de la secuencia de arranque y configuración del RedBoot es correcta.
A partir de aquí, podéis usar 'copiar y pegar' para más seguridad.
Escribimos:
fconfig -l
Y la respuesta:
RedBoot> fconfig -l
Run script at boot: true
Boot script:
.. fis load -l vmlinux.bin.l7
.. exec
Boot script timeout (1000ms resolution): 5
Use BOOTP for network configuration: false
Gateway IP address: 0.0.0.0
Local IP address: 192.168.1.1
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.1.101
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
RedBoot>Si encontráis alguna diferencia,
olvidaros de continuar con la actualización del firmware, y postead en este hilo con el resultado.
Si es idéntica, podéis seguir adelante.
Ponemos en marcha Tftpd32 (asegurándonos que los ficheros de gargoyle están en el mismo directorio del programa) y comprobamos que la dirección del servidor (server interface) es la 192.168.1.111.

Volvemos a putty y escribimos:
fis init
Nos preguntará:
RedBoot>About to initialize [format] FLASH image system - continue (y/n)Contestamos:
y
Después de un minuto (más o menos) obtendremos algo así:
RedBoot>
*** Initialize FLASH Image System
... Erase from 0xbfc30000-0xbffe0000: ...........................................................
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .Hemos borrado la memoria del router (dónde se guardan las particiones del sistema operativo).
Vamos a decirle en qué IP está el servidor TFTP
ip_address -l 192.168.1.1 -h 192.168.1.111
Ya se ha enterado y nos lo cuenta
RedBoot>
IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.111Cargamos el primer fichero:
load -r -b %{FREEMEMLO} gargoyle_1.0.12-atheros-vmlinux.lzma
La respuesta es correcta:
RedBoot>
Using default protocol (TFTP)
Raw file loaded 0x80040c00-0x80100bff, assumed entry at 0x80040c00Y ahora creamos la primera partición (el fichero que acabamos de enviar al router)
fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7
Despues de un par de minutos responde:
RedBoot>
... Erase from 0xbfc30000-0xbfcf0000: ............
... Program from 0x80040c00-0x80100c00 at 0xbfc30000: ............
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .Ahora, toca enviar el segundo y último fichero:
load -r -b %{FREEMEMLO} gargoyle_1.0.12-atheros-root.squashfs
Ya lo tiene:
RedBoot>
Using default protocol (TFTP)
Raw file loaded 0x80040c00-0x80300bff, assumed entry at 0x80040c00Ahora, para crear la segunda partición necesitamos saber el espacio libre que le queda, así que escribimos:
fis free
Nos reponderá algo parecido a esto:
RedBoot>
0xBFCF0000 .. 0xBFFE0000Abrimos la calculadora de windows y la ponemos en modo Científica y Hexadecimal (en windows 7 hay que escoger el modo programador).
Tenemos que restar el primer número, al segundo (BFFE0000 - BFCF0000, ignoramos el 0x) en mi caso el resultado es: 2F0000. Lo apuntamos, pero le añadimos 0x delante, así: 0x2F0000
Ya sabemos el espacio libre, así que creamos la partición, pero OJO,
vosotros debéis sustituir 0x2F0000 por el resultado que hayas obtenido.
fis create -l 0x2F0000 rootfs
Ahora, a encenderse un cigarrito, tomar un cafe, o ir al baño. Este proceso puede durar bastante (entre 10 y 20 minutos)
Si todo ha ido bien nos responderá:
RedBoot>
... Erase from 0xbfcf0000-0xbffe0000: ...............................................
... Program from 0x80040c00-0x80300c00 at 0xbfcf0000: ............................................
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .Para asegurarnos que el proceso ha sido correcto, listaremos las particiones:
fis list
El resultado si está todo bien será este:
^C
RedBoot> fis list
Name FLASH addr Mem addr Length Entry point
RedBoot 0xBFC00000 0xBFC00000 0x00030000 0x00000000
vmlinux.bin.l7 0xBFC30000 0x80041000 0x000C0000 0x80041000
rootfs 0xBFCF0000 0x80040C00 0x002F0000 0x80040C00
FIS directory 0xBFFE0000 0xBFFE0000 0x0000F000 0x00000000
RedBoot config 0xBFFEF000 0xBFFEF000 0x00001000 0x00000000
RedBoot>Ya sólo queda rebotarlo:
reset
Los 'creyentes' ya pueden empezar a rezar, el resto ... esperamos un par de minutos (a que el router se reinice y cargue el sistema), abrimos el navegador y vamos a la IP 192.168.1.1. Si todo es correcto os
pedirá un password. Escribid 'password' y a disfrutar

Os pongo algunas capturas de pantalla para que veáis los diversos modos en que podemos poner nuestro router con este firmware.


Gracias a
JulioCP. Sin su ayuda, mi router ahora sería poco más que un bonito 'pisapapeles'
