CodingBox Q&A Ask question

Inserir um SFP nas portas 24-28 de um DGS-1210-28 no OpenWrt não muda nada, o cobre mantém o link

Asked Active Viewed 96 AI translation from English
3

Switch de homelab: um D-Link DGS-1210-28 revisão F1 que eu flashei com OpenWrt para parar de brigar com a UI web de fábrica. Tudo funciona, exceto as últimas quatro portas, que são as combo cobre/fibra.

  • Switch: D-Link DGS-1210-28 rev F1
  • Firmware: OpenWrt 21.02.0-rc3 (r16172-2aba3e9784)
  • Portas 24-28: combo RJ45/SFP atrás de um PHY RTL8214FC (o resto fica no RTL8218B/RTL8218D)
  • Módulo: uma óptica genérica 1G que linka bem em outro switch

Seja lá o que eu coloque na gaiola, a porta se comporta como uma porta RJ45 comum. O lado de cobre continua selecionado e o lado de fibra nunca sobe:

# ethtool lan28
        Supported ports: [ TP MII FIBRE ]
        Port: MII
        Link detected: yes

O log de boot mostra essas portas associadas ao driver de PHY combo RTL8214FC, e esse driver deveria saber lidar com SFP, então o lado do hardware parece certo.

Já tentei:

  • reencaixei o módulo, depois tentei um segundo
  • tirei o cabo de cobre da porta completamente, para o caso de ser uma questão de prioridade - a porta continua no cobre
  • movi o módulo para outro switch, onde ele linka

Com o firmware de fábrica nele, esse switch costumava virar a porta para fibra sozinho no momento em que um módulo entrava. Tem algum jeito de selecionar o meio nessa build, ou as portas combo simplesmente ainda não são utilizáveis?

Comments 3

Accepted answer

Nada está quebrado, só não tem seleção automática de meio no target realtek. O RTL8214FC é um PHY combo com uma metade de cobre e uma metade de fibra, e nesse firmware ele fica no lado MII/cobre até algo dizer o contrário. Inserir um módulo não significa nada para o driver, porque ninguém implementou a troca.

Você seleciona o meio você mesmo pelo userspace:

ethtool -s lan28 port fibre

Depois disso a gaiola é o meio ativo naquela porta e a óptica sobe. Para devolver a porta à metade RJ45:

ethtool -s lan28 port tp

Mesma chamada para cada uma das outras portas combo, uma por porta.

O que você lembra do firmware de fábrica era uma auto-seleção limitada: ela olhava as duas metades e o cobre ganhava sempre que as duas tinham link. É por isso que isso parece uma regressão, mas não é - a função simplesmente nunca foi escrita para esse target.

Duas ressalvas. É só CLI, não está exposto na LuCI, e as pessoas andam pedindo isso há um tempo. E nada nessa build consegue escolher o meio por você, então se você quer fibra depois de todo boot, garanta que essa chamada realmente rode.

7 South KoreanetrunnerKR Show original (English) AI translation

Era isso, obrigado. Uma chamada e a porta trocou:

# ethtool -s lan28 port fibre
# ethtool lan28 | grep Port:
        Port: FIBRE

A óptica subiu imediatamente e a metade RJ45 ficou quieta. Fiz o mesmo para as outras três portas combo e coloquei as quatro chamadas num script de inicialização, já que, como você disse, nada lembra a escolha.

Meio irritante que um toggle por porta tenha que morar num shell script, mas as portas estão utilizáveis agora, que era o que eu precisava.

4 VietnamtxhawkVN Show original (English) AI translation

Vale saber antes de você construir monitoramento em cima dessas portas: o estado de link do lado SFP dessas placas nem sempre é confiável. No DGS-1210-10P a device tree não tem nó sfp nenhum, então o kernel nunca recebe module-present nem loss-of-signal e a MAC reporta um carrier permanente - ip link imprime <BROADCAST,MULTICAST,UP,LOWER_UP> para lan9 com a gaiola vazia, e continua up com um SFP de cobre GLC-T-CO encaixado e nenhum cordão nele. O DGS-1210-10MP não se comporta assim, porque a DTS dele já tem os nós.

A correção lá foi uma mudança de device tree baseada no 10MP e no Zyxel GS1900-10HP: um barramento i2c-gpio por gaiola, um nó sfp por gaiola com los-gpio, mod-def0-gpio e tx-disable-gpio, sfp = <&sfp0> referenciado a partir da porta, phy-mode = "1000base-x" e managed = "in-band-status". Com isso no lugar, a gaiola é sondada por I2C e o carrier finalmente acompanha o sinal óptico real.

Nas imagens de fábrica daquele período o comportamento persiste, então se alguma coisa sua observa carrier numa porta combo ou SFP, verifique se ele realmente cai quando você tira a fibra.

3 South Korealinkadmin79KR Show original (English) AI translation
Log in to comment. Log in