Bonjour @G8U5,
Je suis dans le même cas de figure que toi (Bananpi R4 + GPON-ONU-34-20BI).
J’aimerai faire ton fix pour activer le quirk mode sous Openwrt 24.10-rc4 pour qu'il soit bien reconnu à 2.5Gb et donc renommer mon Vendor Name + Vendor PN mais je ne suis pas certain des commandes a utiliser, malgré une lecture attentive des docs.
Peux tu me dire lesquelles tu as utilisé ?
Merci,
Aworan
Salut.
Et bien, pour savoir quelles commandes utiliser, pour commencer, vas faire un tour sur ton routeur, en SSH et lances la commande ethtool -m eth2 (il faut installer ethtool-full sur le routeur).
Ça te donnera donc des infos qui sont en fait dans l'Eeprom du stick, qu'OpenWRT lit pour configurer le LINK.
On sait que sur ce module, l'Eeprom est simulée et que donc les infos sont en fait dans les Envs dans sfp_i2c....
La commande qui modifie ces lignes est sfp_i2c -i...
Donc normalement, si tu tapes la commande sfp_i2c sur l'ONU (en SSH), la commande te renvoie quels index de paramètres correspondent au Vendor_NAME, et Vendor_PN.
Il faut donc taper les commandes sfp_i2c -i index Vendor_NAMEet sfc_i2c -i index Vendor_PN.
Et voilà, le module envoie bien les bons paramètres.
Sauf que, au reboot, les valeurs sont à nouveau celles d'origine!
En fouillant un peu dans les scripts d'init, dans /etc/init.d/ tu trouveras le script sfp_eeprom.sh, je t'invite à le lire pour comprendre (cat /etc/init.d/sfp_eeprom.sh).
Maintenant, quelle valeur saisir?
La j'ai fouillé un peu le forum de BPI et tanté le tout pour le tout, ça passe ou ça casse (enfin pas physiquement, on peut toujours revenir en arrière).
Dans les sources du kernel d'OpenWRT il y a un fichier sfp.c dans lequel tu trouveras tous les QUIRKs. Un des QUIRKs support un module nommé "
OEM". Celui que j'ai choisi en premier lieu car rien de plus standard qu'OEM. Pour le PN, en 2.5baseT c'est "
SFP-2.5G-T"
https://elixir.bootlin.com/linux/v6.12.6/source/drivers/net/phy/sfp.c à partir de la ligne 466.
En reprenant le lien, je vois même:
// Fiberstore GPON-ONU-34-20BI can operate at 2500base-X, but report 1.2GBd
// NRZ in their EEPROM
SFP_QUIRK("FS", "GPON-ONU-34-20BI", sfp_quirk_2500basex,
sfp_fixup_ignore_tx_fault),
J'ai fait une autre modif. (un peu plus compliquée) dans l'Eeprom suite à une info sur un autre forum, mais je ne sais pas si elle est utile (elle fixe du coup le 1.2GBd report, j'ai mis 3.1GBd).
J'ai donc maintenant passer le Vendor_NAME et Vendor_PN à ceux de FS, pour ignorer également le TX_Fault, ça fonctionne également et sera plus propre.
Je te laisse te débrouiller un peu, c'est toujours mieux de comprendre par soit même, pour mieux intégrer ce qu'il se passe...
N'hésite pas à revenir pour la suite.