Memasang SFP di port 24-28 DGS-1210-28 dengan OpenWrt tidak mengubah apa pun, copper tetap pegang link
Switch homelab: D-Link DGS-1210-28 revisi F1 yang saya flash dengan OpenWrt supaya tidak usah berjuang lagi dengan web UI bawaannya. Semuanya jalan normal kecuali empat port terakhir, yang merupakan port combo copper/fiber.
- Switch: D-Link DGS-1210-28 rev F1
- Firmware: OpenWrt 21.02.0-rc3 (r16172-2aba3e9784)
- Port 24-28: combo RJ45/SFP di belakang PHY RTL8214FC (sisanya ada di RTL8218B/RTL8218D)
- Modul: optik 1G generik yang link normal di switch lain
Apa pun yang saya pasang di cage, port-nya tetap berperilaku seperti port RJ45 biasa. Sisi copper tetap terpilih dan sisi fiber tidak pernah naik:
# ethtool lan28
Supported ports: [ TP MII FIBRE ]
Port: MII
Link detected: yes
Boot log memang menunjukkan port-port ini terikat ke driver PHY combo RTL8214FC, dan driver itu seharusnya sudah tahu soal SFP, jadi dari sisi hardware terlihat benar.
Sudah dicoba:
- lepas-pasang ulang modulnya, lalu coba modul kedua
- cabut kabel copper dari port sepenuhnya, siapa tahu ini soal prioritas - port tetap di copper
- pindahkan modulnya ke switch lain, di situ link normal
Dengan firmware vendor terpasang, switch ini dulu otomatis mengubah port ke fiber begitu modul dipasang. Apakah ada cara memilih medium di build ini, atau port combo-nya memang belum bisa dipakai?
Comments 3
Tidak ada yang rusak, cuma memang tidak ada automatic medium selection di target realtek ini. RTL8214FC itu PHY combo dengan separuh copper dan separuh fiber, dan di firmware ini dia tetap di sisi MII/copper sampai ada yang bilang sebaliknya. Memasang modul tidak berarti apa-apa buat driver, karena memang belum ada yang mengimplementasikan switchover-nya.
Kamu pilih medium-nya sendiri dari userspace:
Setelah itu cage-nya jadi medium aktif di port itu dan optiknya naik. Untuk mengembalikan port ke sisi RJ45:
Call yang sama untuk tiap port combo lainnya, satu per satu.
Yang kamu ingat dari firmware bawaan itu auto-select terbatas: dia lihat kedua sisi dan copper menang setiap kali keduanya punya link. Makanya ini terasa seperti regresi, padahal bukan - fungsinya memang belum pernah ditulis untuk target ini.
Dua catatan. Ini CLI saja, tidak muncul di LuCI, dan orang-orang sudah lama minta itu. Dan tidak ada apa pun di build ini yang bisa memilihkan medium untuk kamu, jadi kalau kamu mau fiber setiap boot, pastikan call itu benar-benar jalan.
Itu dia, terima kasih. Satu call dan port-nya langsung pindah:
Optiknya langsung naik dan sisi RJ45 diam. Saya lakukan hal yang sama untuk tiga port combo lainnya dan taruh keempat call-nya di startup script, karena seperti katamu tidak ada yang mengingat pilihannya.
Sedikit menjengkelkan kalau toggle per-port harus hidup di shell script, tapi port-nya sekarang bisa dipakai, dan itu yang saya butuhkan.
Perlu diketahui sebelum kamu membangun monitoring di atas port-port itu: link state di sisi SFP board-board ini tidak selalu bisa dipercaya. Di DGS-1210-10P, device tree-nya sama sekali tidak punya sfp node, jadi kernel tidak pernah dapat module-present atau loss-of-signal dan MAC melaporkan carrier permanen -
ip linkmencetak<BROADCAST,MULTICAST,UP,LOWER_UP>untuk lan9 dengan cage kosong, dan itu tetap up meski GLC-T-CO copper SFP terpasang tanpa patch cord sama sekali. DGS-1210-10MP tidak berperilaku begitu, karena DTS-nya sudah punya node-node itu.Perbaikannya di situ adalah perubahan device tree yang dicontoh dari 10MP dan dari Zyxel GS1900-10HP: satu bus i2c-gpio per cage, satu sfp node per cage dengan los-gpio, mod-def0-gpio, dan tx-disable-gpio,
sfp = <&sfp0>dirujuk dari port-nya,phy-mode = "1000base-x"danmanaged = "in-band-status". Dengan itu semua terpasang, cage-nya di-probe lewat I2C dan carrier-nya akhirnya benar-benar mengikuti sinyal optik yang sebenarnya.Di image bawaan dari periode itu perilakunya masih bertahan, jadi kalau ada sesuatu punya kamu yang mengawasi carrier di port combo atau SFP, pastikan itu benar-benar drop waktu kamu cabut fiber-nya.