Auteur Sujet: ONU Externe 2.5Gbe  (Lu 35566 fois)

0 Membres et 1 Invité sur ce sujet

Fluor

  • Abonné Bbox fibre
  • *
  • Messages: 328
  • FTTH 2G/600 Saint-Orens
ONU Externe 2.5Gbe
« Réponse #132 le: 30 août 2022 à 22:05:10 »
Une piste ici donné par le propriétaire du repo : https://github.com/zry98/SFP-GPON-ONU#modules-using-rtl8672--rtl9601c-chipset

Fluor

  • Abonné Bbox fibre
  • *
  • Messages: 328
  • FTTH 2G/600 Saint-Orens
ONU Externe 2.5Gbe
« Réponse #133 le: 31 août 2022 à 20:56:31 »
Update du jour : Je suis dans un Discord dédié sur la puce RTL960X.

J'ai commandé un programmeur SPI, qui arrive demain.
A priori je vais dump la mémoire essayer de voir le système de fichier et ensuite modifier le fichier directement.

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 1 725
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
ONU Externe 2.5Gbe
« Réponse #134 le: 31 août 2022 à 21:52:31 »
Pour les Leox, s'en est ou ??

Fluor

  • Abonné Bbox fibre
  • *
  • Messages: 328
  • FTTH 2G/600 Saint-Orens
ONU Externe 2.5Gbe
« Réponse #135 le: 31 août 2022 à 22:39:13 »
Pour les Leox, s'en est ou ??

Il me tient au courant pour le début de la production des sticks.
Et également si ils reste des externes.

Fluor

  • Abonné Bbox fibre
  • *
  • Messages: 328
  • FTTH 2G/600 Saint-Orens
ONU Externe 2.5Gbe
« Réponse #136 le: 06 septembre 2022 à 10:04:15 »
Hello tout le monde !

Commençons la journée par une bonne nouvellle.
J'ai enfin un VSOL 2.5Gbe en état de "fonctionnement relatif" sur le réseau ByTel.



(On ferme les yeux sur le down car j'utilise une carte réseau 2.5G USB3.0)




Je remercie au passage @hwti qui a décortique le firmware du VSOL et @rooot pour avoir trouvé des documentations :)

Revenons au "relatif" le premier problème :
L'ONU n'est pas capable de se lancer seul pour le moment :

Pour pouvoir l'utiliser sur le réseau ByTel il faut à chaque boot entrer dans le Telnet :
flash set PORT_REMAPPING 0001000000000000
restart

Ensuite :

diag

gpon deactivate

gpon set password-hex 00000VOTRE IMEI

gpon activate init-state o1

Et la nous sommes en 05 avec VLAN100 sur le port 2.5Gbe.

J'ai remonté au support VSON ces difficultés, et demandé un maj du firmware...

Pour la suite :

- Le Stick chinois est arrivé en france et ne serait tarder.
- Pour LEOX xBest devrait vendre les ONU externe 2.5G (à voir si livraison vers France sera possible)
- Pour LEOX en stick, Marcin devrait avoir bientôt des nouvelle de la production.

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 1 725
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
ONU Externe 2.5Gbe
« Réponse #137 le: 06 septembre 2022 à 10:46:37 »
Salut @Fluor ! content  que tu ais finalement trouvé la parade !
peux-tu expliquer cette commande, enfin surtout la valeur ?
flash set PORT_REMAPPING 0001000000000000

Fluor

  • Abonné Bbox fibre
  • *
  • Messages: 328
  • FTTH 2G/600 Saint-Orens
ONU Externe 2.5Gbe
« Réponse #138 le: 06 septembre 2022 à 10:48:56 »
Salut @Fluor ! content  que tu ais finalement trouvé la parade !
peux-tu expliquer cette commande, enfin surtout la valeur ?
flash set PORT_REMAPPING 0001000000000000

Je laisse plutot @hwti s'exprimer car c'est en décortiquant qu'il à trouver cela.

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 1 725
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
ONU Externe 2.5Gbe
« Réponse #139 le: 06 septembre 2022 à 11:05:41 »
@hwti
maintenant que tu as terminé avec @Fluor, peux-tu passer nous voir chez SFR, pour nous aider a résoudre le problème dans notre cas ?  ;D ;D
Notre souci : chez SFR, le WAN sur le routeur n'a pas de vlan. Donc les vlans reçus dans l'ONU (101 et 102) doivent etre détagués j'imagine ?!
« Modifié: 06 septembre 2022 à 11:26:40 par rooot »

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
ONU Externe 2.5Gbe
« Réponse #140 le: 08 septembre 2022 à 00:08:07 »
Voici une partie de ce que j'ai trouvé au sujet du VSOL V2802RH, à l'aide les logs UART de Fluor, le dump de sa NOR, et l'image du firmware 1.0.7.

