CodingBox Q&A Ask question

Een SFP insteken in poorten 24-28 van een DGS-1210-28 op OpenWrt verandert niets, koper houdt de link

Asked Active Viewed 96 AI translation from English
3

Homelab-switch: een D-Link DGS-1210-28 revisie F1 die ik met OpenWrt geflasht heb zodat ik kon stoppen met vechten tegen de stock web-UI. Alles werkt behalve de laatste vier poorten, de koper/fiber-combopoorten.

  • Switch: D-Link DGS-1210-28 rev F1
  • Firmware: OpenWrt 21.02.0-rc3 (r16172-2aba3e9784)
  • Poorten 24-28: RJ45/SFP-combo achter een RTL8214FC-PHY (de rest zit op RTL8218B/RTL8218D)
  • Module: een generieke 1G-optiek die prima linkt in een andere switch

Wat ik ook in de cage stop, de poort gedraagt zich als een gewone RJ45-poort. De koperkant blijft geselecteerd en de fiberkant komt nooit op:

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

De bootlog laat deze poorten wel gebonden zien aan de RTL8214FC-combo-PHY-driver, en die driver hoort SFP te kennen, dus de hardwarekant lijkt in orde.

Tot nu toe geprobeerd:

  • de module opnieuw geplaatst, daarna een tweede geprobeerd
  • de koperkabel volledig uit de poort getrokken voor het geval het een prioriteitskwestie was - poort blijft op koper
  • de module naar een andere switch verplaatst, waar hij linkt

Met de vendorfirmware erop schakelde deze switch de poort vroeger zelf naar fiber zodra er een module in ging. Is er een manier om op deze build het medium te selecteren, of zijn de combopoorten gewoon nog niet bruikbaar?

Comments 3

Accepted answer

Er is niets stuk, er zit gewoon geen automatische mediumselectie in het realtek-target. De RTL8214FC is een combo-PHY met een koperhelft en een fiberhelft, en op deze firmware blijft hij op de MII/koperkant totdat iets anders hem vertelt. Een module insteken betekent niets voor de driver, want niemand heeft de omschakeling geïmplementeerd.

Je selecteert het medium zelf vanuit userspace:

ethtool -s lan28 port fibre

Daarna is de cage het actieve medium op die poort en komt de optiek op. Om de poort terug te geven aan de RJ45-helft:

ethtool -s lan28 port tp

Zelfde commando voor elk van de andere combopoorten, één per poort.

Wat je je herinnert van de stock firmware was een beperkte auto-select: die keek naar beide helften en koper won zodra beide een link hadden. Daarom leest dit als een regressie, maar dat is het niet - de functie is voor dit target gewoon nooit geschreven.

Twee kanttekeningen. Het is alleen CLI, het is niet blootgesteld in LuCI, en mensen vragen daar al een tijdje om. En niets op deze build kiest het medium voor je, dus als je na elke boot fiber wilt, zorg dan dat dat commando ook echt draait.

7 South KoreanetrunnerKR Show original (English) AI translation

Dat was het, dank je. Eén commando en de poort schakelde om:

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

De optiek kwam meteen op en de RJ45-helft viel stil. Ik heb hetzelfde gedaan voor de andere drie combopoorten en de vier commando's in een startup-script gezet, want zoals je zegt onthoudt niets de keuze.

Enigszins irritant dat een per-poort-toggle in een shellscript moet leven, maar de poorten zijn nu bruikbaar, en dat was wat ik nodig had.

4 VietnamtxhawkVN Show original (English) AI translation

De moeite waard om te weten voordat je monitoring bovenop die poorten bouwt: de linkstatus aan de SFP-kant van deze borden is niet altijd te vertrouwen. Op de DGS-1210-10P heeft de device tree helemaal geen sfp-nodes, dus de kernel krijgt nooit module-present of loss-of-signal en de MAC meldt een permanente carrier - ip link print <BROADCAST,MULTICAST,UP,LOWER_UP> voor lan9 bij een lege cage, en het blijft up met een GLC-T-CO koper-SFP erin en geen patchkabel erop. De DGS-1210-10MP gedraagt zich niet zo, omdat de DTS daarvan de nodes al heeft.

De fix daar was een aanpassing van de device tree, gemodelleerd naar de 10MP en naar de Zyxel GS1900-10HP: een i2c-gpio-bus per cage, een sfp-node per cage met los-gpio, mod-def0-gpio en tx-disable-gpio, sfp = <&sfp0> gerefereerd vanaf de poort, phy-mode = "1000base-x" en managed = "in-band-status". Met dat op zijn plek wordt de cage over I2C bevraagd en volgt de carrier eindelijk het werkelijke optische signaal.

Op de stock images uit die periode blijft het gedrag bestaan, dus als iets van jou de carrier op een combo- of SFP-poort in de gaten houdt, controleer dan of die ook echt valt wanneer je de fiber eruit trekt.

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