Auteur Sujet: PC Headless et ONU SFP-GPON  (Lu 1541 fois)

0 Membres et 1 Invité sur ce sujet

obinou

  • AS197422 Tetaneutral.net
  • Expert
  • *
  • Messages: 1 668
  • Montgesty (46150)
    • Tetaneutral.net
PC Headless et ONU SFP-GPON
« le: 17 septembre 2022 à 15:22:21 »
Un petit tuto pour une situation particulière.

La fibre devrait arriver bientôt chez moi. Pour anticiper j'ai décidé de me monter un routeur à base de PC 1U "home-made" à base de Ryzen et d'une carte BCM57810S double-port: Je vise directement un abonnement bouygue Pro+ à 2gps avec GTI 8h (pour ce que ça vaut). Je dispose également d'un ONU fs.com GPON-ONU-34-20BI  .

Une particularité de ce PC est qu'il n'a pas de partie graphique du tout : En effet je ne maitrisait pas la gamme Ryzen au moment de mon achat et le processeur que j'ai ne dispose pas de GPU intégré, et d'autre part le seul port PCIe Gen4  8x disponible
sera dédié pour la carte 2x10G.
Donc après installation de Linux Debian 11, j'ai configuré le grub et Linux pour un terminal série, puis j'ai enlevé la carte graphique temporaire pour la remplacer par la carte BCM57810S.

Sauf que dans cette logique, impossible de configurer avec eDiag la carte BCM57810S en 2.5G

Dans l'archive B57BCMCD_T7.12b.4.1.zip (indiqué sur la page https://www.dslreports.com/forum/r32230041-Internet-Bypassing-the-HH3K-up-to-2-5Gbps-using-a-BCM57810S-NIC , il y a une partie Linux:

root@router:~/B57BCMCD_T7.12b.4.1/Linux/Diag/NX2-Ev# ls
lediag-7.12.27-i386-pae.tar.gz lediag-7.12.27-ia64.tar.gz   README
lediag-7.12.27-i386.tar.gz     lediag-7.12.27-x86_64.tar.gz  release.txt

Tout ça est très vieux, et le README indique une compatibilité pour des kernel 2.6 uniquement.
Sur Debian 11 on est du du 5.10.0-18....

Donc bien sur la conclusion c'est que ça se tente, en suivant le dicton qui a inspiré tout ça : "Si ça peux se faire, alors il faut le faire" , dixit Gnubyte.

