Para poder saber como esta estructurada la imagen flash y como funciona el firmware es necesario conocer los routers anteriores. En algunas cosas las diferencias son minimas.
Manual encontrado en internet, con VxWorks, comandos SNMP para el Factory Mode, SB5100 y mas cosas:
http://kts.es/Enlightened-Mans/Guides/Hacking%20The%20Cable%20Modem.pdfAqui se puede ver parte de la estructura del "Firmware Images" conincidente tambien con los modelos de routers actuales:
http://wiki.openwrt.org/oldwiki/openwrtdocs/hardware/scientific_atlanta/dpc21002 bytes: signature (hardware target ID)
2 bytes: "Control" (image compression format)
00 00 -- Uncompressed
00 01 -- LZRW1/KH
00 02 -- mini-LZO
00 03 -- Uncompressed
00 04 -- NRV2D99 (required for bootloader?)
00 05 -- (non-standard) LZMA
00 06 -- Uncompressed
00 07 -- Uncompressed
2 bytes: Major Rev 00 03
2 bytes: ?? Minor Rev 00 00
4 bytes: Build Time
4 bytes (int32): File Length
4 bytes: Load Address
81 f8 00 00 -- for Bootloader?
80 01 00 00 -- for Firmware Image
64 bytes: Filename (padded null)
2 bytes: HCS (Header checksum?) 06 49
2 bytes: 00 00
4 bytes: CRC
*Data*
El DPC2100 lleva un Broadcom BCM3349, misma familia BCM33xx que los BCM3380 de los CG3100D, CG3100Dv3, EPC3825 y EPC3925.
Si se analizan los firmwares de los BCM3380 se observa que hay 2 imagenes completas.
La estructura de la memoria SPI quedaria asi:
0x000000 .. 0x01FFFF Bootloader y algunos parametros de configuracion permanentes (128K)
0x020000 .. 0x3FFFFF Imagen 1 (3968K)
0x400000 .. 0x7DFFFF Imagen 2 (3968K)
0x7E0000 .. 0x7EFFFF ¿?, vacio, sin usar, ¿NVRam 2? (64K)
0x7F0000 .. 0x7FFFFF NVRam (64K)
Tambien resaltar que los parametros de configuracion se encuentran en una zona localizable por la cadena magica "MLog".
Dicha cadena "MLog" se encuentra en la parte alta de la zona "bootloader" y en la parte final de la memoria, en "NVRam".
Sospecho que "Permanent settings from non-vol" esta en la parte alta del bootloader y "Dynamic settings from non-vol" esta en la parte de ""NVRam", tal y como hace sospechar las localizaciones de los "MLog".
http://wiki.openwrt.org/toh/netgear/cg3100dv3Reading Permanent settings from non-vol...
Checksum for permanent settings: 0x49ca063
Settings were read and verified.
Reading Dynamic settings from non-vol...
Checksum for dynamic settings: 0xc3fa1d95
En algunos routers de la familia BCM33xx ya se ha conseguido implementar "algo" del OpenWrt.
En concreto en el WebSTAR DPC2100 con el procesador BCM3349.
http://wiki.openwrt.org/doc/hardware/soc/soc.broadcom.bcm33xxOtro router, el CVG834G, de la misma familia BCM33xx, utiliza el BCM3368:
http://wiki.openwrt.org/doku.php?id=oldwiki%3Aopenwrtdocs:hardware%3Anetgear:cvg834gQue tambien tiene algo compilado para OpenWrt:
http://downloads.openwrt.org/snapshots/trunk/brcm63xx/openwrt-cvg834g-squashfs.binEl parche para los BCM3368 esta disponible:
http://git.openwrt.org/?p=openwrt.git;a=blob_plain;f=target/linux/brcm63xx/patches-3.10/036-MIPS-BCM63XX-add-support-for-BCM3368-Cable-Modem.patch;hb=HEADY de otros sitios se ve que tambien esta disponible:
http://lxr.free-electrons.com/source/arch/mips/bcm63xx/boards/board_bcm963xx.c 39 /*
40 * known 3368 boards
41 */
42 #ifdef CONFIG_BCM63XX_CPU_3368
43 static struct board_info __initdata board_cvg834g = {
44 .name = "CVG834G_E15R3921",
45 .expected_cpu_id = 0x3368,
46
47 .has_uart0 = 1,
48 .has_uart1 = 1,
49
50 .has_enet0 = 1,
51 .has_pci = 1,
52
53 .enet0 = {
54 .has_phy = 1,
55 .use_internal_phy = 1,
56 },
57
58 .leds = {
59 {
60 .name = "CVG834G:green:power",
61 .gpio = 37,
62 .default_trigger= "default-on",
63 },
64 },
65
66 .ephy_reset_gpio = 36,
67 .ephy_reset_gpio_flags = GPIOF_INIT_HIGH,
68 };
69 #endif
Respecto a los EPC3825 y EPC3925, he encontrado un metodo que tal vez pueda servir para habilitar el telnet basandose en una pagina web oculta:
http://www.forocable.com/foro/threads/55094-DPC2100r2-dpc2100R2-v2-0-2r1256-100923as?highlight=EPC2100crear un nuevo archivo, copiar el codigo de abajo y guardar como modem.html luego abrir con el navegador de internet y en la pagina que se abre elegir 2 y listo.
<html>
<head>
<title>CISCO DPC2100 Modem Unlock Tool</title>
</head>
<body>
<form action="http://192.168.100.1/goform/_aslvl" method="post">
<input type="hidden" name="SAUsername" value="admin" />
<input type="hidden" name="SAPassword" value="W2402" />
<table border="1">
<tr>
<th>Access Level</th>
<td><select type="dropdown" name="SAAccessLevel">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select></td>
</tr>
<tr>
<th colspan="2"><input type="submit" name="submit" value="Submit" /></th>
</tr>
</table>
</form>
</body>
</html>
Aunque esta sin probar.
Es posible que en vez de "_aslvl" la direccion web correcta sea "_aslvl.asp" ya que esta cadena si aparece dentro de la imagen descomprimida del firmware EPC3825.
Esperemos que los parches para el BCM3380 esten pronto.
Saludos
espeltron