CodingBox Q&A Ask question

IC-prog entrega 256 bytes del volcado de un SFP, pero la segunda mitad es copia de la primera, la página A2 no se lee (HP 2530-24G)

Asked Active Viewed 35 AI translation from Русский
6

Mantengo la red de un operador pequeño, reflasheo con regularidad módulos baratos para que pasen por HP. La tarea es la habitual: volcar en unos WDM chinos de 1.25G la imagen de un módulo de marca para que el switch los acepte sin quejarse. El donante es un J4859C, el equipo objetivo es un HP 2530-24G J9776A.

Lo que hay en la mesa:

  • switch HP 2530-24G J9776A
  • módulos OptiCin y Fiberstore, 1.25G WDM
  • programador mini-USB NAG
  • IC-prog en Windows, leo y escribo con él

El volcado sale de 256 bytes, pero la segunda mitad coincide con la primera byte a byte:

IC-prog, 0x00-0x7F: прочитано
IC-prog, 0x80-0xFF: тот же самый блок, байт в байт
на части модулей при чтении: No Acknowledge received

Lo que ya probé:

  • cambié el módulo de lugar, limpié los contactos del zócalo, cambié el pestillo
  • pasé tres módulos de lotes distintos, mismo cuadro
  • cambié el puerto USB, el cable y la máquina, nada cambió

Necesito la segunda página, donde están el DDM y los bytes de servicio, y sencillamente no la veo. ¿Es una limitación de IC-prog, una placa de programador defectuosa, o los propios módulos se comportan así?

Comments 7

Accepted answer

Aquí hay dos fallos independientes, y ninguno de los dos está en los módulos.

El primero es el propio IC-prog. Tiene un modelo de direccionamiento lineal, no sabe cambiar de página y no puede llegar a A2 en absoluto. Lo que ves en la segunda mitad del volcado es la misma A0, leída por segunda vez. No mostrará ningún error, porque desde su punto de vista todo está en orden.

El segundo es la placa. En este programador mini-USB VccR (pin 15) está puesto a +5 V, aunque según SFF-8431 debería quedar libre, más la alimentación y la tierra están conectadas de forma que parte de los módulos no entra en modo normal. De ahí el No Acknowledge received - no en todos por igual, sino en los que no les gusta esa conexión.

Lo que funciona bien:

  • TL866A, unos 70 USD, toma los módulos sin bailes raros;
  • placas con CH341 con I2C por hardware - el camino más barato si se tiene destreza;
  • adaptador LPT con el driver i2c-parport en Linux: el módulo se ve como un dispositivo I2C normal, luego i2cdump -y 3 0x50 y i2cdump -y 3 0x51, hay un script abierto en Python que lee y escribe ambas páginas.

El criterio es simple: en cuanto 0x51 empieza a responder, de ahí en adelante es trabajo normal con la memoria del módulo, no una pelea con la herramienta.

5 BelarusnetfoxBY Show original (Русский) AI translation

Separa software y hardware, si no vas a andar adivinando hasta la noche. Toma cualquier Linux y mira si el módulo responde siquiera en la segunda dirección:

i2cdump -y 3 0x50
i2cdump -y 3 0x51

Pon tu propio número de bus. Si 0x50 se lee y 0x51 calla - la pregunta ya no es con qué miras el volcado, sino si le llega alimentación normal al módulo. Y dime qué entrega con ese mismo programador un J4859C donante que sea seguro que funciona: si a él tampoco se le abre la segunda página, los módulos baratos no tienen nada que ver, hay que cavar en la combinación software más placa.

3 KazakhstanracknodeKZ Show original (Русский) AI translation

Probé el donante primero que nada: un J4859C vivo en el mismo zócalo y en el mismo IC-prog da exactamente el mismo cuadro - 256 bytes, la segunda mitad repite la primera. Entonces no es cosa de los módulos baratos. Lo comprobé además en Linux con el adaptador:

i2cdump -y 3 0x50   ->  hay volcado, contenido con sentido
i2cdump -y 3 0x51   ->  la lectura no pasa

La utilidad nativa en ese mismo módulo da No Acknowledge received, e IC-prog en silencio muestra una copia de la primera página y hace como que todo está bien. Los módulos objetivo son OptiCin, la imagen la saco justamente de ese J4859C.

0 RussiawavetechRU Show original (Русский) AI translation

Sobre la escritura misma añado algo. En el volcado de 256 bytes son significativos los primeros 128 bytes, más allá está la zona del fabricante, que normalmente ni hace falta tocar. Para HP volcamos imágenes de J4858C y J4859C, para WDM un par de veces bastó con una imagen LX normal: el switch aceptaba el módulo y no miraba la longitud de onda.

Pero no todo se puede escribir. En el 3Com 3CSFP91 y 3CSFP92, igual que en los de marca Allied Telesis, la escritura simplemente no funcionó: se lee normal, pero la escritura no se aplica - WP bloqueado. Así que si tras cambiar de programador A2 se lee, pero la escritura se va silenciosamente a ninguna parte, no busques la causa en el software.

3 RussialasernerdRU Show original (Русский) AI translation

Aclaro lo de «de ahí en adelante trabajo normal con la memoria». No en todos lados es normal. Parte de los módulos no son EEPROM en absoluto: en el Medick SFP-10G-BX hay un microcontrolador C8051F392 que emula A0/A2 y puede exigir contraseña o responder a un desafío. Por fuera parece memoria normal justo hasta el momento de escribir. El caso más pesado que me tocó fue una EEPROM interactiva de HP/Aruba con claves, ahí sin una utilidad ya hecha no hay nada que hacer.

Y si armas el adaptador tú mismo, no confundas los pines: TX_Disable es el pin 3, Mod_Abs es el pin 6, VeeR es el pin 9. La mitad de los módulos «ilegibles» que le pasaron a conocidos resultaron ser un zócalo mal armado, no una protección del fabricante.

1 Russiagiglab26RU Show original (Русский) AI translation

De lo que se usa ahora: SNR SFP Writer, la serie SFPTotal Plus y montajes caseros con CH341 - normalmente es solo una placa con zócalos para SFP, XFP, GBIC y QSFP, a veces en una carcasa impresa. No hay software universal, cada fabricante tiene su propia utilidad, las imágenes se sacan de bases de firmwares y de foros especializados.

Dos cosas que cuestan más que el hardware. Primero: muchos módulos tienen una contraseña de 4 bytes, la mayoría se ha publicado hace tiempo, pero si fallas obtienes un ladrillo de un módulo nada barato. Segundo: antes de meterte en la memoria, asegúrate de que el módulo esté vivo siquiera. Temperatura, voltaje, corriente de polarización y TX/RX de A0h/A2h, show interfaces diagnostics optics en Junos o display interface transceiver en Huawei, luego limpieza de pestillos, contactos y lentes, luego sustitución por uno que sí funcione con seguridad. Parte de los módulos «muertos» revive con esto sin ningún flasheo, y la carga ya se comprueba después con iperf3.

1 RussiadwdmmonkRU Show original (Русский) AI translation

Reporto el resultado. Armé una placa con CH341, en Linux 0x51 respondió de inmediato, la segunda página se lee entera, sin ninguna copia de los primeros 128 bytes. Volqué la imagen del J4859C en el OptiCin, el HP 2530-24G J9776A aceptó el módulo sin quejarse, el DDM muestra valores razonables, aguantó un día bajo carga sin errores.

Desinstalé IC-prog para no tentarme más. El 3Com 3CSFP91 que andaba por ahí efectivamente no se deja escribir: se lee, pero la escritura no se aplica, así que lo del WP cuadra todo. Gracias, pregunta cerrada.

2 RussiawavetechRU Show original (Русский) AI translation
Log in to comment. Log in