[BPI-R3] Which GPON ONU is working?

Good luck with you pc

Could it be that this los signal is inverted? I wonder why it switches first from 1 to 0 and then the opposite

Also good luck to @dale… currently have similar issue…made a new card for r3 and it cannot read the card in uboot…same as some users report

Perhapse… Or it just does that during boot…

If it is inverted, then in the eeprom SFP_OPTIONS_LOS_INVERTED should be set and the kernel can take it in to account… should…

I really think he needs fibre link up. At least see what is does to the LOS pin.

You are welcome to use my ATF fork and skip u-boot :wink:

Thanks guys! I just need to find time to figure out what’s wrong

No,i need uboot to dynamically load different kernels from tftp and sdcard.

But back to topic…maybe we can ignore the los-pin for now with the quirk…but of course it needs to be recognized the right way without any eeprom crc errors

Why don’t we look in the source code of the debian that works well with ONT to find out what works and why it works? the answer must be there.

I have looked into it but not yet found something relevant…it has same quirks as mainline, sfp pins are defined (do not know where @dangowrt see that these are ignored),only sfp is defined as module,but this should not matter

Vs

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts#n125

So basicly same…and vendor kernel does not set the 3w setting

btw. after being off some time, my r3 booted up fine with same card…very strange

and what about what @ericwoud is suggesting ?

I think that with each assumption it is necessary to go to see in the source code of the debian and to compare.

Edit:

i ordered from ebay another ONT a few days ago, but this time with the original untouched firmware.

Actually my 2 ONT doesn’t have the original firmware…they were flashed with the fs.com ONT firmware so maybe it will change something…

Why not give it a try? You will need to hook up the fibre and set that link up at one point. Let’s try it now. You may be surprised that eth1 will go up with it the fibre link going up.

i don’t think so because i already tested. And when i use the media converter, it works without the fiber cable, so…

and it also works when i use the debian image, whitout the fiber.

i was refering to what you said here

This part? Yep, it will be quite useful for debugging your issue to see if you can get the los pin low this way. We need this step. Then on to the next if it still does not work

to disconnect the fiber, i have to wait because my wife is watching the TV right now, i can’t touch anything else i’ll have to sleep in the car tonight :joy:

btw what should i do once the fiber is connected, What information do I need to retrieve?

Same as before but leave autoneg on (skip switching it off)

And debug log from moment plug in module …

OK so i tested with the fiber link in the ONT.

I started the BPI without the module, once it finished booting i plugged the fiber in the module, and i plugged the module in the BPI.

what is displayed in the shell once the module has been inserted.

root@OpenWrt:/# [   64.572112] sfp sfp-1: mod-def0 0 -> 1
[   64.575876] sfp sfp-1: SM: enter empty:up:down event insert
[   64.581441] sfp sfp-1: SM: exit probe:up:down
[   64.887129] sfp sfp-1: SM: enter probe:up:down event timeout
[   64.922433] sfp sfp-1: module ALCATELLUCENT    G010SP           rev 10   sn ALCLFAB44018     dc 161205
[   64.932022] sfp sfp-1: tx disable 1 -> 0
[   64.935954] sfp sfp-1: SM: exit present:up:wait
[   64.980040] sfp sfp-1: los 0 -> 1
[   64.983346] sfp sfp-1: SM: enter present:up:wait event los_high
[   64.989253] sfp sfp-1: SM: exit present:up:wait
[   64.993772] sfp sfp-1: SM: enter present:up:wait event timeout
[   64.999593] sfp sfp-1: SM: exit present:up:wait_los
[  111.100005] hwmon hwmon4: temp1_input not attached to any thermal zone
[  124.418290] sfp sfp-1: los 1 -> 0
[  124.421618] sfp sfp-1: SM: enter present:up:wait_los event los_low
[  124.427791] sfp sfp-1: SM: exit present:up:link_up
[  124.427812] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 2.5Gbps/Full - flow control off
[  124.441021] br-wan: port 1(eth1) entered blocking state
[  124.446236] br-wan: port 1(eth1) entered forwarding state

ip a

root@OpenWrt:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 qdisc mq state UP qlen 1000
    link/ether 1e:13:38:0d:33:1a brd ff:ff:ff:ff:ff:ff
    inet6 fe80::1c13:38ff:fe0d:331a/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 1e:13:38:0d:33:1b brd ff:ff:ff:ff:ff:ff
    inet6 fe80::1c13:38ff:fe0d:331b/64 scope link
       valid_lft forever preferred_lft forever
