CodingBox Q&A Ask question

IC-prog devolve 256 bytes do dump do SFP, mas a segunda metade é cópia da primeira, a página A2 não é lida (HP 2530-24G)

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

Cuido da rede de uma operadora pequena, regularmente regravo módulos baratos para funcionar como HP. Tarefa de sempre: gravar nos WDM chineses de 1.25G a imagem de um módulo de marca, para o switch aceitar eles sem reclamar. Doador - J4859C, hardware alvo - HP 2530-24G J9776A.

O que está na mesa:

  • switch HP 2530-24G J9776A
  • módulos OptiCin e Fiberstore, WDM 1.25G
  • programador mini-USB NAG
  • IC-prog no Windows, leio e gravo por ele

O dump sai com 256 bytes, mas a segunda metade bate com a primeira byte a byte:

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

O que já tentei:

  • reposicionei o módulo, limpei os contatos no soquete, troquei a trava
  • rodei três módulos de lotes diferentes, o quadro é igual
  • troquei a porta USB, o cabo e a máquina, nada mudou

Preciso da segunda página, onde ficam o DDM e os bytes de serviço, e simplesmente não a vejo. Isso é limitação do IC-prog, placa torta do programador, ou os próprios módulos que se comportam assim?

Comments 7

Accepted answer

Aqui são dois problemas independentes, e nenhum dos dois está nos módulos.

O primeiro é o próprio IC-prog. Ele tem um modelo de endereçamento linear, não sabe trocar de página e não chega no A2 de jeito nenhum. O que você está vendo na segunda metade do dump é o mesmo A0, lido pela segunda vez. Ele não mostra erro nenhum, porque do ponto de vista dele está tudo certo.

O segundo é a placa. Nesse programador mini-USB o VccR (pino 15) está preso em +5 V, quando pelo SFF-8431 ele deveria ficar livre, e além disso a alimentação e o terra estão desenhados de um jeito que parte dos módulos não entra no modo normal. Daí vem o No Acknowledge received - não em todos, mas nos que não gostam dessa fiação.

O que funciona direito:

  • TL866A, uns 70 USD, pega os módulos sem drama nenhum;
  • placas com CH341 com I2C por hardware - o caminho mais barato, se a mão for boa;
  • adaptador LPT com o driver i2c-parport no Linux: o módulo aparece como um dispositivo i2c comum, daí i2cdump -y 3 0x50 e i2cdump -y 3 0x51, tem um script aberto em Python que lê e grava as duas páginas.

Critério simples: assim que o 0x51 começar a responder, daí para frente é trabalho normal com a memória do módulo, não briga com a ferramenta.

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

Separe software e hardware, senão vai ficar chutando até de noite. Pegue qualquer Linux e veja se o módulo responde no segundo endereço:

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

Troque o número do barramento pelo seu. Se o 0x50 lê e o 0x51 fica calado - a questão já não é com o que você olha o dump, e sim se está chegando alimentação normal no módulo. E diga o que o mesmo programador tira do J4859C doador, esse com certeza vivo: se até nele a segunda página não abre, os módulos baratos não têm nada a ver, tem que cavar na combinação software mais placa.

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

Rodei o doador logo de cara: o J4859C vivo, no mesmo soquete e no mesmo IC-prog, dá exatamente o mesmo quadro - 256 bytes, a segunda metade repete a primeira. Ou seja, não é questão dos módulos baratos. Conferi também no Linux via adaptador:

i2cdump -y 3 0x50   ->  дамп есть, содержимое осмысленное
i2cdump -y 3 0x51   ->  чтение не проходит

A utilidade nativa no mesmo módulo devolve No Acknowledge received, e o IC-prog silenciosamente mostra a cópia da primeira página e finge que está tudo bem. Os módulos alvo são OptiCin, a imagem eu tiro justamente desse J4859C.

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

Sobre a própria gravação, vou acrescentar. No dump de 256 bytes, os primeiros 128 bytes são os que importam, dali para frente é a zona do fabricante, que normalmente dá para nem tocar. Para HP a gente grava imagens do J4858C e do J4859C, para WDM um par de vezes bastou a imagem LX comum: o switch aceitou o módulo e nem olhou para o comprimento de onda.

Mas está longe de tudo ser gravável. No 3Com 3CSFP91 e 3CSFP92, assim como nos Allied Telesis de marca, a gravação não rolou de jeito nenhum: lê normal, mas a gravação não se aplica - WP travado. Então se depois de trocar de programador o A2 lê, mas a gravação some em silêncio, procure a causa fora do software.

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

Uma ressalva sobre isso de "daí para frente é trabalho normal com a memória". Normal não é em todo lugar. Parte dos módulos nem é EEPROM de verdade: no Medick SFP-10G-BX tem um microcontrolador C8051F392, que emula A0/A2 e sabe exigir senha ou responder a um challenge. Por fora parece memória normal até o exato momento da gravação. O caso mais complicado que já peguei foi a EEPROM interativa da HP/Aruba com chaves, ali sem uma utilidade pronta não dá para fazer nada.

E se você for montar o adaptador na mão, não troque os pinos: TX_Disable é o pino 3, Mod_Abs é o pino 6, VeeR é o pino 9. Metade dos módulos "ilegíveis" que gente conhecida teve era soquete mal montado, não proteção do vendor.

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

Do que se usa hoje em dia: SNR SFP Writer, a série SFPTotal Plus e caseiras com CH341 - normalmente é só uma placa com soquetes para SFP, XFP, GBIC e QSFP, às vezes numa carcaça impressa. Software universal não existe, cada vendor tem sua própria utilidade, as imagens vêm de bases de firmware e de fóruns especializados.

Dois pontos que custam mais caro que o hardware. Primeiro: muitos módulos têm uma senha de 4 bytes, a maior parte já está publicada há tempos, mas se você errar, fica com um tijolo de um módulo nada barato. Segundo: antes de mexer na memória, confirme que o módulo está vivo mesmo. Temperatura, tensão, corrente de bias e TX/RX do A0h/A2h, show interfaces diagnostics optics no Junos ou display interface transceiver na Huawei, depois limpeza de travas, contatos e lentes, depois troca por um módulo com certeza funcional. Parte dos módulos "mortos" revive depois disso sem nenhuma gravação, e a carga você só confere depois com iperf3.

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

Reportando o resultado final. Montei a placa com CH341, no Linux o 0x51 respondeu na hora, a segunda página lê inteira, nenhum duplicado dos primeiros 128 bytes. Gravei a imagem do J4859C no OptiCin, o HP 2530-24G J9776A aceitou o módulo em silêncio, o DDM mostra valores plausíveis, rodou 24 horas sob carga sem erro.

Desinstalei o IC-prog para não me tentar de novo. O 3Com 3CSFP91 que estava largado do lado realmente não grava: lê, mas a gravação não se aplica, então bate tudo com a história do WP. Obrigado, questão fechada.

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