You want to use one with a rtl8221b on it, behind rollball protocol. I’ve bought the one from the Luleey shop, it has one.
It was reported the BananaPi module is the same.
There are more sources of these modules, but be careful, you might get one with an yt8821 on it, which is not as well supported.
The TP-Link 2.5G module has a rtl8221b on it, but we have not figured out how to reach the phy.
The main difference is the rtl8221b we can control the phy through the kernel. So we can lower the connection speed between MAC and PHY, when the RJ45 is connected at 1000Mbps or lower. That saves quite a bit of power usage. And of course, you have more control over the negotiation and advertisement process.
The yt8821 module is stuck at the highest speed between MAC and PHY. From the kernel side, it is treated as an optical sfp, without any furher control over the connection on the RJ45.
Hi team, I’m seeing some real strange things on my two sfp ports.
I get this error regardless of the sfp+ module I insert
[ 3082.517577] sfp sfp2: Detected broken RTL8672/RTL9601C emulated EEPROM
[ 3082.524118] sfp sfp2: Switching to reading EEPROM to one byte at a time
[ 3082.574024] sfp sfp2: module rev sn dc
[ 3082.578201] sfp sfp2: module is not supported - phys id 0x00 0x00
I have tried Mikrotik S+RJ10, S+85DLC03D, Intel FTLX8571D3BCV-IT, and SFP-10G-T-CIS without any luck (All checked and working fine in multiple other equipment). I cant even debug them. Running 6.6 with all the PHY drivers selected
Any help would be amazing, even if you point out i’m an idiot and haven’t done something correctly
Maybe this 10G XGS-PON ONU SFP+ Stick work on the BPI-R3 and BPI-R4, because on Reddit, on Discord and on Ubiquiti forum have reported that it works (on other hardware but I think they are based on Linux).
You can buy it in group (organized on 8311 Discord) to get it cheaper.
It can be fully configured via the web interface and can also be configured via CLI commands.
.
I think these 2.5G GPON ONU SFP Sticks work on the BPI-R3 and BPI-R4, because here on the forum, on Reddit, on Discord, on Ubiquiti, on Turris and MikroTik forums have reported that they work (on other hardware but I think they are based on Linux).
The hardware in both is identical and they are from the same company, but only the “HSGQ” (newer model) receives firmware updates and already comes with the newer firmware.
The “ODI” and “HSGQ” GPON has an issue that only works at 1000baseX/Full on BPI-R3 and BPI-R4.
It can be fully configured via the web interface and can also be configured via CLI commands.
Rename the sfp.ko module ( example sfp.ko.bkp ). I use that way and it operates at 2500Mb/s. You will lose the diagnostics ( ethtoool -m eth1 on bpi-r3)
There are a misconfigured variable at the eeprom with a baud rate of 1300. That value is for aqn interface at 1.25Gb/s.
Well, i have this stick. And in BPI-R4 is not detected. I have checked this onu-stick in a Mikrotik switch, and it works there Also i have checked this in BPI-R3 and it sometimes work there and sometimes not.
so, after the statement of @ericwoud saying the modules will never work, I tried buying a new set. These are even funnier:
let’s try to bring them up:
root@APBureau4:~# ifconfig eth1 up
root@APBureau4:~# dmesg | tail
[ 58.808505] br-lan: port 5(phy0-ap0) entered blocking state
[ 58.808524] br-lan: port 5(phy0-ap0) entered disabled state
[ 58.808559] mt7915e 0002:01:00.0 phy0-ap0: entered allmulticast mode
[ 58.808704] mt7915e 0002:01:00.0 phy0-ap0: entered promiscuous mode
[ 58.980732] br-lan: port 5(phy0-ap0) entered blocking state
[ 58.980755] br-lan: port 5(phy0-ap0) entered forwarding state
[ 59.607616] mt7530-mmio 15020000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[ 59.607670] br-lan: port 1(lan1) entered blocking state
[ 59.607684] br-lan: port 1(lan1) entered forwarding state
[15351.219912] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/usxgmii link mode
root@APBureau4:~# ifconfig eth2 up
root@APBureau4:~# dmesg | tail
[ 58.980755] br-lan: port 5(phy0-ap0) entered forwarding state
[ 59.607616] mt7530-mmio 15020000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[ 59.607670] br-lan: port 1(lan1) entered blocking state
[ 59.607684] br-lan: port 1(lan1) entered forwarding state
[15351.219912] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/usxgmii link mode
[15355.307266] device: 'i2c:sfp2': device_add
[15355.307515] PM: Adding info for No Bus:i2c:sfp2
[15382.608963] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/usxgmii link mode
[15409.969346] device: 'i2c:sfp1': device_add
[15409.969504] PM: Adding info for No Bus:i2c:sfp1
ok, so devices are up. Let’s inspect them:
root@APBureau4:~# ethtool -m eth2
Identifier : 0x03 (SFP)
Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID)
Connector : 0x07 (LC)
Transceiver codes : 0x00 0x00 0x00 0x00 0x00 0x00 0x40 0x00 0x00
Transceiver type : FC: Twisted Pair (TP)
Encoding : 0x01 (8B/10B)
BR, Nominal : 3100MBd
Rate identifier : 0x00 (unspecified)
Length (SMF,km) : 0km
Length (SMF) : 0m
Length (50um) : 0m
Length (62.5um) : 0m
Length (Copper) : 0m
Length (OM3) : 0m
Laser wavelength : 0nm
Vendor name : OEM
Vendor OUI : 00:00:00
Vendor PN : SFP-2G5
Vendor rev : 1.0
Option values : 0x00 0x18
Option : TX_FAULT implemented
Option : TX_DISABLE implemented
BR margin, max : 0%
BR margin, min : 0%
Vendor SN : 2G522112324218
Date code : 220801
root@APBureau4:~# dmesg | tail
[ 58.980755] br-lan: port 5(phy0-ap0) entered forwarding state
[ 59.607616] mt7530-mmio 15020000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[ 59.607670] br-lan: port 1(lan1) entered blocking state
[ 59.607684] br-lan: port 1(lan1) entered forwarding state
[15351.219912] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/usxgmii link mode
[15355.307266] device: 'i2c:sfp2': device_add
[15355.307515] PM: Adding info for No Bus:i2c:sfp2
[15382.608963] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/usxgmii link mode
[15409.969346] device: 'i2c:sfp1': device_add
[15409.969504] PM: Adding info for No Bus:i2c:sfp1
root@APBureau4:~# ethtool -m eth1
Identifier : 0x03 (SFP)
Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID)
Connector : 0x07 (LC)
Transceiver codes : 0x00 0x00 0x00 0x00 0x00 0x00 0x40 0x00 0x00
Transceiver type : FC: Twisted Pair (TP)
Encoding : 0x01 (8B/10B)
BR, Nominal : 3100MBd
Rate identifier : 0x00 (unspecified)
Length (SMF,km) : 0km
Length (SMF) : 0m
Length (50um) : 0m
Length (62.5um) : 0m
Length (Copper) : 0m
Length (OM3) : 0m
Laser wavelength : 0nm
Vendor name : OEM
Vendor OUI : 00:00:00
Vendor PN : SFP-2G5
Vendor rev : 1.0
Option values : 0x00 0x18
Option : TX_FAULT implemented
Option : TX_DISABLE implemented
BR margin, max : 0%
BR margin, min : 0%
Vendor SN : 2G522112324218
Date code : 220801
root@APBureau4:~# ethtool eth1
Settings for eth1:
Supported ports: [ MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
10000baseT/Full
2500baseX/Full
1000baseKX/Full
10000baseKX4/Full
10000baseKR/Full
1000baseX/Full
10000baseCR/Full
10000baseSR/Full
10000baseLR/Full
10000baseLRM/Full
10000baseER/Full
2500baseT/Full
5000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
10000baseT/Full
2500baseX/Full
1000baseKX/Full
10000baseKX4/Full
10000baseKR/Full
1000baseX/Full
10000baseCR/Full
10000baseSR/Full
10000baseLR/Full
10000baseLRM/Full
10000baseER/Full
2500baseT/Full
5000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: on
Port: MII
PHYAD: 0
Transceiver: internal
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: no
root@APBureau4:~# dmesg | tail
[ 58.980755] br-lan: port 5(phy0-ap0) entered forwarding state
[ 59.607616] mt7530-mmio 15020000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[ 59.607670] br-lan: port 1(lan1) entered blocking state
[ 59.607684] br-lan: port 1(lan1) entered forwarding state
[15351.219912] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/usxgmii link mode
[15355.307266] device: 'i2c:sfp2': device_add
[15355.307515] PM: Adding info for No Bus:i2c:sfp2
[15382.608963] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/usxgmii link mode
[15409.969346] device: 'i2c:sfp1': device_add
[15409.969504] PM: Adding info for No Bus:i2c:sfp1
so far, no luck … let’s get some coffee …
root@APBureau4:~# dmesg | tail
[15355.307266] device: 'i2c:sfp2': device_add
[15355.307515] PM: Adding info for No Bus:i2c:sfp2
[15382.608963] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/usxgmii link mode
[15409.969346] device: 'i2c:sfp1': device_add
[15409.969504] PM: Adding info for No Bus:i2c:sfp1
[15956.549344] sfp sfp2: no PHY detected
[15956.549374] mtk_soc_eth 15100000.ethernet eth1: switched to inband/2500base-x link mode
[15956.555803] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 2.5Gbps/Full - flow control off
[16011.209433] sfp sfp1: no PHY detected
[16011.209463] mtk_soc_eth 15100000.ethernet eth2: switched to inband/2500base-x link mode
root@APBureau4:~# ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes: 2500baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 2500baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 2500Mb/s
Duplex: Full
Auto-negotiation: off
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
So we were trying to find out which module you have, by peeking around with i2cdump. See if you have the RTL8221B on Rollball SFP module. Somehow, we did not get the right output to determine this.
You now have a module that reports it’s supported interface mode via eeprom and actually has link up. However, the PHY is not recognised (unknown vendor & product string).
I still did not check this myself on R4, but I assume the R4 has the same issue with 2500base-x as the R3.
Quick fix:
ethtool -s eth1 autoneg off
This should setup the MAC without auto-negotiation and traffic should pass. You can do the same with a patch that adds a quirk to disable auto-negotiation for this sfp module.
The module is now treated as if it is an optical module.
To gain control over the PHY (If it is the RTL8221B behind Rollball protocol) you need to either:
Use a patch to add a fixup that matches your vendor/product string.
Change product string on the sfp module’s eeprom (I have a tool that makes this easier).
But this is only useful If it is the RTL8221B behind Rollball protocol.
More can be found on this in other topics on the forum.
Your patches actually make it work…
This latest kernel is without your patches (buth with mdio/i2c multiplexers compiled in), the previous one was with your patches but no mdio and limited i2c. I’ll combine them
Yes, I have tried with a fiber connected. When i plug this SFP i see really short blink on a LED related for this port but nothing in a dmesg. (sfp1 is a port which i am using for this GPON-SFP)
root@r1:~# dmesg | grep sfp
[ 10.012336] sfp sfp1: Host maximum power 3.0W
[ 10.017183] sfp sfp2: Host maximum power 3.0W
[ 10.342437] sfp sfp2: module CISCO-FINISAR FCBG110SD1C01-CS rev A sn FIW1952056K-A dc 151224
root@r1:~#
I was talking with a producer of a leox - leolabs, and they told me that currently it is not possible to change LOS behaviour.
Also for BPI-R3, small correction i was testing different SFP. It was Opton GP801R - clone of vsol v2801f.
[ 17.482679] sfp sfp-1: Switching to reading EEPROM to one byte at a time
[ 17.603894] sfp sfp-1: module OEM V2801F rev 1.0 sn 202302270087 dc 230228
[ 17.629150] sfp sfp-1: skipping hwmon device registration due to broken EEPROM
[ 17.636376] sfp sfp-1: diagnostic EEPROM area cannot be read atomically to guarantee data coherency
Is the mac up (eth1/eth2)? What does ethtool say (with and without -m)…i only see ethtool and dmesg from janpieter
Any other messages like LOS for mac or sfp in dmesg? You message point to broken eeprom (i guess crc mismatch)…maybe you need quirk to ignore this in kernel
Opton GP801R in BPI-R3 was working and i was able to use it for some time (was not stable, so not using currently). So we can forget about this in this topic. Sorry for making mess in this thread.
Back to BPI-R4 and LEOX LXT-010S-H. Any idea why this is working in Mikrotik switch and not working in BPI-R4? (not detected with/without fiber connected)