Autor Tema: [Desarrollo] OpenWrt en Huawei HG622  (Leído 49562 veces)

0 Usuarios y 1 Visitante están viendo este tema.

gmtii

  • Visitante
[Desarrollo] OpenWrt en Huawei HG622
« en: 13-08-2013, 13:29 (Martes) »
Buenas,

Algo del router: http://wiki.openwrt.org/toh/huawei/hg622

El GIT de Pteridium tiene los parches aplicados para crear el firmware:

https://github.com/Pteridium/openwrt/tree/bcm63xx-r36529

Todo funcional a falta del problema de renombrado de ficheros con kernel SMP.

FLASHEO VIA TFTP:

Suponiendo que usamos ubuntu/debian:

- para flashear montamos un servidor tftp, como por ejemplo el tftpd-hpa (apt-get install tftpd-hpa)

- editamos el ficher /etc/default/tftpd-hpa, poniendo la ruta donde iran los firmwares en TFTP_DIRECTORY (por ejemplo /home/mi_usuario/tftp):

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/mi_usuario/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

- reiniciamos el servicio: sudo service tftpd-hpa restart

- arrancamos el router y pulsamos una tecla desde la consola serial para acceder a la línea de comandos del CFE antes de 3 segundos

- configuramos la IP de tu PC como 192.168.1.100

- el firmware debe llamarse bcm963xx_fs_kernel y estar el directorio de servidor tftpd.

- con el comando f en la línea de comandos del CFE se iniciará el proceso de flasheo.


COPIA DE SEGURIDAD DE DATOS DE CALIBRACIÓN EN PARTICIÓN CAL_DATA

Una vez instalado es importante hacer una copia de nuestro cal_data por si las moscas.

Si la partición es mtd4 por ejemplo haremos un:

cd /tmp
dd if=/dev/mtd4 of=cal_data.bin

y lo guardamos en el pc vía scp o similar.

Empleando URJTAG y un cable clon del usbblaster por ejemplo, sería algo como:

cable usbblaster
endian big
detect
register BR 1
register DIR 32
register EJIMPCODE 32
register EJADDRESS 32
register EJDATA 32
register EJCONTROL 32
register EJALL 96
instruction length 5
instruction BYPASS 11111 BR
instruction IDCODE 00001 DIR
instruction EJTAG_IMPCODE 00011 EJIMPCODE
instruction EJTAG_ADDRESS 01000 EJADDRESS
instruction EJTAG_DATA 01001 EJDATA
instruction EJTAG_CONTROL 01010 EJCONTROL
instruction EJTAG_ALL 01011 EJALL
instruction IDCODE
shift ir
shift dr
dr
initbus ejtag
readmem 0x38FA0000 0x200 RT2X00_HG622.bin




Saludos.


« Última modificación: 02-10-2013, 08:42 (Miércoles) por gmtii »

Pteridium

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #1 en: 13-08-2013, 14:10 (Martes) »

El CFE hace cosas raras como no dejar modificar las ip, tiempo de espera y demás... he metido con jtag el equivalente del modelo chino y permite modificar pero no acaba de ir fino...
No esperes mucho de huawei, ya sabes los dolores de cabeza que le dio a Noltari el HG556.

Necesitaría ayuda de alguien que tenga el router para verificar el offset exacto de los datos de calibración del wifi. Creo que es el 0xee0000, comienzo de la partición /dev/mtd4 cal_data ...