4: wan@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-wan state LOWERLAYERDOWN qlen 1000
    link/ether 1e:13:38:0d:33:1b brd ff:ff:ff:ff:ff:ff
5: lan1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 1e:13:38:0d:33:1a brd ff:ff:ff:ff:ff:ff
6: lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 1e:13:38:0d:33:1a brd ff:ff:ff:ff:ff:ff
7: lan3@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 1e:13:38:0d:33:1a brd ff:ff:ff:ff:ff:ff
8: lan4@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 1e:13:38:0d:33:1a brd ff:ff:ff:ff:ff:ff
9: sfp2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 1e:13:38:0d:33:1a brd ff:ff:ff:ff:ff:ff
10: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:0c:43:26:60:00 brd ff:ff:ff:ff:ff:ff
11: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 1e:13:38:0d:33:1c brd ff:ff:ff:ff:ff:ff
19: br-lan: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 1e:13:38:0d:33:1a brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global br-lan
       valid_lft forever preferred_lft forever
    inet6 fddb:d0d7:1f6b::1/60 scope global tentative noprefixroute
       valid_lft forever preferred_lft forever
20: br-wan: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 1e:13:38:0d:33:1b brd ff:ff:ff:ff:ff:ff

I noticed, despite i added the ont interface in /etc/config/network, that there is no route to 192.168.20.0/24 so i added it manualy

root@OpenWrt:/# ip route add 192.168.20.0/24 dev eth1
root@OpenWrt:/# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 br-lan
192.168.20.0    *               255.255.255.0   U     0      0        0 eth1
root@OpenWrt:/# ping 192.168.20.10
PING 192.168.20.10 (192.168.20.10): 56 data bytes
^C
--- 192.168.20.10 ping statistics ---
34 packets transmitted, 0 packets received, 100% packet loss
root@OpenWrt:/#

Still no luck ! no ping

ethtool eth1

root@OpenWrt:/# 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: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  2500baseX/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 2500Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: FIBRE
        PHYAD: 0
        Transceiver: internal
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
        Link detected: yes
root@OpenWrt:/#

ethtool -m eth1

root@OpenWrt:/# ethtool -m eth1
        Identifier                                : 0x03 (SFP)
        Extended identifier                       : 0x04 (GBIC/SFP defined by 2-wire interface ID)
        Connector                                 : 0x01 (SC)
        Transceiver codes                         : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
        Encoding                                  : 0x03 (NRZ)
        BR, Nominal                               : 2500MBd
        Rate identifier                           : 0x00 (unspecified)
        Length (SMF,km)                           : 0km
        Length (SMF)                              : 20000m
        Length (50um)                             : 0m
        Length (62.5um)                           : 0m
        Length (Copper)                           : 0m
        Length (OM3)                              : 0m
        Laser wavelength                          : 276nm
        Vendor name                               : @@B@@A_______
        Vendor OUI                                : 00:00:00
        Vendor PN                                 : F___AP__________
        Vendor rev                                : 00
        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                                 : @LC@D@@_________
        Date code                                 : 140001
        Optical diagnostics support               : Yes
        Laser bias current                        : 8.796 mA
        Laser output power                        : 1.7223 mW / 2.36 dBm
        Receiver signal average optical power     : 0.0139 mW / -18.57 dBm
        Module temperature                        : 33.37 degrees C / 92.06 degrees F
        Module voltage                            : 3.3312 V
        Alarm/warning flags implemented           : Yes
        Laser bias current high alarm             : Off
        Laser bias current low alarm              : Off
        Laser bias current high warning           : Off
        Laser bias current low warning            : Off
        Laser output power high alarm             : Off
        Laser output power low alarm              : Off
        Laser output power high warning           : Off
        Laser output power low warning            : Off
        Module temperature high alarm             : Off
        Module temperature low alarm              : Off
        Module temperature high warning           : Off
        Module temperature low warning            : Off
        Module voltage high alarm                 : Off
        Module voltage low alarm                  : Off
        Module voltage high warning               : Off
        Module voltage low warning                : Off
        Laser rx power high alarm                 : Off
        Laser rx power low alarm                  : Off
        Laser rx power high warning               : Off
        Laser rx power low warning                : Off
        Laser bias current high alarm threshold   : 90.000 mA
        Laser bias current low alarm threshold    : 0.000 mA
        Laser bias current high warning threshold : 70.000 mA
        Laser bias current low warning threshold  : 0.000 mA
        Laser output power high alarm threshold   : 3.1622 mW / 5.00 dBm
        Laser output power low alarm threshold    : 0.8912 mW / -0.50 dBm
        Laser output power high warning threshold : 2.8183 mW / 4.50 dBm
        Laser output power low warning threshold  : 1.0000 mW / 0.00 dBm
        Module temperature high alarm threshold   : 100.00 degrees C / 212.00 degrees F
        Module temperature low alarm threshold    : -50.00 degrees C / -58.00 degrees F
        Module temperature high warning threshold : 95.00 degrees C / 203.00 degrees F
        Module temperature low warning threshold  : -40.00 degrees C / -40.00 degrees F
        Module voltage high alarm threshold       : 3.6000 V
        Module voltage low alarm threshold        : 3.0000 V
        Module voltage high warning threshold     : 3.5000 V
        Module voltage low warning threshold      : 3.1000 V
        Laser rx power high alarm threshold       : 0.1995 mW / -7.00 dBm
        Laser rx power low alarm threshold        : 0.0015 mW / -28.24 dBm
        Laser rx power high warning threshold     : 0.1584 mW / -8.00 dBm
        Laser rx power low warning threshold      : 0.0020 mW / -26.99 dBm
