Hi,
I have two OEM SFP 2500 base-X modules bought with my Banana Pi R3 and I can’t get them to work when I plug one of them on SFP1 port (eth1). My router is running OpenWRT 24.10.4 with a 6.6.110 kernel:
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 6.6.110 (builder@buildhost) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 13.3.0 r28959-29397011cc) 13.3.0, GNU ld (GNU Binutils) 2.42) #0 SMP Sun Oct 19 16:37:45 2025
[ 0.000000] Machine model: Bananapi BPI-R3
The module is detected when I plug it, but the switch facing it doesn’t see any link. Here is the only trace I get on the router side:
[23723.665597] sfp sfp-1: module OEM SFP-2.5G-BX10-U rev 1.0 sn 2401050005 dc 240105
I checked in the kernel source code and there’s already a quirk registered for these. I tried to dump some debug state from the router:
# cat /sys/kernel/debug/sfp-1/state
Module state: present
Module probe attempts: 0 0
Device state: down
Main state: down
Fault recovery remaining retries: 0
PHY probe remaining retries: 0
Signalling rate: 0 kBd
Rate select threshold: 0 kBd
moddef0: 1
rx_los: 0
tx_fault: 0
tx_disable: 1
rs0: 0
rs1: 0
And from ethtool:
# ethtool eth1
Settings for eth1:
Supported ports: [ FIBRE ]
Supported link modes: 2500baseX/Full
1000baseX/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Half
Auto-negotiation: off
Port: FIBRE
PHYAD: 0
Transceiver: internal
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: no
I find it weird nothing is reported in the Advertised link modes section.
# ethtool -m eth1
Identifier : 0x03 (SFP)
Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID)
Connector : 0x07 (LC)
Transceiver codes : 0x00 0x12 0x00 0x00 0x12 0x00 0x01 0x05 0x00
Transceiver type : SONET: SONET reach specifier bit 1
Transceiver type : SONET: OC-48, intermediate reach
Transceiver type : FC: long distance (L)
Transceiver type : FC: Longwave laser (LC)
Transceiver type : FC: Single Mode (SM)
Transceiver type : FC: 200 MBytes/sec
Transceiver type : FC: 100 MBytes/sec
Encoding : 0x05 (SONET Scrambled)
BR, Nominal : 2500MBd
Rate identifier : 0x00 (unspecified)
Length (SMF,km) : 10km
Length (SMF) : 10000m
Length (50um) : 0m
Length (62.5um) : 0m
Length (Copper) : 0m
Length (OM3) : 0m
Laser wavelength : 1270nm
Vendor name : OEM
Vendor OUI : 00:00:00
Vendor PN : SFP-2.5G-BX10-U
Vendor rev : 1.0
Option values : 0x00 0x1a
Option : RX_LOS implemented
Option : TX_FAULT implemented
Option : TX_DISABLE implemented
BR margin, max : 0%
BR margin, min : 0%
Vendor SN : 2401050005
Date code : 240105
Does anyone has a hint about what’s going on ?
Thanks!