[    0.328000] physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x0000c2 Chip ID 0x00227e
[    0.340000] Amd/Fujitsu Extended Query Table at 0x0040
[    0.344000]   Amd/Fujitsu Extended Query version 1.3.
[    0.352000] number of CFI chips: 1
[    0.356000] bcm63xxpart: CFE boot tag found with version 6 and board type 96368MVWG_hg622
[    0.364000] bcm63xxpart: Partition 0 is CFE offset 0 and length 20000
[    0.368000] bcm63xxpart: Partition 1 is kernel offset 20100 and length 10ff00
[    0.376000] bcm63xxpart: Partition 2 is rootfs offset 130000 and length db0000
[    0.384000] bcm63xxpart: Partition 3 is cal_data offset ee0000 and length 20000
[    0.392000] bcm63xxpart: Partition 4 is nvram offset fe0000 and length 20000
[    0.400000] bcm63xxpart: Partition 5 is linux offset 20000 and length ec0000
[    0.408000] bcm63xxpart: Spare partition is offset 330004 and length bafffc
[    0.412000] 6 bcm63xxpart partitions found on MTD device physmap-flash.0
[    0.420000] Creating 6 MTD partitions on "physmap-flash.0":
[    0.428000] 0x000000000000-0x000000020000 : "CFE"
[    0.432000] 0x000000020100-0x000000130000 : "kernel"
[    0.440000] mtd: partition "kernel" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[    0.452000] 0x000000130000-0x000000ee0000 : "rootfs"
[    0.460000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[    0.472000] mtd: partition "rootfs" set to be root filesystem
[    0.480000] mtd: partition "rootfs_data" created automatically, ofs=340000, len=BA0000
[    0.488000] 0x000000340000-0x000000ee0000 : "rootfs_data"
[    0.496000] 0x000000ee0000-0x000000f00000 : "cal_data"
[    0.504000] 0x000000fe0000-0x000001000000 : "nvram"
[    0.508000] 0x000000020000-0x000000ee0000 : "linux"

[   10.028000] ieee80211 phy0: rt2x00lib_request_eeprom_file: Info - Loading EEPROM data from 'rt2x00.eeprom'.
[   10.048000] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 3572, rev 0223 detected
[   10.056000] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 0008 detected

Tampoco te creas que se hayan roto los cuernos pensando en cómo organizar la partición "cal_data", es más, me juego unas birras a que si lleva el mismo chip wifi Ralink que el HG556a la organización será la misma.
Rectifico: Perdón, sí que estos desgraciados hicieron cambios en cal_data según los parches que colgaste.

Cualquier cosa que necesites dentro de lo que pueda no dudes en decirlo, y felicidades por enfrentarte a ese bicho desalmado.  >:(

Un saludo.

P.D.: a ver si esto te vale de algo
http://huaweihg612hacking.wordpress.com/

P.P.D.: este parche está vacío 931-board_96368MVWG_hg622.patch
« Última modificación: 13-08-2013, 14:49 (Martes) por Pteridium »

zorrua

  • Visitante
Re:
« Respuesta #2 en: 13-08-2013, 14:51 (Martes) »
Hola, estoy interesado en meterle openwrt a este router. Tengo varias preguntas:

1. La wifi admite norma N con openwrt?
2. Como hago la copia con el JTAG?

Tengo este router y lo quiero de AP en mi casa, eso de que tenga USB me gusta.

Saludos.

gmtii

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #3 en: 13-08-2013, 14:56 (Martes) »
el problema es que el fw original espera los datos de calibración en 0xFA0000, pero en openwrt, ninguna partición incluye ese direccionamiento... así pues, algo raro tiene este CFE y la autodetección de particiones :-I

[    0.384000] bcm63xxpart: Partition 3 is cal_data offset ee0000 and length 20000
[    0.392000] bcm63xxpart: Partition 4 is nvram offset fe0000 and length 20000

entre el final de la cal_data 0xF00000 y el principio de la nvram 0xFE0000 quedan 0xE0000 , 896 KB en tierra de nadie... y ahí justo están realmente los datos de calibración creo

gracias por el link!

gmtii

  • Visitante
Re:
« Respuesta #4 en: 13-08-2013, 15:00 (Martes) »
Si tiene N.

Ahora mismo creo que es mejor esperar un poco a tener controlado el tema de particiones para no poner en riesgo los cal_data. Si tienes JTAG, Pteridium ha puesto un link con instrucciones.

El fichero de comandos para le urjtag para extraer los datos de calibración sería algo como:

Código: [Seleccionar]
cable usbblaster
endian big
detect
register BR 1
register DIR 32
register EJIMPCODE 32
register EJADDRESS 32
register EJDATA 32
register EJCONTROL 32
register EJALL 96
instruction length 5
instruction BYPASS 11111 BR
instruction IDCODE 00001 DIR
instruction EJTAG_IMPCODE 00011 EJIMPCODE
instruction EJTAG_ADDRESS 01000 EJADDRESS
instruction EJTAG_DATA 01001 EJDATA
instruction EJTAG_CONTROL 01010 EJCONTROL
instruction EJTAG_ALL 01011 EJALL
instruction IDCODE
shift ir
shift dr
dr
initbus ejtag
readmem 0x38FA0000 0x200 RT2X00_HG622.bin

El parámetro de cable va en función de tu JTAG.

Saludos.

Hola, estoy interesado en meterle openwrt a este router. Tengo varias preguntas:

1. La wifi admite norma N con openwrt?
2. Como hago la copia con el JTAG?

Tengo este router y lo quiero de AP en mi casa, eso de que tenga USB me gusta.

Saludos.

gmtii

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #5 en: 13-08-2013, 18:14 (Martes) »

zorrua

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #6 en: 13-08-2013, 20:52 (Martes) »
Hola de nuevo.

Estoy pensando en comprar un JTAG, este me vale? http://dx.com/es/p/usb-blaster-programmer-jtag-cable-set-168025

Que es eso de cal_data?

Muchas gracias por todo, saludos.

gmtii

  • Visitante
Re: Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #7 en: 14-08-2013, 09:11 (Miércoles) »
En ebay lo tienes a mitad de precio. ::)

Saludos.

wOOx

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #8 en: 14-08-2013, 10:26 (Miércoles) »
Tengo este router, sin usar.

Si consigo hacerme con un JTag, intentare ayudar en lo que pueda.

Un Saludo.

zorrua

  • Visitante
Re: Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #9 en: 15-08-2013, 01:48 (Jueves) »
En ebay lo tienes a mitad de precio. ::)

Saludos.

Hola,

He estado mirando y no encuentro nada mas barato. En dealextreme va sin portes. No me importa pagar un poco mas, pero quiero asegurarme que me funcione para este router.

Gracias por todo.

Saludos.

zorrua

  • Visitante