root@OpenWrt:/#
Vendor name : @@B@@A_______ 
Vendor PN : F___AP__________

There is something wrong here.

omg i have a typo in my /etc/config/network file

config interface 'ont'
        option device 'eth1'
        option proto 'static'
        option ip addr '192.168.20.1'
        option netmask '255.255.255.0'

there is a space here “ip addr”…that’s why no route was created… :upside_down_face:

root@OpenWrt:/# ping 192.168.20.10
PING 192.168.20.10 (192.168.20.10): 56 data bytes
[ 2211.323996] hwmon hwmon4: temp1_input not attached to any thermal zone
[ 2224.455934] sfp sfp-1: los 1 -> 0
[ 2224.459263] sfp sfp-1: SM: enter present:up:wait_los event los_low
[ 2224.465438] sfp sfp-1: SM: exit present:up:link_up
[ 2224.465460] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 2.5Gbps/Full - flow control off
[ 2224.478661] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
64 bytes from 192.168.20.10: seq=20 ttl=64 time=0.745 ms
64 bytes from 192.168.20.10: seq=21 ttl=64 time=0.387 ms
64 bytes from 192.168.20.10: seq=22 ttl=64 time=0.326 ms
64 bytes from 192.168.20.10: seq=23 ttl=64 time=0.303 ms
64 bytes from 192.168.20.10: seq=24 ttl=64 time=0.309 ms
64 bytes from 192.168.20.10: seq=25 ttl=64 time=0.281 ms
64 bytes from 192.168.20.10: seq=26 ttl=64 time=0.285 ms
64 bytes from 192.168.20.10: seq=27 ttl=64 time=0.262 ms
64 bytes from 192.168.20.10: seq=28 ttl=64 time=0.263 ms
64 bytes from 192.168.20.10: seq=29 ttl=64 time=0.254 ms
64 bytes from 192.168.20.10: seq=30 ttl=64 time=0.252 ms
64 bytes from 192.168.20.10: seq=31 ttl=64 time=0.263 ms
64 bytes from 192.168.20.10: seq=32 ttl=64 time=0.252 ms
64 bytes from 192.168.20.10: seq=33 ttl=64 time=0.324 ms
64 bytes from 192.168.20.10: seq=34 ttl=64 time=0.260 ms
64 bytes from 192.168.20.10: seq=35 ttl=64 time=0.267 ms
^C
--- 192.168.20.10 ping statistics ---
36 packets transmitted, 16 packets received, 55% packet loss
round-trip min/avg/max = 0.252/0.314/0.745 ms
root@OpenWrt:/#

:star_struck::star_struck::star_struck::star_struck::star_struck::star_struck:

@ericwoud you were right !!! Thank you so much for insisting! :sweat_smile:

i don’t know why the cable is necessary with openwrt and not with debian, anyway looks like it works now. :+1::clap:

image

and a HTOP during the speedtest to check if the hw nat is working :heart_eyes:

image

Congratulations! Gj @ericwoud

1 Like

Now i have to check if it works with the standard openwrt Snapshot/RC3 to see if all the tricks we added in your image @Dale are really necessary