Insérer un SFP dans les ports 24-28 d'un DGS-1210-28 sous OpenWrt ne change rien, le cuivre garde le lien
Switch de homelab : un D-Link DGS-1210-28 révision F1 que j'ai flashé avec OpenWrt pour arrêter de me battre avec l'interface web d'origine. Tout fonctionne sauf les quatre derniers ports, qui sont les combos cuivre/fibre.
- Switch : D-Link DGS-1210-28 rev F1
- Firmware : OpenWrt 21.02.0-rc3 (r16172-2aba3e9784)
- Ports 24-28 : combo RJ45/SFP derrière un PHY RTL8214FC (le reste est sur RTL8218B/RTL8218D)
- Module : une optique 1G générique qui établit le lien sans problème sur un autre switch
Quoi que je mette dans la cage, le port se comporte comme un simple port RJ45. Le côté cuivre reste sélectionné et le côté fibre ne monte jamais :
# ethtool lan28
Supported ports: [ TP MII FIBRE ]
Port: MII
Link detected: yes
Le journal de démarrage montre bien ces ports liés au pilote combo PHY RTL8214FC, et ce pilote est censé connaître le SFP, donc le côté matériel semble correct.
Essayé jusqu'ici :
- réinséré le module, puis essayé un second
- débranché complètement le câble cuivre du port au cas où ce serait une histoire de priorité - le port reste sur le cuivre
- déplacé le module vers un autre switch, où il établit le lien
Avec le firmware d'origine, ce switch avait l'habitude de basculer le port sur la fibre tout seul dès qu'un module était inséré. Y a-t-il un moyen de sélectionner le média sur cette build, ou les ports combo ne sont-ils simplement pas encore utilisables ?
Comments 3
Rien n'est cassé, il n'y a simplement pas de sélection automatique du média dans la cible realtek. Le RTL8214FC est un PHY combo avec une moitié cuivre et une moitié fibre, et sur ce firmware il reste sur le côté MII/cuivre jusqu'à ce qu'on lui dise autre chose. Insérer un module ne signifie rien pour le pilote, parce que personne n'a implémenté le basculement.
Vous sélectionnez le média vous-même depuis l'espace utilisateur :
Après ça, la cage est le média actif sur ce port et l'optique monte. Pour rendre le port à la moitié RJ45 :
Même appel pour chacun des autres ports combo, un par port.
Ce dont vous vous souvenez du firmware d'origine était une sélection automatique limitée : elle regardait les deux moitiés et le cuivre gagnait dès que les deux avaient un lien. C'est pour ça que ça a l'air d'une régression, mais ça n'en est pas une - la fonction n'a simplement jamais été écrite pour cette cible.
Deux mises en garde. C'est uniquement en CLI, ce n'est pas exposé dans LuCI, et les gens le demandent depuis un moment. Et rien sur cette build ne choisit le média à votre place, donc si vous voulez la fibre après chaque démarrage, assurez-vous que cet appel s'exécute réellement.
C'était ça, merci. Un appel et le port a basculé :
L'optique est montée immédiatement et la moitié RJ45 s'est tue. J'ai fait pareil pour les trois autres ports combo et j'ai mis les quatre appels dans un script de démarrage, puisque comme vous dites rien ne se souvient du choix.
Un peu irritant qu'un basculement par port doive vivre dans un script shell, mais les ports sont utilisables maintenant, ce qui est ce dont j'avais besoin.
Ça vaut le coup de le savoir avant de construire du monitoring sur ces ports : l'état du lien côté SFP de ces cartes n'est pas toujours fiable. Sur le DGS-1210-10P, le device tree n'a aucun nœud sfp du tout, donc le noyau n'obtient jamais module-present ni loss-of-signal et le MAC signale un carrier permanent -
ip linkaffiche<BROADCAST,MULTICAST,UP,LOWER_UP>pour lan9 avec une cage vide, et ça reste up avec un SFP cuivre GLC-T-CO en place et aucun cordon de brassage dedans. Le DGS-1210-10MP ne se comporte pas ainsi, parce que son DTS a déjà les nœuds.Le correctif là-bas était un changement de device tree calqué sur le 10MP et sur le Zyxel GS1900-10HP : un bus i2c-gpio par cage, un nœud sfp par cage avec los-gpio, mod-def0-gpio et tx-disable-gpio,
sfp = <&sfp0>référencé depuis le port,phy-mode = "1000base-x"etmanaged = "in-band-status". Avec ça en place, la cage est sondée par I2C et le carrier suit enfin le signal optique réel.Sur les images d'origine de cette période, le comportement persiste, donc si quelque chose chez vous surveille le carrier sur un port combo ou SFP, vérifiez qu'il tombe réellement quand vous débranchez la fibre.