(Quand la ligne commence par # c'est en root, et par ~ c'est en utilisateur non privilégié)

1/ Récupération du kernel linux façon Debian, compilation & patch :

# > apt-get install build-essential fakeroot dpkg-dev libncurses-dev
# > apt-get build-dep linux
# > apt-get install linux-source
~ > tar -xaf /usr/src/linux-source-5.10.tar.xz
~ > make menuconfig

         -> dans "kernel Hacking" , désactiver "Filter access to /dev/mem"
         -> dans "Cryptographic API -> Certificates for signature checking" , supprimer le champs "Additional ..."
         -> dans "Enable loadable modules support" désactiver "Automatically sign all modules"
   (Ces 2  dernières options car on a pas la clé de Debian, la première pour après).
         -> dans "general setup" , "Local version" on peut ajouter un tag , genre "-obinou" pour bien identifier le kernel.

~ > patch -p1  < ../bnx2x-2.5G.patch

~ > make bindeb-pkg

Ensuite les packages sont placé dans le répertoire juste avant les sources. Installez les packages images et headers avec apt-install. Rebootez dessus.
C'est pénible d'avoir un kernel spécifique, mais de toute façon comme il faut patcher bnx2x...

2/ Compilation du module edrv et de l'outil broadcom eDiag

Pour que ces lignes marchent il faut que les headers du kernels soient installés.

~ > cd B57BCMCD_T7.12b.4.1/Linux/Diag/NX2-Ev
~ > tar -xf lediag-7.12.27-x86_64.tar.gz
~ > cd lediag-7.12.27-x86_64
~ > patch -p1 < ~/lediag.patch
~ > make

Un point crucial est que le programme compilé ici (lediag) utilise mmap() sur /dev/mem sur l'espace mémoire PCI de la carte.
D'autre part, le dossier contient du code mais également des fichiers objets pré-compilés par broadcom qui sont inclus dans le driver edrv.ko .... il faut avoir confiance !

Voici ensuite les commandes pour charger le driver edrv.ko que l'on vient de compiler

# > ip link set eth1 up                                                  ( permet de charger le firmware)
# > [b]rmmod bnx2x[/b]                                               ( très important : Il _faut_ que le driver bnx2x ai été chargé puis déchargé pour que edrv fonctionne)
# > ./load.sh

Là, normalement le programme lediag se lance comme en DOS ou en EFI:

lediag -- QLogic Everest diagnostics tool, version 7.12.27
    Copyright (c) 2014-2015 QLogic Corporation, all rights reserved.

C :   Brd:Rv    Bus       PCI    Spd Base   IRQ      MAC     FamVer  Config.
1 : 57810:B0 00:01:00:00 PCIE-8  5.0 0x4480 35  001E1E8F6208 FFV7.12.17 W,Mp,MF,10G
                                     0x402A     P.N.:
2 : 57810:B0 00:01:00:01 PCIE-8  5.0 0x4580 46  001E1E8F620A FFV7.12.17 W,Mp,MF,10G
                                     0x402C     P.N.:
1:>


La suite est conforme à la procédure
https://www.dslreports.com/forum/r32230041-Internet-Bypassing-the-HH3K-up-to-2-5Gbps-using-a-BCM57810S-NIC :

1: > device 1
1: > nvm cfg
    7
    1
    35=70
    36=70
    56=6
    59=6
    save
1: >  exit

Ensuite il faut rebooter (je n'ai pas réussi à recharger le module bnx2x sans cela).

3 / Connexion à l'ONU et lien en 2.5G

Un point important est qu'il faut désactiver l'autoneg avant de monter l'interface :

# > ethtool -A eth1 tx off rx off
# > ip link set eth1 up

On peux alors voir ceci dans le dmesg:

[   41.702095] bnx2x 0000:01:00.0: firmware: failed to load bnx2x/bnx2x-e2-7.13.21.0.fw (-2)
[   41.710358] firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware
[   41.720043] bnx2x 0000:01:00.0: Direct firmware load for bnx2x/bnx2x-e2-7.13.21.0.fw failed with error -2
[   41.730757] bnx2x 0000:01:00.0: firmware: direct-loading firmware bnx2x/bnx2x-e2-7.13.15.0.fw
[   42.266952] bnx2x 0000:01:00.0 eth1: using MSI-X  IRQs: sp 46  fp[0] 48 ... fp[7] 55
[   46.742558] bnx2x 0000:01:00.0 eth1: NIC Link is Up, 2500 Mbps full duplex, Flow control: none
[   46.751528] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready


Ensuite c'est du classique : On établi la connection avec l'ONU :
# > ip address add dev eth1 192.168.1.2/24
# > ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 ONTUSER@192.168.1.10

Le mot de passe est : 7sp!lwUBz1

BusyBox v1.22.1 (2021-09-18 10:30:59 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

 OpenWrt - (14.07_ltq) --- Lantiq Edition for GPON
 ----------------------------------------------
root@SFP:/home/ONTUSER#





Et voila ! Ensuite il faut suivre les procédures déjà décrites habituelles en fonction de l'opérateur...
Je complèterais ce tuto avec ma conf "routeur" quand ma ligne sera active.

« Modifié: 17 septembre 2022 à 21:44:08 par obinou »

kaktuss77

  • Abonné Orange Fibre
  • *
  • Messages: 598
  • Free 8G/700M + Orange 2G/1G <3
    • @kaktuss77
PC Headless et ONU SFP-GPON
« Réponse #1 le: 20 octobre 2022 à 13:52:21 »
Merci beaucoup :)

obinou

  • AS197422 Tetaneutral.net
  • Expert
  • *
  • Messages: 1 668
  • Montgesty (46150)
    • Tetaneutral.net
PC Headless et ONU SFP-GPON
« Réponse #2 le: 20 octobre 2022 à 18:32:51 »
J'ai dû prêter ma machine qui me sert à faire les tests. Mais dès que je peux je m'y remet !!!!