Il ne tourne pas sous Linux, mais avec un OS monolithique qu'ils nomment "osk", ce qui complique les choses.
Le bootloader (uboot) a toujours le support de boot Linux, et toutes les variables d'environnement associées issues du SDK, ce qui induit très facilement en erreur.

La NOR SPI fait uniquement 4Mo, ce qui est plus petit que les autres ONT à base de RTL9601 (qui eux utilisent Linux).
On a :
 - 0x000000 - 0x020FFF : uboot
 - 0x021000 - 0x022FFF : env (les variables d'environnement uboot)
 - 0x023000 - 0x024FFF : env2 (le second jeu de variable d'environnement uboot)
 - 0x025000 - 0x026FFF : "hw config" compressée
 - 0x027000 - 0x220FFF (au moins) : OSK Image
 - 0x3A0000 - 0x3ADFFF : inutilisé ("eraseUnusedFlash erase the flash sector 0xb43a0000 remain=0xe000")
 - 0x3AE000 - 0x3B5FFF : "sw extra default mib config" (vide)
 - 0x3B6000 - 0x3BAFFF : "login logo config" (vide)
 - 0x3BB000 - 0x3C2FFF : "sw default config" (vide)
 - ?
 - 0x3CB000 - 0x3E2FFF : "logo config" (vide)
 - 0x3E3000 - 0x3E6FFF : OSK1FS (rtl-25l95-backup.bin)
 - 0x3E7000 - 0x3EAFFF : OSK1FS (omci_mib.cfg, omci_custom_opt.conf, omci_raw_data)
 - ?
 - 0x3EC000 - 0x3EFFFF : ? (vide)
 - ?
 - 0x3F8000 - 0x3FFFFF : "sw  config" compressée

A l'offset 0x027000, l'OSK Image correspond à l'image du firmware, V2802RH_V1.0.7-220802_S304.img.
Quand uboot la lance, il dit :
   Image Name:   router.
   Created:      Tue Aug  2 14:16:23 2022
   Image Type:   0x05
   Image Length: 0x1f9edc
   Page Size:    0x9084
   Load Address: 0x80000000
   Entry Point:  0x80c350f4
   Verifying Checksum ... OK
   Uncompressing OSK image ... OK
Ces informations proviennent des entêtes (64 octets), 0x1f9edc correspond à la taille du fichier - 64.
Ensuite on a :
 - 0x40 : "J[,mV1.0.7.-o.sw_v" suivit de 00 (version + ?)
 - 0x80 : "J[,mweblogounknow" suivit de 00 ("logo unkown" ?)
 - 0xC0 : une sorte de marqueur : "Ufw\x88", 4092 octets nuls, "\x88wfU", 32768 octets à FF
 - 0x90C4 : début des données compressées

La compression utilisée est du LZMA, mais avec des paramètres qui sont supportés par les anciens LZMA Utils et par 7z, mais pas pas les XZ Utils.
tail -c +37061 V2802RH_V1.0.7-220802_S304.img > OSK.bin.lzma ; 7z e OSK.bin.lzma=> On a un OSK.bin qui correspond à l'ensemble de l'OS (les données comme les pages web sont dedans), qu'on peut charger dans Ghidra : MIPS big endian, adresse de base 0x80000000.


hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
ONU Externe 2.5Gbe
« Réponse #141 le: 08 septembre 2022 à 02:57:11 »
Par défaut, les tests de Fluor montrent qu'avec Bouygues (au moins) seul le port LAN1 (1Gbps) est fonctionnel.
Le comportement serait peut-être différent avec des OLT qui configurent plusieurs ports, mais en France ce n'est pas le cas (du moins pour les opérateurs nationaux).

Il est peut-être possible de configurer les VLAN et autres manuellement sur les ports, mais l'idéal est de faire en sorte que l'ONT utilise le port LAN2 (2,5Gbps) comme premier (ou seul port) vu de l'ONT.
Pour cela, il existe une configuration, PORT_REMAPPING.

Sa valeur par défaut est 0000000000000000.
Mais il y a un code qui la positionne à 0100000000000000 au boot.
Comme indiqué par Fluor plus tôt, si on le met à 0001000000000000, alors c'est le port LAN2 qui est utilisé.

Le code de la fonction d'init se répète pas mal, et le compilateur a essayé de mettre des bouts en commun donc ce n'est pas très lisible.
Une fois simplifié, ça donne quelque chose comme :
void Lansds_Rtk_Mac0_Phy_8221b_Detect()
{
char first_up[3];
char lan_type = 0;
uint8_t port_remapping[?];
char sys_capability[32];
int cap0, cap1, cap2, cap3, cap4, cap5;

...
get_value(id_FIRST_UP, &first_up);
if (first_up[0] == 0x01) {
cmd("flash set FIRST_UP 0");
}
cmd("lansds initmac0");
cmd("lansds detect_mac0_phy");
if (cond) { // detected ?
printf("%s-%d", "Lansds_Rtk_Mac0_Phy_8221b_Detect", 1097);
get_value(id_LAN_TYPE, &lan_type);
if ((lan_type & 2) == 0) {
lan_type |= 2;
set_value(id_LAN_TYPE, &lan_type);
}
if ((lan_type & 3) == 3) {
g_number_of_interfaces = 2;
get_value(id_PORT_REMAPPING, &port_remapping);
if (port_remapping[0] != 0x01 || port_remapping[1] != 0x00)
cmd("flash set PORT_REMAPPING 0100000000000000");
} else {
if ((lan_type & 2) != 0) {
g_number_of_interfaces = 1;
get_value(id_PORT_REMAPPING, &port_remapping);
if (port_remapping[0] != 0x01 || port_remapping[1] != 0x00)
cmd("flash set PORT_REMAPPING 0100000000000000");
} else {
g_number_of_interfaces = 1;
get_value(id_PORT_REMAPPING, &port_remapping);
if (port_remapping[0] != 0x00 || port_remapping[1] != 0x01)
cmd("flash set PORT_REMAPPING 0001000000000000");
}
}
get_value(id_SYS_CAPABILITY, &sys_capability);
sscanf(sys_capability, "%d;%d;%d;%d;%d;%d", &cap0, &cap1, &cap2, &cap3, &cap4, &cap5);
if (cap1 != g_number_of_interfaces) {
sprintf(sys_capability, "%d;%d;%d;%d;%d;%d", cap0, g_number_of_interfaces, cap2, cap3, cap4, cap5);
set_value(id_SYS_CAPABILITY, &sys_capability);
}
} else {
g_number_of_interfaces = 1;
get_value(id_PORT_REMAPPING, &port_remapping);
if (port_remapping[0] != 0x00 || port_remapping[1] != 0x01)
cmd("flash set PORT_REMAPPING 0001000000000000");
}
}

Donc si on résume :
if (RTL8221B detected) {
    LAN_TYPE = LAN_TYPE | 2
    if ((LAN_TYPE & 3) == 3) {  // maybe if LAN1 port was detected / enabled ?
        2 interfaces, PORT_REMAPPING = 0100000000000000
    } else {
        if (LAN_TYPE & 2) {
            1 interface, PORT_REMAPPING = 0100000000000000
        } else {
            // dead code, due to "LAN_TYPE = LAN_TYPE | 2" above
            1 interface, PORT_REMAPPING = 0001000000000000
        }
    }
    set number of interfaces as second number in SYS_CAPABILITY
} else {
    // maybe for SFP ONT (not sure what happens if it's in a media converter with RTL8221B...)
    // or for an ONT with only a 1Gbps port (but in this case the mapping seems strange)
    PORT_REMAPPING = 0001000000000000
}

C'est difficile à comprendre  :-\
Trois pistes :
 - "flash set LAN_TYPE 2" : si rien ne vient forcer le premier bit, on aura PORT_REMAPPING = 0100000000000000, mais peut-être que seule l'interface LAN2 sera présente
 - "flash set LAN_TYPE 2" + supprimer le test "if (LAN_TYPE & 2) {", ou changer la valeur dans le bloc de code, pour avoir PORT_REMAPPING = 0001000000000000
 - modifier le code dans le "if ((LAN_TYPE & 3) == 3)" pour avoir les deux ports présents, mais le LAN2 en premier

Fluor

  • Abonné Bbox fibre
  • *
  • Messages: 328
  • FTTH 2G/600 Saint-Orens
ONU Externe 2.5Gbe
« Réponse #142 le: 08 septembre 2022 à 13:50:17 »
Hello,

J'ai enfin reçu le stick Chinois 'ODI'.
Déjà l'interface propose le sérial number + Password PLOAM en HEX !
Ce qui est déjà un très bon point !

Edit à venir....

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 1 725
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
ONU Externe 2.5Gbe
« Réponse #143 le: 08 septembre 2022 à 14:21:20 »
pas de settings de routage, de firewall, et de config WAN ?