51

Odp: SFP plugin dla LuCI

Ja nie kompiluję wersji rozwojowej której ty używasz.

Tu: https://dl.eko.one.pl/test/ jest dla wydania stabilnego.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

52 (edytowany przez Payti 2024-09-18 21:22:25)

Odp: SFP plugin dla LuCI

@Cezary ethtool-full_6.10-1_aarch64_cortex-a53.ipk z twojej kompilacji działa u mnie ok.

Jednakżę --json dla komendy ethtool --json -m także nie działa, przynajmniej teraz informuje 'JSON output not available for this subcommand':

root@BananaPi_BPi-R3 /root [#]# ethtool -h
ethtool version 6.10
..
root@BananaPi_BPi-R3 /root [#]# ethtool --json -m eth1
ethtool: bad command line argument(s)
JSON output not available for this subcommand
For more information run ethtool -h
root@BananaPi_BPi-R3 /root [#]#

Także pozostaje poprawić parser aby działał z tekstowym output ...
No i tu potrzebuję wsparcia ...

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

53 (edytowany przez Payti 2024-09-19 15:05:37)

Odp: SFP plugin dla LuCI

Output tekstowy z ethtool -m eth1 jest taki:

root@BananaPi_BPi-R3 /root [#]# 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 0x02 0x00 0x00 0x00 0x00 0x20
        Transceiver type                          : Ethernet: 1000BASE-LX
        Transceiver type                          : Extended: 100G SWDM4
        Encoding                                  : 0x03 (NRZ)
        BR, Nominal                               : 3200MBd
        Rate identifier                           : 0x00 (unspecified)
        Length (SMF,km)                           : 40km
        Length (SMF)                              : 25500m
        Length (50um)                             : 0m
        Length (62.5um)                           : 0m
        Length (Copper)                           : 0m
        Length (OM3)                              : 0m
        Laser wavelength                          : 1310nm
        Vendor name                               : ALCATELLUCENT
        Vendor OUI                                : 20:20:20
        Vendor PN                                 : 3FE46541AA
        Vendor rev                                : 0001
        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                                 : ALCLFAB03537
        Date code                                 : 170314_U
        Optical diagnostics support               : Yes
        Laser bias current                        : 10.416 mA
        Laser output power                        : 1.6256 mW / 2.11 dBm
        Receiver signal average optical power     : 0.0062 mW / -22.08 dBm
        Module temperature                        : 50.85 degrees C / 123.53 degrees F
        Module voltage                            : 3.2999 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   : 40.000 mA
        Laser bias current low alarm threshold    : 2.800 mA
        Laser bias current high warning threshold : 40.000 mA
        Laser bias current low warning threshold  : 2.800 mA
        Laser output power high alarm threshold   : 3.2000 mW / 5.05 dBm
        Laser output power low alarm threshold    : 1.1220 mW / 0.50 dBm
        Laser output power high warning threshold : 3.2000 mW / 5.05 dBm
        Laser output power low warning threshold  : 1.1220 mW / 0.50 dBm
        Module temperature high alarm threshold   : 85.00 degrees C / 185.00 degrees F
        Module temperature low alarm threshold    : -40.00 degrees C / -40.00 degrees F
        Module temperature high warning threshold : 85.00 degrees C / 185.00 degrees F
        Module temperature low warning threshold  : -40.00 degrees C / -40.00 degrees F
        Module voltage high alarm threshold       : 3.4650 V
        Module voltage low alarm threshold        : 3.0410 V
        Module voltage high warning threshold     : 3.4650 V
        Module voltage low warning threshold      : 3.0410 V
        Laser rx power high alarm threshold       : 0.1600 mW / -7.96 dBm
        Laser rx power low alarm threshold        : 0.0015 mW / -28.24 dBm
        Laser rx power high warning threshold     : 0.1600 mW / -7.96 dBm
        Laser rx power low warning threshold      : 0.0015 mW / -28.24 dBm
root@BananaPi_BPi-R3 /root [#]#

Zmieniłem aby wywalić --json w wywołaniu ethtool'a w /usr/libexec/rpcd/sfp na:

function get_ethtool_output(interface)
    return_wrapper = {}
    local ethtool_success, ethtool_return, ethtool_stdout,
        ethtool_stderr = utils.executeex("ethtool -m utils.quote_arg(interface)")
..

Zmieniłem parsowanie dla 'Vendor name' w /www/luci-static/resources/view/network/sfp.js

                if (typeof(module_info) == "object") {
                        if ("Vendor name" in module_info) {
                                let vendorname_text = module_info["Vendor name"]
                                fields.set(_("Vendor"), vendorname_text);
                        }
 

Co jest nie tak że nie działa?
Nie mam kolejnej linii informacyjnej z 'Vendor' ...

Z koleji jak zmodyfikuję linię wywołania ethtool tak:

ethtool_stderr = utils.executeex("ethtool -m \"" .. utils.quote_arg(interface) .. "\"")

to nie ma parsowania, jak na screen -->> https://pasteboard.co/tUV4Q3PdzKSE.png

Co radzicie?

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

54

Odp: SFP plugin dla LuCI

1.
utils.executeex("ethtool -m utils.quote_arg(interface)")

to jest źle bo woła ethtool -m utils.quote_arg(interface)

To są same podstawy jakiegokolwiek programowania. Jak masz

utils.executeex("ethtool -m " + utils.quote_arg(interface)  itd

to zawartość zmienna interface jest dodawana do ciągu znaków i razem tworzą ciąg znaków który do wykonania  będzie interpretowany jako ethtool -m eth1 np. Jak robiłeś "ethtool -m utils.quote_arg(interface)" to całość jest traktowana jako polecenie i które jest bzdurą,  bo ethtool nie ma argumentu o nazwie "utils.quote_arg(interface)".

2.

if (typeof(module_info) == "object") {
                        if ("Vendor name" in module_info) {
                                let vendorname_text = module_info["Vendor name"]
                                fields.set(_("Vendor"), vendorname_text);
                        }

A co zwraca ubus call sfp status? Czy tam jest to wołane w js? Jeżeli nic to nadal parser źle robiłeś.

3.
Radzę żebyś przejrzał kod. Bo źle w takim razie interpretujesz dane.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

55 (edytowany przez Payti 2024-09-19 15:12:55)

Odp: SFP plugin dla LuCI

Przy takim wpisie:

ethtool_stderr = utils.executeex("ethtool --json -m \"" .. utils.quote_arg(interface) .. "\"")

'ubus call sfp status' zwraca

root@BananaPi_BPi-R3 /root [#]# ubus call sfp status
{
        "sfp2": {
                "status": {
                        "present": false,
                        "link_up": false
                }
        },
        "eth1": {
                "status": {
                        "txfault": false,
                        "link_up": true,
                        "present": true,
                        "rxlos": false
                }
        }
}
root@BananaPi_BPi-R3 /root [#]#

zaś przy takim wpisie

ethtool_stderr = utils.executeex("ethtool -m " + utils.quote_arg(interface))

'ubus call sfp status' zwraca:

root@BananaPi_BPi-R3 /root [#]# ubus call sfp status
Command failed: No response
root@BananaPi_BPi-R3 /root [#]#

No więc nie wiem jak ma być poprawnie bez --json ;(

Pozdr,

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

56

Odp: SFP plugin dla LuCI

Ubus zawsze zwraca jsona. Więc to co masz w lua ma zwracać jsona. Więc to co zwraca ethtool -m musisz przerobić na jsona żeby mógł być zwrócony jako json. Nie czysty tekst, tylko json - wiec albo parsujesz ten tekst co wyszedł z ethtoola i przerabiasz go na jsona albo zwracasz jsona z tekstem a parsujesz to w javaskrypcie na stronie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

57

Odp: SFP plugin dla LuCI

Rozumiem. A możesz skompilować ethtool'a z tymi patchami w takim razie:

->> https://patchwork.kernel.org/project/ne … se.com.au/

wink

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

58

Odp: SFP plugin dla LuCI

Późnym wieczorem.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

59

Odp: SFP plugin dla LuCI

Wielkie dzięki ...

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

60

Odp: SFP plugin dla LuCI

Ta łatka nie wchodzi ani na wersje 6.10, ani na aktualne źródła. A średnio mi się chce przerabiać kod.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

61

Odp: SFP plugin dla LuCI

A jak sprawdzić jaka wersja była ethtool'a w okolicach daty: 2022.07.04 ?

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

62

Odp: SFP plugin dla LuCI

Wejdź na gita z ethtoolem i przeszukaj commity.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

63

Odp: SFP plugin dla LuCI

O znalazłem, taka jest ostatnia przed 2022.07.04 --> https://git.kernel.org/pub/scm/network/ … g/?h=v5.18
Kolejna jest z sierpnia 2022. Spróbowałbyś skompilować z patchami?

Pozdr,

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

64

Odp: SFP plugin dla LuCI

Nie wchodzą.

patching file ethtool.c
Hunk #1 FAILED at 4897.
Hunk #2 FAILED at 4916.
Hunk #3 FAILED at 5925.
3 out of 3 hunks FAILED -- saving rejects to file ethtool.c.rej
patching file sff-common.c
Hunk #1 FAILED at 62.
Hunk #2 succeeded at 324 with fuzz 1.
1 out of 2 hunks FAILED -- saving rejects to file sff-common.c.rej
patching file sff-common.h
Hunk #1 FAILED at 134.
Hunk #2 succeeded at 199 with fuzz 2.
1 out of 2 hunks FAILED -- saving rejects to file sff-common.h.rej
patching file sfpdiag.c
Hunk #2 succeeded at 240 with fuzz 1.
Hunk #3 FAILED at 304.
Hunk #4 FAILED at 325.
2 out of 4 hunks FAILED -- saving rejects to file sfpdiag.c.rej
patching file sfpid.c
Hunk #1 FAILED at 24.
Hunk #2 FAILED at 40.
Hunk #3 FAILED at 276.
Hunk #4 FAILED at 423.
Hunk #5 FAILED at 485.
Hunk #6 FAILED at 500.
6 out of 6 hunks FAILED -- saving rejects to file sfpid.c.rej
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

65 (edytowany przez Payti 2024-09-19 20:22:14)

Odp: SFP plugin dla LuCI

A spróbuj proszę na jedna niżej 5.17 bo od tej wersji ethtoola dodali JSON Support ...
-->> https://git.kernel.org/pub/scm/network/ … g/?h=v5.17

albo ten commit
--> https://git.kernel.org/pub/scm/network/ … 68132e560c

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

66

Odp: SFP plugin dla LuCI

Nie, serio starczy tego. Nie mam czasu na zabawy, tym bardziej że oficjalnie i tak tego od dwóch lat nie ma w ethtoolu. Napisz parser do tekstu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

67

Odp: SFP plugin dla LuCI

Nie ma szans, że napiszę sam parser do tekstu ... ;(

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

68 (edytowany przez Payti 2024-09-20 21:39:51)

Odp: SFP plugin dla LuCI

@Cezary ostatnia prośba w temacie. Ogarnąłem ten patch --json dla --module-info po kontakcie z autorami.
Wchodzi najwyżej na wersję ethtool-6.3 bez błedów (patchują się poprawnie wersje ethtool 5.19 do 6.3)

root@vuduo4k:~# cd ethtool-6.3
root@vuduo4k:~/ethtool-6.3# ls -al
drwxrwxr-x    6 root     root          4096 Sep 20 22:20 .
drwx------    9 root     root          4096 Sep 20 22:20 ..
-rw-rw-r--    1 root     root           294 May  8  2023 .gitignore
-rw-rw-r--    1 root     root           296 May  8  2023 AUTHORS
-rw-rw-r--    1 root     root         18092 May  8  2023 COPYING
-rw-rw-r--    1 root     root         11584 May  8  2023 ChangeLog
-rw-rw-r--    1 root     root           100 May  8  2023 LICENSE
-rw-rw-r--    1 root     root          2526 May  8  2023 Makefile.am
-rw-rw-r--    1 root     root         29511 May  8  2023 NEWS
-rw-rw-r--    1 root     root           127 May  8  2023 README
-rw-rw-r--    1 root     root          7255 May  8  2023 amd8111e.c
-rw-rw-r--    1 root     root           624 May  8  2023 at76c50x-usb.c
-rwxrwxr-x    1 root     root           185 May  8  2023 autogen.sh
-rw-rw-r--    1 root     root          3530 May  8  2023 bnxt.c
-rw-rw-r--    1 root     root         29353 May  8  2023 cmis.c
-rw-rw-r--    1 root     root          7611 May  8  2023 cmis.h
-rw-rw-r--    1 root     root          5214 May  8  2023 common.c
-rw-rw-r--    1 root     root          1398 May  8  2023 common.h
-rw-rw-r--    1 root     root          3305 May  8  2023 configure.ac
-rw-rw-r--    1 root     root          4027 May  8  2023 cpsw.c
-rw-rw-r--    1 root     root         18509 May  8  2023 de2104x.c
-rw-rw-r--    1 root     root         31007 May  8  2023 dsa.c
-rw-rw-r--    1 root     root          6649 May  8  2023 e100.c
-rw-rw-r--    1 root     root         27571 May  8  2023 e1000.c
-rw-rw-r--    1 root     root          7601 May  8  2023 et131x.c
-rw-r--r--    1 root     root         46327 Sep 20 21:18 ethtool-1-2-ethtool-add-JSON-output-to---module-info.diff
-rw-r--r--    1 root     root           397 Sep 20 21:18 ethtool-2-2-ethtool-remove-restriction-on-ioctl-commands-having-JSON-output.diff
-rw-rw-r--    1 root     root         47824 May  8  2023 ethtool.8.in
-rw-rw-r--    1 root     root        161435 May  8  2023 ethtool.c
-rw-rw-r--    1 root     root           817 May  8  2023 ethtool.spec.in
-rw-rw-r--    1 root     root          7069 May  8  2023 fec.c
-rw-rw-r--    1 root     root          2584 May  8  2023 fec_8xx.c
-rw-rw-r--    1 root     root          2321 May  8  2023 fjes.c
-rw-rw-r--    1 root     root          9457 May  8  2023 fsl_enetc.c
-rw-rw-r--    1 root     root          8807 May  8  2023 ibm_emac.c
-rw-rw-r--    1 root     root         29709 May  8  2023 igb.c
-rw-rw-r--    1 root     root         11221 May  8  2023 igc.c
-rw-rw-r--    1 root     root         12925 May  8  2023 internal.h
-rw-rw-r--    1 root     root          5049 May  8  2023 ixgb.c
-rw-rw-r--    1 root     root         39275 May  8  2023 ixgbe.c
-rw-rw-r--    1 root     root          4368 May  8  2023 ixgbevf.c
-rw-rw-r--    1 root     root          4948 May  8  2023 json_print.c
-rw-rw-r--    1 root     root          1757 May  8  2023 json_print.h
-rw-rw-r--    1 root     root          7518 May  8  2023 json_writer.c
-rw-rw-r--    1 root     root          3000 May  8  2023 json_writer.h
-rw-rw-r--    1 root     root          2276 May  8  2023 lan743x.c
-rw-rw-r--    1 root     root          4113 May  8  2023 lan78xx.c
-rw-rw-r--    1 root     root           679 May  8  2023 list.h
-rw-rw-r--    1 root     root         13926 May  8  2023 marvell.c
-rw-rw-r--    1 root     root         34489 May  8  2023 natsemi.c
drwxrwxr-x    2 root     root          4096 May  8  2023 netlink
-rw-rw-r--    1 root     root          6943 May  8  2023 pcnet32.c
-rw-rw-r--    1 root     root         36777 May  8  2023 qsfp.c
-rw-rw-r--    1 root     root         21840 May  8  2023 qsfp.h
-rw-rw-r--    1 root     root         20822 May  8  2023 realtek.c
-rw-rw-r--    1 root     root         42460 May  8  2023 rxclass.c
drwxrwxr-x    2 root     root          4096 May  8  2023 scripts
-rw-rw-r--    1 root     root        140808 May  8  2023 sfc.c
-rw-rw-r--    1 root     root          9430 May  8  2023 sff-common.c
-rw-rw-r--    1 root     root          6911 May  8  2023 sff-common.h
-rw-rw-r--    1 root     root         10245 May  8  2023 sfpdiag.c
-rw-rw-r--    1 root     root         16175 May  8  2023 sfpid.c
drwxrwxr-x    3 root     root          4096 May  8  2023 shell-completion
-rw-rw-r--    1 root     root          5246 May  8  2023 smsc911x.c
-rw-rw-r--    1 root     root          2380 May  8  2023 stmmac.c
-rw-rw-r--    1 root     root         13829 May  8  2023 test-cmdline.c
-rw-rw-r--    1 root     root          7229 May  8  2023 test-common.c
-rw-rw-r--    1 root     root         24440 May  8  2023 test-features.c
-rw-rw-r--    1 root     root           939 May  8  2023 tg3.c
-rw-rw-r--    1 root     root          5034 May  8  2023 tse.c
drwxrwxr-x    3 root     root          4096 May  8  2023 uapi
-rw-rw-r--    1 root     root           680 May  8  2023 vioc.c
-rw-rw-r--    1 root     root          5908 May  8  2023 vmxnet3.c
root@vuduo4k:~/ethtool-6.3# patch -p1 < ethtool-1-2-ethtool-add-JSON-output-to---module-info.diff
patching file ethtool.c
patching file sff-common.c
patching file sff-common.h
patching file sfpdiag.c
patching file sfpid.c
root@vuduo4k:~/ethtool-6.3# patch -p1 < ethtool-2-2-ethtool-remove-restriction-on-ioctl-commands-having-JSON-output.diff
patching file ethtool.c
root@vuduo4k:~/ethtool-6.3#

Wystawiłem spatchowany ethtool-6.3_patched.tar.gz

-->> https://crivolt.pl/ethtool-6.3_patched.tar.gz

Gorąca prośba jak znajdziesz chwilę o skompilowanie dla BPI-R3, nie mam jak postawić środowiska do kompilacji sad
aby to zrobić samemu.

Z góry dziękuję i sorki za zawracanie d ... wink

Pozdr,

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

69

Odp: SFP plugin dla LuCI

Jest w https://dl.eko.one.pl/test/

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

70 (edytowany przez Payti 2024-09-20 23:22:47)

Odp: SFP plugin dla LuCI

Ślicznie dziękuję.

ethtool 6.3 z patchem działa tak dla mojej wkładki GPON/SFP:

root@BananaPi_BPi-R3 /root [#]# opkg install /tmp/ethtool-full_6.3-1_aarch64_cortex-a53.ipk
Multiple packages (libgcc1 and libgcc1) providing same name marked HOLD or PREFER. Using latest.
Installing ethtool-full (6.3-1) to root...
Configuring ethtool-full.
root@BananaPi_BPi-R3 /root [#]# ethtool --json -m eth1
[
    "identifier": 3,
    "identifier_description": "SFP",
    "extended_identifier": 4,
    "extended_identifier_description": "GBIC/SFP defined by 2-wire interface ID",
    "connector": 1,
    "connector_description": "SC",
    "transceiver_codes": [ 0,0,0,2,0,0,0,0,32 ],
    "transceiver_types": [ "Ethernet: 1000BASE-LX","Extended: 100G SWDM4" ],
    "encoding": 3,
    "encoding_description": "NRZ",
    "bitrate_nominal": 3200,
    "rate_identifier": 0,
    "rate_identifier_description": "unspecified",
    "lengths": {
        "smf_km": {
            "value": 40,
            "unit": "km"
        },
        "smf": {
            "value": 25500,
            "unit": "m"
        },
        "50um": {
            "value": 0,
            "unit": "m"
        },
        "62_5um": {
            "value": 0,
            "unit": "m"
        },
        "copper": {
            "value": 0,
            "unit": "m"
        },
        "om3": {
            "value": 0,
            "unit": "m"
        }
    },
    "laser_wavelength": 1310,
    "vendor_name": "ALCATELLUCENT",
    "vendor_oui": "20:20:20",
    "vendor_pn": "3FE46541AA",
    "vendor_rev": "0001",
    "option_byte1": 0,
    "option_byte2": 26,
    "option_descriptions": [ "RX_LOS implemented","TX_FAULT implemented","TX_DISABLE implemented" ],
    "br_margin_max": 0,
    "br_margin_min": 0,
    "vendor_sn": "ALCLFAB03537",
    "date_code": "170314_U"
},
"optical_diagnostics_supported": true,
"bias_current": 10.226,
"tx_power": 1.6048,
"module_temp": 50.8477,
"module_voltage": 3.2999,
"rx_power": 0.0064,
"rx_power_is_average": true,
"supports_alarms": true,
"alarms": {
    "laser_bias_current_high_alarm": false,
    "laser_bias_current_low_alarm": false,
    "laser_bias_current_high_warning": false,
    "laser_bias_current_low_warning": false,
    "laser_output_power_high_alarm": false,
    "laser_output_power_low_alarm": false,
    "laser_output_power_high_warning": false,
    "laser_output_power_low_warning": false,
    "module_temperature_high_alarm": false,
    "module_temperature_low_alarm": false,
    "module_temperature_high_warning": false,
    "module_temperature_low_warning": false,
    "module_voltage_high_alarm": false,
    "module_voltage_low_alarm": false,
    "module_voltage_high_warning": false,
    "module_voltage_low_warning": false,
    "laser_rx_power_high_alarm": false,
    "laser_rx_power_low_alarm": false,
    "laser_rx_power_high_warning": false,
    "laser_rx_power_low_warning": false
},
"thresholds": {
    "laser_bias_current": {
        "high_alarm": 40,
        "low_alarm": 2.8,
        "high_warning": 40,
        "low_warning": 40
    },
    "laser_output_power": {
        "high_alarm": 3.2,
        "low_alarm": 1.122,
        "high_warning": 1.122,
        "low_warning": 1.122
    },
    "module_temperature": {
        "high_alarm": 85,
        "low_alarm": -40,
        "high_warning": 85,
        "low_warning": 85
    },
    "module_voltage": {
        "high_alarm": 3.465,
        "low_alarm": 3.041,
        "high_warning": 3.465,
        "low_warning": 3.041
    },
    "laser_rx_power": {
        "high_alarm": 0.16,
        "low_alarm": 0.0015,
        "high_warning": 0.0015,
        "low_warning": 0.0015
    }
}root@BananaPi_BPi-R3 /root [#]#
root@BananaPi_BPi-R3 /root [#]# ubus call sfp status
Command failed: No response
root@BananaPi_BPi-R3 /root [#]#

Ale jest problem bo 'ubus call sfp status' nic nie zwraca : Command failed: No response (plugin nic nie wyświetla) i teraz nie wiem w czym problem i co sprawdzić.
Czy może to problem nawiasów [ { lub ich braki w odpowiedzi json ethtool'a? Bo wydaje mi się, że na poczatku brakuje tego { a na końcu tego [.

Przygotowałem jeszcze z patchem wersje ethtool 5.19 i bardzo Cię proszę o kompilację. Może w tej będzie lepiej dla mojej SFP.

-->> https://crivolt.pl/ethtool-5.19_patched.tar.gz

Co myślisz?

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

71

Odp: SFP plugin dla LuCI

Plik lua nie zwraca poprawnego jsona, już ci to pisałem. Ten wynik zwracany przez ethtoola też nie jest poprawnym jsonem składniowo. Trzeba było pisać parser tekstu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

72 (edytowany przez Payti 2024-09-21 22:05:30)

Odp: SFP plugin dla LuCI

Tak myślałem, że to wina składni. Ogólnie teraz nie mam jak (brak czasu) tego przepisać, ale w zimowe wieczory spróbuję to opanować i przepisać by było bez LUA, wprost parsowane z tekstu z ethtool'a i tekstu plików debug/sfp-x/state, parsowanie na strone LuCI skryptami JS. Wiele się nauczyłem z tych zabaw z json i LUA oraz patchowaniem źródeł póki co. Tymczasem potrzebuję by to działało z tego co mam na teraz, także spróbuję znaleźć błędy wpisywania braku nawiasów [ { } ] w pliku sfpid.c/sff-common.c/sfpdiag.c i poprawić. Akurat C+ jest dla mnie bardziej 'friendly'.

Skompilujesz mi jeszcze raz potem ethtoola-6.3_patched z moimi poprawkami ?

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

73 (edytowany przez Payti 2024-09-21 21:51:06)

Odp: SFP plugin dla LuCI

@Cezary gorąca prośba o skompilowanie tej wersji ethtool'a 6.3 po moich modach plików (dla składni json dla -m ) dla BPI-R3:

-->> https://crivolt.pl/ethtool-6.3_patched_ … 9.2024.zip

Dzięki.

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

74 (edytowany przez Payti 2026-03-16 22:58:47)

Odp: SFP plugin dla LuCI

Ok, na teraz ogarnąłem temat.
Skombinowałem sobie wreszcie dla kompilacji OpenWRT dysk SSD na USB 3.0, postawiłem na nim w VB Ubuntu 24.04.1 LTS. Zainstalowałem wg twojego opisu środowisko OpenWRT wg https://eko.one.pl/?p=openwrt-kompilacja
oraz źródła OpenWRT 23.05.04, skompilowałem całe środowisko i obraz dla BPI-R3 wraz z LuCI i ethtool'em, wszystko przebiegło ok.

Poprawiłem błędy składni po patch'ach w plikach .c ethtool-6.3. Skompilowałem pakiet z moim poprawkami i patchami dla BPi-R3.
No i wszystko ładnie ruszyło, wynik ubus call sfp status jest:

root@BananaPi_BPi-R3 /root [#]# ubus call sfp status
{
        "sfp2": {
                "status": {
                        "present": false,
                        "link_up": false
                }
        },
        "eth1": {
                "status": {
                        "txfault": false,
                        "link_up": true,
                        "present": true,
                        "rxlos": false
                },
                "ethtool": {
                        "encoding": 3,
                        "rate_identifier_description": "unspecified",
                        "thresholds": {
                                "laser_output_power": {
                                        "high_alarm": 3.200000,
                                        "high_warning": 1.122000,
                                        "low_alarm": 1.122000,
                                        "low_warning": 1.122000
                                },
                                "module_temperature": {
                                        "high_alarm": 85,
                                        "high_warning": 85,
                                        "low_alarm": -40,
                                        "low_warning": 85
                                },
                                "module_voltage": {
                                        "high_alarm": 3.465000,
                                        "high_warning": 3.465000,
                                        "low_alarm": 3.041000,
                                        "low_warning": 3.041000
                                },
                                "laser_bias_current": {
                                        "high_alarm": 40,
                                        "high_warning": 40,
                                        "low_alarm": 2.800000,
                                        "low_warning": 40
                                },
                                "laser_rx_power": {
                                        "high_alarm": 0.160000,
                                        "high_warning": 0.001500,
                                        "low_alarm": 0.001500,
                                        "low_warning": 0.001500
                                }
                        },
                        "option_byte1": 0,
                        "laser_wavelength": 1310,
                        "bias_current": 10.108000,
                        "lengths": {
                                "smf": {
                                        "value": 25500,
                                        "unit": "m"
                                },
                                "om3": {
                                        "value": 0,
                                        "unit": "m"
                                },
                                "copper": {
                                        "value": 0,
                                        "unit": "m"
                                },
                                "smf_km": {
                                        "value": 40,
                                        "unit": "km"
                                },
                                "50um": {
                                        "value": 0,
                                        "unit": "m"
                                },
                                "62_5um": {
                                        "value": 0,
                                        "unit": "m"
                                }
                        },
                        "rate_identifier": 0,
                        "module_temp": 51.847700,
                        "option_descriptions": [
                                "RX_LOS implemented",
                                "TX_FAULT implemented",
                                "TX_DISABLE implemented"
                        ],
                        "encoding_description": "NRZ",
                        "date_code": "170314_U",
                        "br_margin_min": 0,
                        "bitrate_nominal": 3200,
                        "option_byte2": 26,
                        "extended_identifier": 4,
                        "connector_description": "SC",
                        "alarms": {
                                "laser_rx_power_high_alarm": false,
                                "laser_output_power_low_warning": false,
                                "laser_output_power_low_alarm": false,
                                "laser_output_power_high_alarm": false,
                                "module_temperature_high_warning": false,
                                "module_voltage_low_alarm": false,
                                "module_temperature_low_warning": false,
                                "laser_bias_current_high_warning": false,
                                "laser_rx_power_low_alarm": false,
                                "laser_rx_power_high_warning": false,
                                "module_temperature_low_alarm": false,
                                "module_temperature_high_alarm": false,
                                "module_voltage_high_warning": false,
                                "laser_bias_current_low_warning": false,
                                "laser_bias_current_high_alarm": false,
                                "laser_rx_power_low_warning": false,
                                "laser_output_power_high_warning": false,
                                "module_voltage_low_warning": false,
                                "module_voltage_high_alarm": false,
                                "laser_bias_current_low_alarm": false
                        },
                        "vendor_rev": "0001",
                        "br_margin_max": 0,
                        "vendor_name": "ALCATELLUCENT",
                        "transceiver_codes": [
                                0,
                                0,
                                0,
                                2,
                                0,
                                0,
                                0,
                                0,
                                32
                        ],
                        "vendor_oui": "20:20:20",
                        "transceiver_types": [
                                "Ethernet: 1000BASE-LX",
                                "Extended: 100G SWDM4"
                        ],
                        "identifier_description": "SFP",
                        "connector": 1,
                        "optical_diagnostics_supported": true,
                        "supports_alarms": true,
                        "extended_identifier_description": "GBIC/SFP defined by 2-wire interface ID",
                        "vendor_sn": "ALCLFAB03537",
                        "rx_power": 0.006800,
                        "module_voltage": 3.299900,
                        "tx_power": 1.562500,
                        "rx_power_is_average": true,
                        "identifier": 3,
                        "vendor_pn": "3FE46541AA"
                }
        }
}
root@BananaPi_BPi-R3 /root [#]#

Patch --json dla -m i moje poprawki działają poprawnie. Tak finalnie wygląda plugin 'sfp-diagnostics-luci' także po poprawkach i dodaniu kilku rzeczy dla różnych SFP w LuCI  -> Sieć -> SFP

1
2
3
4
5



Dla zainteresowanych wystawiam gotowe paczki i instrukcję instalacji dla BPI-R3:

1. Zainstalować w OpenWRT pakiety: rpcd-mod-ucode luci-mod-admin-full lua-penlight lua poprzez:
    opkg update
    opkg install rpcd-mod-ucode luci-mod-admin-full lua-penlight lua

2. Skopiować do routera do /tmp plik 'sfp-diagnostics-luci_BPI-R3.zip
-->> sfp-diagnostics-luci_BPI-R3.zip
3. Rozpakować pliki z sfp-diagnostics-luci_BPI-R3/ w odpowiednie katalogi do routera z OpenWRT
4. Skopiować do routera do /tmp patchowany oraz poprawiony i skompilowany plik ethtool-full_6.3-1_aarch64_cortex-a53.ipk
-->> ethtool-full_6.3-1_aarch64_cortex-a53.ipk
5. Zainstalować patchowany ethtool-6.3: ethtool-full_6.3-1_aarch64_cortex-a53.ipk (z patch JSON dla 'ethtool --json -m') poprzez:
    opkg remove ethtool-full lub opkg remove ethtool (jeśli mieliśmy jakikolwiek ethtool już zainstalowany)
    opkg install /tmp/ethtool-full_6.3-1_aarch64_cortex-a53.ipk

Plugin dostępny pod LuCI -> Sieć -> SFP

Jak będzie chwila w zimowe wieczory spróbuję przepisać parsery by nie korzystały z LUA/JSON tylko wprost z output TXT z ethtool'a i plików debug/sfp-x i parsowanie na stronę LuCI skryptami JS. Nie będzie wtedy trzeba instalować patch'owanego ethtool'a, tylko najnowsze dostępne oficjalne buildy.

Pozdrawiam.

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti

75 (edytowany przez Payti 2026-03-16 22:57:40)

Odp: SFP plugin dla LuCI

Zmobilizowałem się wreszcie po aktualizacjach swoich sprzętów do OpenWRT 25.12 na upgrade pakietu SFP dla LuCI.

Przepisałem go wreszcie z LUA do JavaScript i dodałem kilka rzeczy, tak się aktualnie prezentuje w OpenWRT 25.12:

https://ns3274274.ip-5-39-87.eu/sfp/apk/0.png

https://ns3274274.ip-5-39-87.eu/sfp/apk/1.png

https://ns3274274.ip-5-39-87.eu/sfp/apk/2.png

https://ns3274274.ip-5-39-87.eu/sfp/apk/3.png

https://ns3274274.ip-5-39-87.eu/sfp/apk/4.png

Historia wersji pakietu JavaScript i zmian - sfp-diagnostics-luci-js:

v1 - wersja LUA (sfp-diagnostics-luci_BPI-R3.tar) - z poprzedniego OpenWRT 23.05
v2 - przepisana wersja z LUA do JavaScript ale na ethtool z obsługą JSON: ethtool --json -m sfp1 (ethtool-full-bin-6.3-r1.apk)
v3 - wersja parsera z obsługą ethtool bez JSON -> standardowe starsze i nowsze ethtool działają: ethtool -m sfp1 (np. z repo), dopisany parser z txt, dopisane tłumaczenie English (en)
v4 - dodane wykresy TX / RX Power, Temperature

Instalacja w OpenWRT 25.12 z APK:
1. Zainstalować w OpenWRT pakiety: rpcd-mod-ucode, luci-mod-admin-full, libc
2. Skopiować do routera do /tmp plik 'sfp-diagnostics-luci-js-4-r1.apk'
3. Zainstalować sfp-diagnostics-luci-js-4-r1.apk w OpenWRT 25.12
4. Zainstalować domyślną wersję ethtool-full z repo: apk add ethtool-full (aktualnie: ethtool-full-6.15-r1)
4a. Zrestartować 'rpcd'

Plugin dostępny pod LuCI -> Sieć -> SFP

Opcjonalnie - jesli chcemy inny ethtool, np. starszy 6.3 (który pokazuje więcej danych technicznych wkładek SFP)
5. Skopiować do routera do /tmp patchowany i skompilowany plik 'ethtool-full-bin-6.3-r1.apk'
6. Zainstalować patchowany ethtool-6.3 -> ethtool-full-bin-6.3-r1.apk (ma też patch JSON dla 'ethtool --json -m') poprzez:
    apk del ethtool-full
    apk del ethtool (jesli mieliśmy jakikolwiek ethtool niepełny już zainstalowany)
    add --allow-untrusted /tmp/ethtool-full-bin-6.3-r1.apk


Instalacja j/w dla BPI-R3 z linii komend (komplet):
------------------------------------------------------------------------------------------------------
apk update
apk add rpcd-mod-ucode luci-mod-admin-full libc
apk add ethtool-full  (lub j/w wg pkt. 5 i 6)
apk add --allow-untrusted /tmp/sfp-diagnostics-luci-js-4-r1.apk
rm -rf /tmp/luci-modulecache/
/etc/init.d/rpcd restart
------------------------------------------------------------------------------------------------------

Linki do pobrania -> wersja v4 - sfp-diagnostics-luci-js-4-r1:
-->> sfp-diagnostics-luci-js-4-r1.apk lub sfp-diagnostics-luci-js-4-r1.apk
-->> ethtool-full-bin-6.3-r1.apk lub ethtool-full-bin-6.3-r1.apk

Testowane na BananaPi R3 z OpenWRT 25.12 i taka wersja dla tego routera jest w paczkach j/w.
Dla innych trzeba sobie dopasować plik /etc/sfp.json do swojego routera po zainstalowaniu paczki.

Pozdrawiam.

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 by @Payti