Re: Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #10 en: 15-08-2013, 02:23 (Jueves) »
Hola, he visto que en la wiki de openwrt no aparece nada de informacion.

A mi no me importa crear la entrada, pero prefiero que lo haga el autor del post. Si necesitais fotos avisar.

Gracias por todo.

Saludos.

gmtii

  • Visitante
Re: Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #11 en: 15-08-2013, 15:21 (Jueves) »
el más barato... el vendedor no es que tenga muchos votos y tal, pero entre $7-8 debes poder conseguir algo similar... serán basados en Cy7C68013A o bien uno de los nuevos en STM32, ambos emulando al usb blaster y funcionando con urjtag...

http://www.ebay.com/itm/NEW-USB-Blaster-Programmer-Cable-For-FPGA-CPLD-JTAG-Development-Board-G6-/200942165356?pt=LH_DefaultDomain_0&hash=item2ec9161d6c

los cal_data es la partición que suele contener la eeprom de la rt3062f con datos como la mac, región o calibración de fábrica... es única para cada chip de modo que no debe perderse... yo la he perdido y restaurado de otro y tira bien, pero vamos, lo ideal es siempre conservarlos :-)

En ebay lo tienes a mitad de precio. ::)

Saludos.

Hola,

He estado mirando y no encuentro nada mas barato. En dealextreme va sin portes. No me importa pagar un poco mas, pero quiero asegurarme que me funcione para este router.

Gracias por todo.

Saludos.

gmtii

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #12 en: 16-08-2013, 09:37 (Viernes) »
buenas,

ya esta corregido el tema del cal_data (todo era cuestión de leer el parche que preparó Noltari para el soporte de cal_data en bcm63xx...); alguien puede probar este firmware en su hg622 por favor?

https://www.dropbox.com/s/rmrmvykrb502g64/openwrt-HG622-generic-squashfs-cfe.bin

Cualquier problema, postead el bootlog.

saludos

pd: creo que el método de subir el fw vía web no va con este bootloader y hay que hacerlo mediante TFTP... :(
« Última modificación: 16-08-2013, 11:30 (Viernes) por gmtii »

gmtii

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #13 en: 10-09-2013, 00:22 (Martes) »
buenas,

Creada la página en openwrt sobre este router con alguna fotuca...

http://wiki.openwrt.org/toh/huawei/hg622

Nadie se anima a probar el firmware????  ;D

Saludos!

zorrua

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #14 en: 10-09-2013, 15:01 (Martes) »
Hola, ya me ha llegado el JTAG, pero no tengo idea de como hacer  el backup del cal_data.

Como tengo que conectar los pines de la placa con el JTAG?





Muchas gracias por todo.

Saludos.

gmtii

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #15 en: 10-09-2013, 15:03 (Martes) »
pues unes pin a pin, siguiendo el siguiente esquema del conector de tu cable jtag:



No olvides conectar la tierra entre ambos.

Saludos.

zorrua

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #16 en: 10-09-2013, 15:43 (Martes) »
pues unes pin a pin, siguiendo el siguiente esquema del conector de tu cable jtag:



No olvides conectar la tierra entre ambos.

Saludos.

Gracias por responder.

Tengo que conectar todos los pines?

Otra duda, en la placa tengo estas etiquetas:

TX
GND
VCC
NC
RX
TDI
TMS
TDO
TRST
TCK

Y en el adaptardor JTAG estos:

TCK
TDO
TMS
NC
TDI
GND
VCC
NC
NC
GND

En el JTAG tengo varios repetidos, que hago con ellos?

Podeis decirme como unir la etiquetas del adaptador JTAG y la placa?

Gracias

gmtii

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #17 en: 10-09-2013, 19:31 (Martes) »
Se unen con cables de estos:

http://www.ebay.com/itm/40P-color-dupont-cables-2-54mm-1P-1P-20-CM-long-a-row-of-40-root-For-Arduino-/170821119805?pt=LH_DefaultDomain_0&hash=item27c5bb6f3d

los que se llaman igual, son el mismo pin; conecta uno de ellos, el que más rabie te dé. Los NC no se conectan.

Saludos.

zorrua

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #18 en: 10-09-2013, 20:09 (Martes) »
Se unen con cables de estos:

http://www.ebay.com/itm/40P-color-dupont-cables-2-54mm-1P-1P-20-CM-long-a-row-of-40-root-For-Arduino-/170821119805?pt=LH_DefaultDomain_0&hash=item27c5bb6f3d

los que se llaman igual, son el mismo pin; conecta uno de ellos, el que más rabie te dé. Los NC no se conectan.

Saludos.

Gracias de nuevo.

Ya tengo esos cables. SI quito los NCs me quedan estos:

Placa - JTAG

TX
GND - GND
VCC - VCC
RX
TDI
TMS
TDO - TDO
TRST
TCK - TCK


Estos donde van?

TMS
TDI

Muchas gracias de nuevo.

Saludos.

gmtii

  • Visitante
Re: [Desarrollo] OpenWrt en Huawei HG622
« Respuesta #19 en: 10-09-2013, 23:50 (Martes) »
sigue el serigrafiado en la placa del router y no hay pérdida... es algo como esto:



Saludos.