diff options
author | Simone <26844016+simonebortolin@users.noreply.github.com> | 2023-10-10 13:17:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-10 13:17:08 +0200 |
commit | c5e6c5123dd68fbbd4b4f3d46c5973793741f734 (patch) | |
tree | fcea32d246e60eb1f57cfcda66078f2a6199ce48 | |
parent | Update ont-zte-f6005.md (diff) | |
parent | Correct (hopefully) all grammar mistakes and change phrasing to make things easier to understand (#282) (diff) | |
download | hack-gpon.github.io-c5e6c5123dd68fbbd4b4f3d46c5973793741f734.tar hack-gpon.github.io-c5e6c5123dd68fbbd4b4f3d46c5973793741f734.tar.gz hack-gpon.github.io-c5e6c5123dd68fbbd4b4f3d46c5973793741f734.tar.bz2 hack-gpon.github.io-c5e6c5123dd68fbbd4b4f3d46c5973793741f734.tar.lz hack-gpon.github.io-c5e6c5123dd68fbbd4b4f3d46c5973793741f734.tar.xz hack-gpon.github.io-c5e6c5123dd68fbbd4b4f3d46c5973793741f734.tar.zst hack-gpon.github.io-c5e6c5123dd68fbbd4b4f3d46c5973793741f734.zip |
Diffstat (limited to '')
64 files changed, 572 insertions, 574 deletions
@@ -8,7 +8,7 @@ description: Opps. The page you are looking for got lost. --- -<p>Those are not the ONT you are looking for. Try using the navigation {% if site.search_enabled != false %}or search {% endif %}to find what you're looking for or go to this <a href="{{ '/' | relative_url }}">site's home page</a>.</p> +<p>This is not the ONT you are looking for. Try using the navigation bar {% if site.search_enabled != false %}or search {% endif %}to find what you're looking for or go to the <a href="{{ '/' | relative_url }}">website's home page</a>.</p> <div class="ont-404 mt-9"> <svg width="116.52087mm" height="36.783329mm" viewBox="0 0 116.52087 36.783329" version="1.1" id="svg28164" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> diff --git a/_gpon/g_984_series.md b/_gpon/g_984_series.md index 81f24ef..df8e9e1 100644 --- a/_gpon/g_984_series.md +++ b/_gpon/g_984_series.md @@ -19,7 +19,7 @@ The information on this page is taken from the GPON standard and information fro # General Concepts[^zyxel] -- Bit Rate: 1.2 Gbps Upstream; 2.4 Gbps Downstream. +- Bitrate: 1.2 Gbps Upstream; 2.4 Gbps Downstream. - Physical Reach: Max physical distance between OLT and ONT. - Differential Fiber Distance: Distance between closest and farthest ONT from OLT (max = 20km) @@ -35,7 +35,7 @@ The information on this page is taken from the GPON standard and information fro | **1.24416** | **2.48832** | | 2.48832 | 2.48832 | -1.24416 Gbps up, 2.48832 Gbps down is the mainstream speed combination supported at current time. +1.24416 Gbps up, 2.48832 Gbps down is the most supported speed combination at current time. # GPON Terminology @@ -46,7 +46,7 @@ The information on this page is taken from the GPON standard and information fro * 0 .. 253 Assignable * 254 Reserved * 255 Broadcast/unassigned -* OLT assigns to an ONU during the ONU's activation using the PLOAM channel. +* The OLT assigns an id to any ONU during the ONU's activation using the PLOAM channel. * ONU-ID is unique across the PON and remains valid until the ONU is powered off, deactivated by the OLT or moves itself into an inactive state. ## Allocation Identifier (Alloc-ID)[^zyxel] @@ -61,9 +61,9 @@ The information on this page is taken from the GPON standard and information fro A Transmission Container (T-CONT) is an ONU object representing a group of logical connections that appear as a single entity for the purpose of upstream bandwidth assignment on the PON. * Bandwidth assignment and QoS control are performed in every T-CONT by fixed and dynamic methods. * There are 5 types of T-CONT Traffic Descriptors: - * Type 1: fixed bandwidth type. - * Type 2 and Type 3: guaranteed bandwidth types. - * Type 4: best-effort type. + * Type 1: fixed bandwidth; + * Type 2 and Type 3: guaranteed bandwidth; + * Type 4: best-effort; * Type 5: mixed type, involving all bandwidth types and bearing all services | Type 1 | Type 2 | Type 3 | Type 4 | Type 5 | @@ -74,9 +74,9 @@ A Transmission Container (T-CONT) is an ONU object representing a group of logic * For TR-156 and TR-167, each T-CONT represents a traffic class * Each ONU is assigned at least one Alloc-ID which is equal to that ONU's ONU-ID and may be assigned additional Alloc-IDs per the OLT's discretion. - * Typically have 4 T-CONTs, supporting 4 traffic classes, plus one T-CONT for OMCI -* Default Alloc-ID is used to carry the upstream PLOAM and OMCC traffic and may carry user data traffic. -* OLT schedules upstream traffic across all ONUs according to the priority and weight assigned to each T-CONT, and their buffer occupancy. Other bandwidth assignment mechanisms are available, for example fixed bandwidth, assured bandwidth, and nonassured bandwidth[^broadbandforum]. + * Typically have 4 T-CONTs, supporting 4 traffic classes, plus an extra one for OMCI +* The default Alloc-ID is used to carry the upstream PLOAM and OMCC traffic and may carry user data traffic. +* The OLT schedules upstream traffic across all ONUs according to the priority and weight assigned to each T-CONT, and their buffer occupancy. Other bandwidth assignment mechanisms are available, for example fixed bandwidth, assured bandwidth, and nonassured bandwidth[^broadbandforum]. ## Dynamic Bandwidth Allocation (DBA) @@ -84,7 +84,7 @@ A Transmission Container (T-CONT) is an ONU object representing a group of logic {% include image.html file="quick-start/pon_dba.jpg" alt="PON DBA Abstraction" caption="PON DBA Abstraction" %} -Dynamic Bandwidth Allocation (DBA) is a technique by which traffic bandwidth in a shared telecommunications medium can be allocated on demand and fairly between different users of that bandwidth. And it is performed on the upstream traffic[^zyxel]. +Dynamic Bandwidth Allocation (DBA) is a technique by which traffic bandwidth in a shared telecommunications medium can be allocated on demand and fairly between different users of that bandwidth. It is performed on the upstream traffic[^zyxel]. With DBA, the OLT assesses the bandwidth needs of the ONUs in real time and allocates upstream PON capacity accordingly[^broadbandforum]. @@ -110,10 +110,10 @@ Payload - User data ### GPON Encapsulation -GPON use two layers of encapsulation: +GPON uses two layers of encapsulation: 1. TDM and Ethernet frames are wrapped into GTC Encapsulation Method (GEM) frames, which have a GFP-like format (derived from Generic Frame Procedure ITU G.7401). -The main purpose of the GEM frame is to provide a frame-oriented service, as an alternative to ATM, in order to efficiently accommodate Ethernet and TDM frames. With GEM, all traffic is mapped across the GPON network using a variant of SONET/SDH GFP. GEM supports a native transport of voice, video, and data without an added ATM or IP encapsulation layer[^medium],[^fs]. +The main purpose of the GEM frame is to provide a frame-oriented service, as an alternative to ATM, in order to efficiently accommodate Ethernet and TDM frames. With GEM, all traffic is mapped across the GPON network using a variant of SONET/SDH GFP. GEM natively supports transportation of voice, video, and data without an added ATM or IP encapsulation layer[^medium],[^fs]. 2. ATM and GEM frames are both encapsulated into GTC frames that are finally transported over the PON[^medium],[^fs]. ITU-T G.984 defines GEM as the only data transport scheme for GPON. Bandwidth allocation in GPON grants individual transmission opportunities to the ONU's traffic-bearing entities on the timescale of a single GTC frame[^zyxel]. @@ -144,32 +144,32 @@ PCBd consists of the GTC header and BWmap: {% include image.html file="quick-start/downstream-multiplexing.png" alt="Downstream multiplexing (shaded GEM port indicates multicast)" caption="Downstream multiplexing (shaded GEM port indicates multicast)" %} -1. OLT sends Ethernet frames from Uplink ports to the GPON service processing module based on configured rules to the PON ports. -2. GPON service processing module then encapsulates the Ethernet frames into GEM port data packets for downstream transmission. +1. The OLT sends Ethernet frames from Uplink ports to the GPON service processing module based on configured rules to the PON ports. +2. The GPON service processing module then encapsulates the Ethernet frames into GEM port data packets for downstream transmission. 3. GPON transmission convergence (GTC) frames that contain GEM PDUs are broadcast to all ONT/ONUs connected to the GPON port. -4. ONT/ONU filters the received data based on the GEM port ID contained in the GEM PDU header and retains the data only significant to the GEM ports on this ONT/ONU. -5. ONT decapsulates the data and sends the Ethernet frames to the end users via service ports. +4. The ONT/ONU filters the received data based on the GEM port ID contained in the GEM PDU header and only retains data significant to the GEM ports on this ONT/ONU. +5. The ONT decapsulates the data and sends the Ethernet frames to the end users via service ports. ### Upstream[^zyxel],[^broadbandforum],[^cisco] {% include image.html file="quick-start/gpon-upstream.jpg" alt="GPON Upstream" caption="GPON Upstream" %} -In the Upstream the GEM traffic is carried over one or more T-CONTs. The OLT receives the transmission associated with the T-CONT and the frames are forwarded to the GEM TC adapter and then the GEM client. +In the Upstream channel, GEM traffic is carried over one or more T-CONTs. The OLT receives the transmission associated with the T-CONT and the frames are forwarded to the GEM TC adapter and then the GEM client. - Use Time Division Multiple Access (TDMA) for upstream data transmission w/o AES encryption. * Distance between the OLT and ONT/ONU is measured (Ranging): - * OLT starts the process on an ONU when the ONU first registers with the OLT and obtains round trip delay (RTD) of the ONU. Based on the RTD, the other key components are identified: + * The OLT starts the process on an ONU when the ONU first registers with the OLT and obtains round trip delay (RTD) of the ONU. Based on the RTD, other key components are identified: * Calculation of the physical reach of that specific ONU, as this OLT requires a proper equalization delay (EqD) for each ONU based on physical reach. - * RTC and EqD synchronize data frames sent by all ONUs + * RTC and EqD synchronize data frames sent by all ONUs. * Time slots are allocated based on distance. In order to prevent data conflict (collisions), the OLT must be able to precisely measure the distance between itself and each ONU to provide a proper time slot to facilitate data upstream. This allows the ONUs to send data at specified time slots, to prevent issues upstream. This process is achieved through a technique called ranging. - * ONT/ONU sends traffic upstream based on granted time slot. + * The ONT/ONU sends traffic upstream based on the granted time slot. - Dynamic Bandwidth Allocation (DBA) enables the OLT to monitor in real-time, congestion, bandwidth usage, and configuration. - Traffic multiplexing is distributed. -- The OLT grants the upstream bandwidth allocation. +- The OLT grants upstream bandwidth allocation. - The ONU traffic-bearing entities are identified by their Allocations IDs. -- The alloc-IDs are multiplexed in time as specified by the bandwidth-map (given by the OLT in the downstream frame). -- Within the bandwidth allocation, the ONU uses the GEM Port-IF as key to identify upstream GEM frames. -- Each upstream frame contains the content carried by one or more T-CONT/T-CONTs. +- Alloc-IDs are multiplexed in time as specified by the bandwidth-map (provided by the OLT in the downstream frame). +- Within its bandwidth allocation, the ONU uses the GEM Port-IF as key to identify upstream GEM frames. +- Each upstream frame contains the content carried by one or more T-CONTs. - All ONUs connected to a GPON port share the upstream bandwidth. - All ONUs send their data upstream at their own time slots based on bandwidth map (BWmap) requirements. - Each ONU reports the status of data to be sent to the OLT by use of upstream frames. OLT uses DBA to allocate upstream time slots to ONUs and sends updates in each frame. @@ -178,7 +178,7 @@ In the Upstream the GEM traffic is carried over one or more T-CONTs. The OLT rec {% include image.html file="quick-start/upstream-multiplexing.png" alt="Upstream multiplexing" caption="Upstream multiplexing" %} -1. ONT/ONU send Ethernet frames to GEM ports based on configured rules that map service ports and GEM ports. +1. ONT/ONUs send Ethernet frames to GEM ports based on configured rules that map service ports and GEM ports. 2. GEM ports encapsulate the Ethernet frames into GEM PDUs and add these PDUs to T-CONT queues based on rules that map GEM ports and T-CONT queues. 3. T-CONT queues use time slots based on DBA, then transmit upstream GEM PDUs to the OLT. 4. OLT decapsulates the GEM PDU, the original Ethernet frame is now seen. @@ -228,7 +228,7 @@ Resolves Ethernet frames and directly maps the data of Ethernet frames into the * Establish and release connections with the ONT. * Manage the UNIs on the ONT. * Request configuration information and performance statistics. - * Autonomously alert of events, such as a link failure. + * Autonomously alert events, such as a link failure. - Key Points: * Protocol runs over a GEM connection between the OLT and ONT. * GEM connection is established while the ONT initializes. @@ -236,40 +236,40 @@ Resolves Ethernet frames and directly maps the data of Ethernet frames into the ### Management Information Base (MIB) and Management entities (ME's)[^arsat] -A way of MIB (Management Information Base) formed by Management Entities (ME's) is used to fully describe the ONU configuration, status and several other actions +MIBs (Management Information Base) formed by Management Entities (MEs) are used to fully describe the ONU configuration, status and several other actions. -OMCI constitute the protocol in order to support the set of actions performed over ONU to create; delete and other set of actions on those ME's +OMCI constitutes the protocol which supports the set of actions performed over an ONU to create, delete and more on those MEs - A Managed Entity (ME) is composed of attributes, actions and notifications defining its characteristics. - Managed Entity (ME Class Value) - Purpose of the entity - - Autonomously instantiated by ONU or explicitly created by OLT + - Autonomously instantiated by the ONU or explicitly created by the OLT - Relationship(s) with other managed entities - Attributes: Attribute Definition - - ME id: This attribute provides a unique number for each instance of this managed entity. - - List of attributes. Attribute Number within ME Determined by the Order in Which Attributes are Listed + - ME id: provides a unique number for each instance of this managed entity. + - List of attributes: Attribute Number within ME determined by the order in which attributes are listed - Actions: operations that may be performed on the entity (Create/Get/Set/Test, etc.) - Notifications (Alarm, AVC, TCA, Test Result) -- There can be multiple instances of a Managed Entity. Each instance has the same attributes, actions and notifications even though the values of the attributes may be different from each other. +- There can be multiple instances of any Managed Entity: each instance has the same attributes, actions and notifications even though the values of the attributes may be different from one another. ### VEIP and PPTP[^huaweiveip],[^cdatatec] -According to the application, ONU can be divided into six types, namely SFU (Single Family Unit) ONU, HGU (Home Gateway Unit) ONU, MDU (Multi-Dwelling Unit) ONU, SBU (Single Business Unit) ONU, MTU (Multi-Tenant Unit) ONU and CBU (Cellular Backhaul Unit) ONU. However, only SFU (Single Family Unit) ONU and HGU (Home Gateway Unit) ONU are used by the end-users in practical application. +According to the application, ONU can be divided into six types, namely SFU (Single Family Unit) ONU, HGU (Home Gateway Unit) ONU, MDU (Multi-Dwelling Unit) ONU, SBU (Single Business Unit) ONU, MTU (Multi-Tenant Unit) ONU and CBU (Cellular Backhaul Unit) ONU. However, only SFU (Single Family Unit) ONU and HGU (Home Gateway Unit) ONU are used by the end-users in practical applications. -HGU ONU takes the Virtual Ethernet interface point (VEIP). Virtual Ethernet interface point (VEIP) as an OMCI administrative domain and a non-OMCI administrative domai (like TR-069). At the switchover point of the data plane, the ME can be managed only through the OMCI and is visible to the non-OMCI management domain, but not manageable. Similarly, all UNI-side modules under the VEIP are invisible to and cannot be managed by the OMCI. They are visible and manageable only to the non-OMCI management domain. In addition, each ONU should have only one VEIP. +HGU ONU takes the Virtual Ethernet Interface Point (VEIP) as an OMCI administrative domain and a non-OMCI administrative domain (like TR-069). At the switchover point of the data plane, the ME can be managed only through the OMCI and is visible to the non-OMCI management domain, but not manageable. Similarly, all UNI-side modules under the VEIP are invisible to and cannot be managed by the OMCI. They are visible and manageable only to the non-OMCI management domain. In addition, each ONU should have only one VEIP. -When the ONU uploads the MIB, the ONU reports only the mandatory MEs and supported optional MEs. It does not report the MEs related to LOID authentication, performance monitoring, and T-CONT MEs of the OMCC channel. +When the ONU uploads MIBs, the ONU reports only the mandatory MEs and supported optional MEs. It does not report the MEs related to LOID authentication, performance monitoring and T-CONT MEs of the OMCC channel. -The ONU should be used according to the device type and report either VEIP or PPTP during MIB upload. The SFU only uses and reports PPTP. VEIP should not be used. HGUs can only use and report VEIPs. PPTP should not be used. The OLT determines the ONU type based on the ONU Type attribute in ME:ONU Capability. Only one VEIP is allowed in each HGU. ONU will report VEIP or PPTP (Physical Path Termination Point) when MIB is uploaded according to the type of the device, while HGU can only use and report VEIP rather than PPTP. OLT will judge the type of ONU devices according to the attribution of ONU type in ONU capability. +The ONU should be used according to the device type and report either VEIP or PPTP during MIB upload. The SFU only uses and reports PPTP. VEIP should not be used. HGUs can only use and report VEIPs. PPTP should not be used. The OLT determines the ONU type based on the ONU Type attribute in ME:ONU Capability. Only one VEIP is allowed in each HGU. ONUs will report VEIP or PPTP (Physical Path Termination Point) when MIB is uploaded according to the type of the device, while HGUs can only use and report VEIP rather than PPTP. The OLT will judge the type of each ONU device according to the ONU type attribute in ONU capability. {% include image.html file="quick-start/veip.jpg" alt="Service Process of HGU ONU" caption="Service Process of HGU ONU" %} -SFU ONU only supports the OMCI management domain. PPTP is what SFU uses and reports, while VEIP is not available. The processing mode of OMCI configured data flow is different from that of RG flow. For OMCI data flow, there is a one-to-one mapping between the GEM port on the WAN side and the UNI port on the LAN side. All data packets can pass through without MAC address learning or forwarding. Wireless interfaces are not allowed in OMCI. +SFU ONUs only support the OMCI management domain. PPTP is what SFU uses and reports, while VEIP is not available. The processing mode of OMCI configured data flow is different from that of RG flow. For OMCI data flow, there is a one-to-one mapping between the GEM port on the WAN side and the UNI port on the LAN side. All data packets can pass through without MAC address learning or forwarding. Wireless interfaces are not allowed in OMCI. -SFU ONU is designed for a single family unit with broadband access terminal function without a more complex home gateway function from the perspective of application and ONU capacity. SFU ONU, mainly used in FTTH scenarios, has 1 or 4 Ethernet interfaces and is available for Ethernet / IP services, optional VoIP services (built-in IAD), or CATV services. +SFU ONUs are designed for a single family unit with broadband access terminal function without a more complex home gateway function from the perspective of application and ONU capacity. SFU ONUs, mainly used in FTTH scenarios, typically have 1 or 4 Ethernet interfaces and are available for Ethernet / IP services, optional VoIP services (built-in IAD), or CATV services. -SFU ONU works under the bridging mode (layer 2 of ISO model), supports multiple VLAN functions, and its Ethernet port can be configured and managed by OLT through OMCI / OAM. Combined with a home gateway, SFU ONU is good at providing strong service capability. +SFU ONUs work under bridging mode (layer 2 of ISO model), support multiple VLAN functions, and their Ethernet port can be configured and managed by the OLT through OMCI / OAM. Combined with a home gateway, SFU ONUs are good at providing strong service capability. <hr> diff --git a/_gpon/gpon-auth.md b/_gpon/gpon-auth.md index 5da0ee7..52a2dbd 100644 --- a/_gpon/gpon-auth.md +++ b/_gpon/gpon-auth.md @@ -8,17 +8,17 @@ layout: default The information on this page is taken from the GPON standard and information from the major vendors of GPON equipment, each individual item containing a verifiable citation in the standard. Feel free to cite this page as: `{{ page.title }}, Hack GPON. Available at: https://hack-gpon.org{{ page.url }}`. # ONU activation state: `Ox`[^huawei],[^standardgpon] -The process for an ONU to go online unconfigured involves five states: +The process for an unconfigured ONU to go online involves five states: - **`O1` Initial:** the OLT sends a message to the ONU to start the ONU, and the ONU enters the standby state; -- **`O2` Standby:** After receiving the message, the ONU extracts the delimiter value, power level, and pre-allocated compensation delay from the message, and adjusts its configurations accordingly to support subsequent information exchange. -- **`O3` Serial number:** The OLT sends a serial number (SN) request to the ONU. The ONU sends its SN to the OLT. After receiving the SN of the ONU, the OLT allocates a temporary ONU ID to the ONU. -- **`O4` Ranging:** The OLT sends a ranging request to the ONU. After receiving the ranging request from the OLT, the ONU responds with a message carrying its SN and ONU ID. The OLT calculates the compensation delay and sends it to the ONU in a message. After receiving the message, the ONU sets the compensation delay accordingly. +- **`O2` Standby:** After receiving the message, the ONU extracts the delimiter value, power level, and pre-allocated compensation delay from the message, and adjusts its configurations accordingly, to support subsequent information exchanges. +- **`O3` Serial number:** The OLT sends a serial number (SN) request to the ONU. The ONU sends its SN to the OLT. After receiving the ONU's SN, the OLT allocates a temporary ONU-ID to the ONU. +- **`O4` Ranging:** The OLT sends a ranging request to the ONU. After receiving the ranging request from the OLT, the ONU responds with a message carrying its SN and ONU-ID. The OLT calculates the compensation delay and sends it to the ONU in a message. After receiving the message, the ONU sets the compensation delay accordingly. - **`O5` Operation:** The OLT sends a password request to the ONU. The ONU returns a password to the OLT. - **`O6` Intermittent LODS state.** - **`O7` Emergency Stop state.** -The password is not configured on the OLT. If the automatic discovery function is enabled on the PON port of the OLT, the OLT reports an ONU auto-discovery alarm to the CLI or NMS. The ONU goes online normally only after being confirmed. +The password is not configured on the OLT: if the automatic discovery function is enabled on the OLT's PON port, the OLT reports an ONU auto-discovery alarm to the CLI or NMS. The ONU goes online normally only after being confirmed. ```mermaid graph TD @@ -40,7 +40,7 @@ graph TD There is a known issue with Alcatel/Nokia OLTs giving fake `O5` ONU Status, OLTs will hold OMCI Provisioning until correct OMCI Information is received. -It happens when the OLT detects that the ONT is `drunk`, so it tries to update the firmware before opening the GEM link. If this happens, the user has to try changing the software version or other data. +This happens when the OLT detects that the ONT is `drunk`, so it tries to update the firmware before opening the GEM link. If this happens, the user has to try changing the software version or other data. This is most likely to reduce logs from misconfigured ONTs and to be able to send updates automatically to ONTs. diff --git a/_gpon/mib.md b/_gpon/mib.md index 56e5d67..2161308 100644 --- a/_gpon/mib.md +++ b/_gpon/mib.md @@ -5,20 +5,20 @@ nav_order: 3 layout: default --- -The OMCI standard is defined in a way that suppliers can offer modular and incremental functionality to meet different levels of customer needs. +The OMCI standard is defined in a way such that suppliers can offer modular and incremental functionality to meet different levels of customer needs. -The standards [^G_988] and [^G_984_4] define the protocol needed to handle all the features of the PON specifications ([^G_984_1], [^G_987], [^G_9807_1], ...), as well as a number of services and functionalities. +The [^G_988] and [^G_984_4] standards define the protocol needed to handle all the features of the PON specifications ([^G_984_1], [^G_987], [^G_9807_1], ...), as well as a number of services and functionalities. The standard was born with B-PON, then modified with G-PON and separated with XGS-PON. OMCI supports interoperability, yet it allows for optional components and future extensions. A protocol-independent MIB (Management Information Base) describes the exchange of information across OMCI [^G_988] and [^G_984_4]. This protocol is defined in terms of MEs. MEs are abstract representations of resources and services in an ONU. Only a small subset of the list of MEs is mandatory. -The existence of other MEs depends on the architecture and feature set supported by the vendor [^G_988] and [^G_984_4]. Major ISPs and vendors have created their own extensions for MIBs [^att_open_omci], [^verizon_open_omci]. +The existence of other MEs depends on the architecture and feature set supported by the vendor's [^G_988] and [^G_984_4]. Major ISPs and vendors have created their own extensions for MIBs [^att_open_omci], [^verizon_open_omci]. -Each MEs consists of an entry ID and zero, one or more instances. Each instance has its own ID, usually starting at 0, but this is not always the case. Every instance has one or more attributes, each characterised by and ID, size and content. +Each ME consists of an entry ID and zero, one or more instances. Each instance has its own ID, usually starting at 0, but this is not always the case. Every instance has one or more attributes, each characterised by ID, size and content. -The various MEs are often interrelated. Clause 8.2 of [^G_988] and [^G_984_4] shows the relationship graphs between the various MEs. +Various MEs are often interrelated. Clause 8.2 of [^G_988] and [^G_984_4] shows the relationship graphs between the various MEs. Clause 9 of [^G_988] and [^G_984_4] describes how the various MEs are created. There are formally 2 modes: a managed entity which is auto-instantiated by the ONT or a managed entity which is instantiated on explicit request by the OLT. -In each of the 2 cases the various MEs can be: (R), (W). Only for ME auto-instantiated by the ONT there is also (R, W) while only for ME auto-instantiated by the OLT there are also (R, Set-by-create), (W, Set-by-create), or (R, W, Set-by-create). +In each of the 2 cases the various MEs can be: (R), (W). Only for MEs auto-instantiated by the ONT there is also (R, W) while only for MEs auto-instantiated by the OLT there are also (R, Set-by-create), (W, Set-by-create), or (R, W, Set-by-create). | Mode | Description [^G_984_4] | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/_gpon/ont.md b/_gpon/ont.md index 84bb558..2e6e0f5 100644 --- a/_gpon/ont.md +++ b/_gpon/ont.md @@ -15,7 +15,7 @@ Currently, there are only a few main GPON chipset vendors: - RTL9601B - RTL9601CI (HSGMII) - RTL9601D (HSGMII) - * RTL9602/RTL9603 series (for router with integrated PON) + * RTL9602/RTL9603 series (for routers with integrated PON) * Cortina QWCS8032E - Lantiq: * PEB98035 (HSGMII) diff --git a/_gpon/pptp_veip.md b/_gpon/pptp_veip.md index ad78ce0..f904abb 100644 --- a/_gpon/pptp_veip.md +++ b/_gpon/pptp_veip.md @@ -5,14 +5,14 @@ nav_order: 3 layout: default --- -ONTs are the terminating elements of the PON network, and play, like the ONT an essential role in the PON architecture. The ONT converts the optical media into an electrical interface and takes care of authenticating, monitoring, processing as well as managing all matters related to the GPON tree. Often these devices are installed directly in the home[^hsgp_hg_sfu]. +ONTs are the terminating elements of every PON network and play an essential role in the PON architecture. The ONT converts the optical media into an electrical interface and takes care of authenticating, monitoring, processing as well as managing all matters related to the GPON tree. Often these devices are installed directly in users' homes[^hsgp_hg_sfu]. Three layers can be identified in the ONT: core layer, service layer and public layer. - The core layer provides multiplexing and the optical interface; - the service layer refers mainly to the user port; - the public layer provides power and maintenance management[^hsgp_hg_sfu]. -The ONT can connect to various terminal devices, such as set-top boxes, wireless routers, TVs, etc., and performs photoelectric conversion, maintenance and monitoring functions. According to the application, ONT can be divided into six types, namely[^hsgp_hg_sfu]: +ONTs can connect to various terminal devices, such as set-top boxes, wireless routers, TVs, etc., and perform photoelectric conversion, maintenance and monitoring functions. According to the application, ONTs can be divided into six types, namely[^hsgp_hg_sfu]: - SFU (Single Family Unit) ONT - HGU (Home Gateway Unit) ONT - MDU (Multi-Dwelling Unit) ONT @@ -20,23 +20,23 @@ The ONT can connect to various terminal devices, such as set-top boxes, wireless - MTU (Multi-Tenant Unit) ONT - CBU (Cellular Backhaul Unit) ONT -However, only SFU (Single Family Unit) ONT and HGU (Home Gateway Unit) ONT are used by the end-users in practical application. +However, only SFU ONTs and HGU ONTs are used by end-users in practical application. -HGU ONT, is a home gateway with an uplink interface of the PON, is designed for the single home unit. HGU ONT integrates the functions of ONT and RG to realize more complex control and management and provide Ethernet / IP service, VoIP service, routing mode (firewall and NAT), and optional CATV service. HGU ONT has an Ethernet interface and POTS interface, WLAN interface, USB interface, CATV RF interface are also available. The HGU is a Layer III device[^hsgp_hg_sfu]. +HGU ONTs are a home gateway with a PON uplink interface; they're designed for use in single home units. HGU ONTs integrate the functions of ONTs and RGs to realize more complex control and management and also provide Ethernet / IP, VoIP, optional CATV services and routing mode (firewall and NAT). Usually HGU ONTs have Ethernet interfaces, but POTS, WLAN, USB and CATV RF interfaces are also available. The HGU is a Layer III device[^hsgp_hg_sfu]. -The ONT SFU type can be understood as a simple Layer II device, like an L2 switch or media converter, have a single port and are exclusively optical-electric converters. That simply transparently transports traffic from the PON to the eth port(s) of the customer ONT. No routing or VoIP functionality is assumed for the SFU type. For SFU, a simple service configuration from the OLT station is used. The cost of SFU device is cheaper, because additional services (routing, telephony, TV) are not implemented. +The ONT SFU type can be understood as a simple Layer II device, like an L2 switch or media converter. It usually has a single Ethernet port and it is exclusively an optical-electric converter. It simply and transparently transports traffic from the PON interface to the Ethernet port(s) of the customer's ONT. No routing or VoIP functionality is assumed for this SFU type. For SFUs, a simple service configuration from the OLT station is used. SFU devices are usually cheaper, because additional services (routing, telephony, TV) are not implemented. -Within the GPON OMCI standards we can find two types of interfaces, and they are relatively VEIP and PPTP. This virtual interface are the boundaries between the GPON/OMCI part and the non-GPON/Ethernet part[^G_984_4],[^G_988],[^hsgp_hg_sfu]. +Within the GPON OMCI standards we can find two types of interfaces: VEIP and PPTP. These virtual interfaces are the boundary between the GPON/OMCI part and the non-GPON/Ethernet part[^G_984_4],[^G_988],[^hsgp_hg_sfu]. -ONT will report VEIP or PPTP (Physical Path Termination Point) when MIB 11 oe 329 is uploaded according to the type of the device. Only one VEIP is allowed in a HGU and VEIP is not available for SFU devices. OLT determines the ONT type based on the ONT Type attribute in ME Capability. +ONTs will report VEIP or PPTP (Physical Path Termination Point) when MIB 11 or 329 is uploaded according to the type of the device. Only one VEIP is allowed in a HGU and VEIP is not available for SFU devices. OLTs determine the ONT type based on the ONT Type attribute in ME Capability. # Physical Path Termination Point (PPTP/Ethernet UNI - MIB 11) -PPTP/EthUni, on the other hand, is designed for transparent L2 bridges, potentially N each with its own VLAN. OLT is responsible to provision of VLAN and LAN Port[^nanomad_fc],[^anime_rtl960x]. +PPTP/EthUni, on the other hand, is designed for transparent L2 bridging, potentially each with its own VLAN. The OLT is responsible of the provisioning of VLANs and LAN Ports[^nanomad_fc],[^anime_rtl960x]. -The SFU type ONT device is configured and controlled completely remotely from the OLT via the OMCI management interface. Generally these devices do not require special configurations and therefore access to the web interface of the client ONT device is not required, although it is possible to update the software. To configure the switching of the required VLANs, the Ethernet port profiles of the client ONT are created at the OLT. Most of user-side configurations must be made in the devices connected to the SFU. +The SFU type ONT device is configured and controlled completely remotely by the OLT via the OMCI management interface. Generally these devices do not require special configurations and therefore access to the web interface of the client ONT device is not required, although it is possible to update the software. To configure the switching of the required VLANs, the Ethernet port profiles of the client ONT are created at the OLT. Most user-side configurations must be made in the devices connected to the SFU. -For OMCI data flow, there is a mutually unambiguous mapping between the GEM port on the OLT side with the UNI Ethernet port on the terminal side of the ONT. All data packets can pass through without learning or forwarding the MAC address. The SFU ONT supports multiple VLAN function through bridge mode. +For OMCI data flow, there is a mutually unambiguous mapping between the GEM port on the OLT side with the UNI Ethernet port on the terminal side of the ONT. All data packets can pass through without learning or forwarding the MAC address. SFU ONTs support multiple VLANs through bridge mode. ```mermaid flowchart LR @@ -80,13 +80,13 @@ ExtVlan --> PPTP ``` Source [^cablefax_future], [^G_988] -# Virtual Ethernet interface point (VEIP - MIB 329) +# Virtual Ethernet Interface Point (VEIP - MIB 329) -VEIP is a service profile designed to terminate the connection directly on the CPE, providing N services (voice, data, video) each with its own characteristics. Allows multiple Ethernet services to be carried over a single PON link. VEIP virtualises all interfaces of the ONU. +VEIP is a service profile designed to terminate the connection directly on the CPE, providing various services (voice, data, video) each with its own characteristics. It allows multiple Ethernet services to be carried over a single PON link. VEIP virtualises all interfaces of the ONU. -Similarly, all UNI-side modules within a VEIP are invisible to and cannot be managed by the OMCI or the user. They are only visible and manageable to a management domain other than OMCI. In addition, each ONT must have only one VEIP. +Similarly, all UNI-side modules within a VEIP are invisible to and cannot be managed by OMCI or the user. They are only visible and manageable to a management domain other than OMCI. In addition, each ONT must have only one VEIP. -In some countries, it is also used to allow quick switches between ISPs, ISP A is assigned Ethernet port 1 of the HGU, ISP B is assigned Ethernet port 2 of the HGU, and so on[^nanomad_fc],[^anime_rtl960x],[^huawei_veip]. +In some countries, it is also used to allow quick switches between ISPs: ISP A is assigned to Ethernet port 1 of the HGU, ISP B is assigned to Ethernet port 2 of the HGU, and so on[^nanomad_fc],[^anime_rtl960x],[^huawei_veip]. ```mermaid diff --git a/_gpon/vendor.md b/_gpon/vendor.md index f1064e0..b8db0da 100644 --- a/_gpon/vendor.md +++ b/_gpon/vendor.md @@ -5,7 +5,7 @@ nav_order: 4 layout: default --- -> 4 ASCII character +> 4 ASCII characters Needs to be set for the OLT to authenticate your ONT; please read your original ONT's Serial Number, it can be either in HEX or ASCII: if it's codified in HEX, you need to convert the first eight HEX digits to ASCII, for example `48575443` = `HWTC`. @@ -42,4 +42,4 @@ Here is a list of the most popular Vendor IDs: | `ZTEG` | `5a544547` | ZTE | | `ZYWN` | `5a59574e` | Zyxel | -{% include alert.html content="You can also help us with the content of this site, on each page you will find a button to edit on GitHub." alert="Tip" icon="svg-info" color="green" %} +{% include alert.html content="You can also help us with adding content to this site, you can find a button to edit on GitHub on each page." alert="Tip" icon="svg-info" color="green" %} diff --git a/_ont/ont-d-link-dpn-100-rev-a2.md b/_ont/ont-d-link-dpn-100-rev-a2.md index b80cdc9..5328863 100644 --- a/_ont/ont-d-link-dpn-100-rev-a2.md +++ b/_ont/ont-d-link-dpn-100-rev-a2.md @@ -41,10 +41,10 @@ Once you access the stick via ssh you will be presented with a second tier login # GPON/OMCI settings -{% include alert.html content="all commands start from the twmanu shell." alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="All commands start from the twmanu shell." alert="Note" icon="svg-info" color="blue" %} ## Setting ONU GPON Serial Number -{% include alert.html content="the S/N is stored in the ASCII format." alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="The S/N is stored in the ASCII format." alert="Note" icon="svg-info" color="blue" %} ```sh manufactory @@ -56,9 +56,9 @@ set sn ALCLf0f0f0f0 ## Setting ONU GPON PLOAM password -{% include alert.html content="the PLOAM is stored in the ASCII format." alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="The PLOAM password is stored in the ASCII format." alert="Note" icon="svg-info" color="blue" %} -This can be done easily via web ui. If you prefer to do it via the shell use: +This can be done easily via the web UI. If you prefer to do it via the shell use: ```sh manufactory set password 1234567899 diff --git a/_ont/ont-fs-com-gpon-onu-stick-with-mac.md b/_ont/ont-fs-com-gpon-onu-stick-with-mac.md index eff5894..9e4b5c5 100644 --- a/_ont/ont-fs-com-gpon-onu-stick-with-mac.md +++ b/_ont/ont-fs-com-gpon-onu-stick-with-mac.md @@ -120,7 +120,7 @@ For more info [XPONos partition layout](https://github.com/XPONos/linux_lantiq-f # Unlock the device -{% include alert.html content=" The following commands concern version 6BA1896SPLQA42, to get the commands for version 6BA1896SPLQA41 please look at page [Carlito Firmware](/ont-huawei-ma5671a-carlito)." alert="Note" icon="svg-info" color="blu" %} +{% include alert.html content="The following commands are to be used on version 6BA1896SPLQA42, to get the commands for version 6BA1896SPLQA41 please check the following page: [Carlito Firmware](/ont-huawei-ma5671a-carlito)." alert="Note" icon="svg-info" color="blu" %} ## Bootloader unlock from shell @@ -137,13 +137,13 @@ fw_setenv preboot "gpio set 3;gpio input 2;gpio input 105;gpio input 106;gpio in If for some reason you are in the situation where you do not have a bootable firmware on your SFP stick you can do an emergency unlock via TTL serial. -To perform the emergency unlock is necessary to have: -- TTL-USB adapter -- SFP adapter to connect the TTL-USB cables to the SFP stick +To perform the emergency unlock, the following hardware is required: +- TTL-USB adapter, +- SFP adapter to connect the TTL-USB cables to the SFP stick. -The electrical connections are the same as those of the Huawei MA5671A, see the [Huawei root guide](/ont-huawei-ma5671a-root-web) for accurate details on how to connect the TTL-USB to the SFP adapter. +The electrical connections are the same as those of the Huawei MA5671A; see the [Huawei root guide](/ont-huawei-ma5671a-root-web) for accurate details on how to connect the TTL-USB to the SFP adapter. -When you are ready with everything plugged in you need to press the button below. A window will open that will execute the emergency unlock. +When you are ready with everything plugged in you need to press the button below. A window will open to execute the emergency unlock. {: .text-center .fs-6 } <button id="start-button" class="btn btn-blue" data-jtd-toggle="modal" data-jtd-target="#root-modal" disabled>Start emergency unlock!</button> @@ -156,7 +156,7 @@ When you are ready with everything plugged in you need to press the button below # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU ```shell onu ploamsg @@ -183,7 +183,7 @@ The `link_status` variable tells the current speed | 4 | 1 Gbps / SGMII with auto-neg off | | 5 | 2.5 Gbps / HSGMII with auto-neg on | -To change the default lan mode value you can use `fw_setenv sgmii_mode`. The firmware already has the value 5 by default and it is generally not necessary to change it. +To change the default lan mode value you can use `fw_setenv sgmii_mode`. The firmware already has the value set to 5 by default and there should not be any need to change it. # GPON/OMCI settings @@ -196,7 +196,7 @@ Or: sfp_i2c -i8 -s "ABCD12345678" ``` -## Checking ONU GPON Serial Number +## Getting ONU GPON Serial Number ```sh fw_printenv | grep nSerial ``` @@ -231,7 +231,7 @@ sfp_i2c -i7 -s "YOUR_VENDOR_ID" sed 's/256 0 HWTC 0000000000000/256 0 HWTC YOUR_ONU_VERSION/' /rom/etc/mibs/data_1g_8q.ini > /etc/mibs/data_1g_8q.ini ``` -## Restore the default ONU hardware version (ME 256) +## Restoring the default ONU hardware version (ME 256) ```sh cat /rom/etc/mibs/data_1g_8q.ini > /etc/mibs/data_1g_8q.ini ``` @@ -239,8 +239,8 @@ cat /rom/etc/mibs/data_1g_8q.ini > /etc/mibs/data_1g_8q.ini ## Setting OMCI software version (ME 7) {% include alert.html content="The patch below is only compatible with the firmware version `6BA1896SPLQA42`" alert="Info" icon="svg-info" color="blue" %} -The image version normally couldn't be changed because it was hard-coded into the `/opt/lantiq/bin/omcid` binary, -so you need to then modify the binary with the following hex patch which removes the hardcoded version. +The image version normally can't be changed because it is hard-coded into the `/opt/lantiq/bin/omcid` binary, +so the binary has to be modified with the following hex patch which removes the hardcoded version. ``` < 000084c0: 9a43 931f f760 d840 9b64 f760 d864 1a00 .C...`.@.d.`.d.. @@ -264,17 +264,17 @@ Save it on your computer (not on the stick) as `omcid_patch.base64`, then run: base64 -d omcid_patch.base64 > omcid.bspatch bspatch <your_original_omcid> omcid omcid.bspatch ``` -{% include alert.html content="if you don't have bspatch installed, most distributions includes it in bsdiff package" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="If you don't have bspatch installed, most distributions include it in the bsdiff package" alert="Info" icon="svg-info" color="blue" %} After patching the resulting patched `omcid` should have an md5 checksum of `525139425009c4138e92766645dad7d0`. -If that also checks, go on making a backup copy of your original `omcid` on the stick. +If that is also correct, continue by making a backup copy of your original `omcid` on the stick. ```sh cd /opt/lantiq/bin cp omcid omcid.original ``` -Now you have to use SCP to copy the modified `omcid` binary in `/opt/lantiq/bin/omcid`. +Now, SCP has to be used to copy the modified `omcid` binary in `/opt/lantiq/bin/omcid`. Before restarting the stick and applying changes, make sure `omcid` has its execution bit set, then reboot the stick and change the image version with the following command: ```sh @@ -282,30 +282,30 @@ chmod ugo+x /opt/lantiq/bin/omcid ``` -Is also a good time to set the image0/image1_version. Crash has reported if they are not set correctly before reboot. +Is also a good time to set the image0/image1_version: crashes have been reported if they are not set correctly before reboot. ```sh fw_setenv image0_version YOUR_IMAGE0_VERSION fw_setenv image1_version YOUR_IMAGE1_VERSION ``` -Now you can restart the stick. -{% include alert.html content="Be aware that sometimes `omcid` can rewrite the two variables when runs in non patched state. After reboot, double check the values you put are still there." alert="Info" icon="svg-info" color="blue" %} +Now the stick can be rebooted. +{% include alert.html content="Be aware that sometimes `omcid` can rewrite the two variables when run in its non-patched state. After reboot, double check the set values are still correct." alert="Info" icon="svg-info" color="blue" %} # Advanced settings ## Setting `data_1g_8q_us1280_ds512.ini` OMCI MIB file for 2500 Mbps profiles -{% include alert.html content="The patch below is only compatible with the firmware version `6BA1896SPLQA42`" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="The patch provided below is only compatible with the firmware version `6BA1896SPLQA42`" alert="Info" icon="svg-info" color="blue" %} {% include alert.html content="If you need to set the ONU version remember that you will have to do it using the MIB file `/etc/mibs/data_1g_8q_us1280_ds512.ini` instead of `/etc/mibs/data_1g_8q.ini`" alert="Info" icon="svg-info" color="blue" %} -The MIB file `data_1g_8q_us1280_ds512.ini` is very useful to avoid performance problems in situations where 2500 Mbps speed profiles are used, to enable it you need to run this command: +The MIB file `data_1g_8q_us1280_ds512.ini` is very useful to avoid performance problems in situations where 2500 Mbps speed profiles are used. To enable it, run this command: ```sh fw_setenv mib_file data_1g_8q_us1280_ds512.ini ``` ## Setting custom OMCI MIB file -{% include alert.html content="If you need to set the ONU version remember that you will have to do it using your custom MIB file instead of `/etc/mibs/data_1g_8q.ini`" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="If you need to set the ONU version, remember that you will have to do it using your custom MIB file instead of `/etc/mibs/data_1g_8q.ini`" alert="Info" icon="svg-info" color="blue" %} -You have to copy the MIB file to /etc/mibs and then run this command: +Copy the MIB file to /etc/mibs, then run this command: ```sh fw_setenv mib_file YOUR_MIB_FILENAME ``` @@ -330,11 +330,11 @@ reboot ``` ## Disable RX_LOS status -{% include alert.html content="The patch below is only compatible with the firmware version `6BA1896SPLQA42`" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="The patch provided below is only compatible with the firmware version `6BA1896SPLQA42`" alert="Info" icon="svg-info" color="blue" %} -Some switches/routers (e.g. Mikrotik) do not allow access to the magament interface without the fiber connected because the SFP reports RX_LOS status, it's possible to modify the `mod_optic.ko` driver to spoof non RX_LOS status by setting PIN 8 (RX_LOS) to be always low. +Some switches/routers (e.g. Mikrotik) do not allow access to the magament interface without the fiber being connected because the SFP reports RX_LOS status It is possible to fix this by modifying the `mod_optic.ko` driver to spoof non RX_LOS status by setting PIN 8 (RX_LOS) to be always low. -This is the change to be made in hex format: +This is the change to be made, in hex format: ``` < 00013740: 2404 0003 2405 0001 0c00 0000 ac43 0980 $...$........C.. @@ -356,28 +356,28 @@ Save it on your computer (not on the stick) as `mod_optic.base64`, then run: base64 -d mod_optic.base64 > mod_optic.bspatch bspatch <your_original_mod_optic.ko> mod_optic.ko mod_optic.bspatch ``` -{% include alert.html content="if you don't have bspatch installed, most distributions includes it in bsdiff package" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="If you don't have bspatch installed, most distributions include it in the bsdiff package" alert="Info" icon="svg-info" color="blue" %} -After patching the resulting patched `mod_optic.ko` should have an md5 checksum of `e14a5a70b023873853afe920870f076e`. -If that also checks, go on making a backup copy of your original `mod_optic.ko` on the stick. +After patching the resulting `mod_optic.ko` should have an md5 checksum of `e14a5a70b023873853afe920870f076e`. +If that is also correct, continue by making a backup copy of your original `mod_optic.ko` on the stick. ```sh cd /lib/modules/3.10.49/ cp mod_optic.ko mod_optic.ko.original ``` -Now you have to use SCP to copy the modified `mod_optic.ko` kernel module in `/lib/modules/3.10.49/mod_optic.ko`. +Now use SCP to copy the modified `mod_optic.ko` kernel module in `/lib/modules/3.10.49/mod_optic.ko`. ## TX Fault / Serial -The stick stays in a perpetual "TX Fault" state since the same SFP pin is used for both serial and TX Fault signaling, if that causes you issues (normally it shouldn't) you can issue the commands below to disable it. Note that it will disable both the TX Fault signal and Serial on the stick after boot. +The stick will remain in a perpetual "TX Fault" state as the same SFP pin is used for both serial and TX Fault signaling. If this causes you issues (normally it shouldn't), you can issue the commands below to disable it. Note that this will disable both the TX Fault signal and Serial on the stick after boot. ```sh fw_setenv asc0 1 fw_setenv preboot "gpio set 3;gpio input 100;gpio input 105;gpio input 106;gpio input 107;gpio input 108" ``` -In case you need to re-enable it issue the following commands from the bootloader (FALCON) +In case you need to re-enable it, issue the following commands from the bootloader (FALCON) ```sh FALCON => setenv asc0 0 @@ -401,11 +401,11 @@ strings /opt/lantiq/bin/omcid | grep compiled ``` # EEPROM (I2C slave simulated EEPROM) -The FS GPON-ONU-34-20BI does not have a physical EEPROM, the Falcon SOC emulates an EEPROM by exposing it on the I2C interface as required by the SFF-8472 specification. +The FS GPON-ONU-34-20BI stick does not have a physical EEPROM, the Falcon SOC emulates an EEPROM by exposing it on the I2C interface as required by the SFF-8472 specification. -On the I2C interface there will be two memories of 256 bytes each at the addresses `1010000X (A0h)` and `1010001X (A2h)`, however in reality the memory available from the emulated EEPROM will be 640 bytes each but only the first 256 bytes will be exposed in the I2C interface. +On the I2C interface, two memories of 256 bytes each will be available at the addresses `1010000X (A0h)` and `1010001X (A2h)`, however the actual available memory from the emulated EEPROM will be 640 bytes each, but only the first 256 bytes will be exposed in the I2C interface. -The FS GPON-ONU-34-20BI stores the content of the emulated EEPROM in U-Boot env variables to restore it after a reboot: +The FS stick stores the content of the emulated EEPROM in U-Boot env variables to restore it after a reboot: - `EEPROM0 (A0h)` stored in U-Boot env variable `sfp_a0_low_128` - `EEPROM1 (A2h)` stored in U-Boot env variable `sfp_a2_info` diff --git a/_ont/ont-genexis-ft-g2110c.md b/_ont/ont-genexis-ft-g2110c.md index 8a95a31..4aeee5a 100644 --- a/_ont/ont-genexis-ft-g2110c.md +++ b/_ont/ont-genexis-ft-g2110c.md @@ -43,7 +43,7 @@ The ONT has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be acc {% include image.html file="ft-g2110c-internal.jpg" alt="FiberTwist G2110C-2.5G Internal" caption="FiberTwist G2110C-2.5G Internal" %} -{% include alert.html content="Some USB TTL adapters label TX and RX pins the other way around: try to swap them if the connection doesn't work." alert="Note" icon="svg-warning" color="yellow" %} +{% include alert.html content="Some USB TTL adapters label TX and RX pins the other way around: try swapping them if the connection doesn't work." alert="Note" icon="svg-warning" color="yellow" %} ## List of software versions - C-5.6.1-R @@ -76,7 +76,7 @@ This ONT supports dual boot. # GPON/OMCI settings -{% include alert.html content="Some variables are write-protected, you need to unlock them before proceed" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="Some variables are write-protected, you need to unlock them before proceeding" alert="Info" icon="svg-info" color="blue" %} Use the following command to unlock write-protected variables: @@ -93,7 +93,7 @@ Use the following command to unlock write-protected variables: ``` Reboot the ONT to apply any changes -You can check if the serial number was correclty changed using the following command: +You can check if the serial number was correctly changed using the following command: ```sh # diag gpon get serialnumber @@ -109,8 +109,8 @@ ZTEGaaa01234 GPON_PLOAM_PASSWD=AAAAAAAAAA # /etc/scripts/flash set GPON_PLOAM_PASSWD AAAAAAAAAA ``` -Looks like Genexis has also included an U-Boot variable to store the PLOAM. On currently known firmwares (5.6.1 and 5.7.0) it is not read by the `omci_app` daemon. -If you want to be future proof, put your PLOAM also on U-Boot env using the following command in the OS shell: +It seems Genexis has also included a U-Boot variable to store the PLOAM. On currently known firmwares (5.6.1 and 5.7.0) it is not read by the `omci_app` daemon. +For future-proofing reasons, set your PLOAM also on the before-mentioned U-Boot env using the following command in the OS shell: ```sh # nv setenv ploampwd 1234567890 @@ -119,10 +119,9 @@ ploampwd=1234567890 ## Setting OMCI software version (ME 7) The stock firware does not allow changing of the primary and standby software version. -Since the ONT uses the Luna SDK, the `/etc/scripts/flash` shell script can be easily modified by creating a custom firmware with -the same set of patches suggested e.g. for the [Technicolor AFM0002](/ont-technicolor-afm0002) ONT. +As the ONT uses the Luna SDK, the `/etc/scripts/flash` shell script can be easily modified by creating a custom firmware with the same set of patches suggested e.g. for the [Technicolor AFM0002](/ont-technicolor-afm0002) ONT. -You can then check if the software version was correctly changed with this command (take a look at the `Version` field): +You can then check if the software version was changed correctly with this command (take a look at the `Version` field): ```sh # omcicli mib get 7 @@ -154,14 +153,14 @@ ImageHash: 0x00000000000000000000000000000000 ```sh # nv setenv HV G2110CE2V1D0 ``` -Reboot ONT to apply the change +Reboot the ONT to apply the change ## Setting OMCI equipment ID (ME 257) ```sh # nv setenv ProdName FT-G2110C-2.5G ``` -Reboot ONT to apply the change +Reboot the ONT to apply the change # Advanced settings @@ -173,7 +172,7 @@ LAN_IP_ADDR=192.168.1.1 ``` # Known Bugs -- Web UI can be enabled by modding the firmware, but without an attached fiber the daemon will crash +- The web UI can be enabled by modding the firmware, but the daemon will crash if no optical signal is received # Miscellaneous Links - [FiberTwist G2110C-2.5G](https://genexis.eu/content/uploads/2020/07/FiberTwist-G2110C-2.5G-Installation-Guide-v1.0-EN.pdf) diff --git a/_ont/ont-huawei-eg8010h.md b/_ont/ont-huawei-eg8010h.md index 6077c73..4377e52 100644 --- a/_ont/ont-huawei-eg8010h.md +++ b/_ont/ont-huawei-eg8010h.md @@ -22,7 +22,7 @@ parent: Huawei | IP address | 192.168.100.1 | | Web Gui | ✅ user `root`, password `admin` or `adminHW` and user `Epadmin`, password `adminEp` | | SSH | | -| Telnet | After Enabling user `root`, password `admin` or `adminHW` | +| Telnet | After enabling, user `root`, password `admin` or `adminHW` | | Serial | | | Form Factor | ONT | diff --git a/_ont/ont-huawei-ma5671a-carlito.md b/_ont/ont-huawei-ma5671a-carlito.md index afaef44..cc54827 100644 --- a/_ont/ont-huawei-ma5671a-carlito.md +++ b/_ont/ont-huawei-ma5671a-carlito.md @@ -5,7 +5,7 @@ parent: Huawei MA5671A layout: default --- -{% include alert.html content="Be careful, back up the goi_config from uboot before changing firmware." alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="Be careful, backup goi_config from uboot before changing the firmware." alert="Info" icon="svg-info" color="blue" %} # GPON ONU status @@ -13,27 +13,27 @@ layout: default ```sh omci_pipe.sh meg MIB_IDX ME_IN ``` -Where `MIB_IDX` is the MIB ID and the `ME_IN` is the ME instance number +Where `MIB_IDX` is the MIB ID and `ME_IN` is the ME instance number ## Getting/Setting Speed LAN Mode -To enable the 2.5 Gbps / HSGMII with auto-neg on: +To enable the interface to sync at 2.5 Gbps / using HSGMII with auto-neg on: ```sh fw_setenv sgmii_mode 5 ``` -To remove the value (back to default): +To revert the afore-mentioned command: ```sh fw_setenv sgmii_mode ``` -To get the LAN Mode: +To check the set value fo the LAN Mode: ```sh onu lanpsg 0 ``` -The `link_status` variable tells the current speed +The `link_status` variable tells the current speed: | Value (for `sgmii_mode` and `link_status`) | Speed | | ------------------------------------------ | ---------------------------------- | diff --git a/_ont/ont-huawei-ma5671a-fs-mod.md b/_ont/ont-huawei-ma5671a-fs-mod.md index 7b04002..2d43ca8 100644 --- a/_ont/ont-huawei-ma5671a-fs-mod.md +++ b/_ont/ont-huawei-ma5671a-fs-mod.md @@ -11,20 +11,20 @@ layout: default Flash the firmware image to image0 or image1 via [SSH](/ont-huawei-ma5671a/#flashing-a-new-rootfs-via-ssh) or via [TTL serial](/ont-huawei-ma5671a-ymodem) as usual. -After the flash it is absolutely necessary to connect to the SFP via telnet using the IP 192.168.1.10: +After flashing, it is absolutely necessary to connect to the SFP via telnet using the IP 192.168.1.10: ```sh telnet 192.168.1.10 ``` -Once connected via telnet to the SFP, execute the following commands, it will be necessary to wait a few minutes until the end of the automatic procedure: +Once connected via telnet to the SFP, execute the following commands. Then wait a few minutes until the end of the automatic procedure: ```sh firstboot reboot ``` -Remember that with each flash of this firmware it is always necessary to perform the procedure described above, otherwise the SFP will not work! +Performing the procedure described above is necessary after each flash of this firmware, otherwise the SFP will not work! # Login info @@ -40,17 +40,17 @@ Remember that with each flash of this firmware it is always necessary to perform # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU ```sh onu ploam_state_get ``` -## Get optical laser status +## Getting optical laser status ```sh otop -g s ``` -## Get information of the OLT vendor +## Getting information of the OLT vendor ```sh omci_pipe.sh meg 131 0 ``` @@ -59,14 +59,14 @@ omci_pipe.sh meg 131 0 ```sh omci_pipe.sh meg MIB_IDX ME_IN ``` -Where `MIB_IDX` is the MIB ID and the `ME_IN` is the ME instance number +Where `MIB_IDX` is the MIB ID and `ME_IN` is the ME instance number. -## Get VLAN table rule +## Getting VLAN table rule ```sh gtop -g "GPE VLAN rule" ``` -## Get GEM port status table +## Getting GEM port status table ```sh gtop -g e ``` @@ -78,7 +78,7 @@ To get the LAN Mode: ```sh onu lan_port_status_get 0 ``` -The `link_status` variable tells the current speed +The `link_status` variable tells the current speed: | Value (for `sgmii_mode` and `link_status`) | Speed | | ------------------------------------------ | ---------------------------------- | @@ -133,10 +133,11 @@ fw_setenv image1_version "YOUR_SW_VERSION_1" # Advanced settings -{% include alert.html content="Normally they are not necessary and it would be better not to touch them" alert="Note" icon="svg-warning" color="red" %} +{% include alert.html content="Changing these is normally not necessary and not changing them is a good idea" alert="Note" icon="svg-warning" color="red" %} ## Setting custom OMCI MIB file -You have to copy the MIB file to /etc/mibs and then run this command: + +Copy the MIB file to /etc/mibs, then run this command: ```sh fw_setenv mib_file_custom "YOUR_MIB_FILENAME" @@ -155,7 +156,7 @@ reboot # SFP EEPROM settings -{% include alert.html content="Normally they are not necessary and it would be better not to touch them" alert="Note" icon="svg-warning" color="red" %} +{% include alert.html content="Changing these is normally not necessary and not changing them is a good idea" alert="Note" icon="svg-warning" color="red" %} ## Setting SFP vendor name ```sh diff --git a/_ont/ont-huawei-ma5671a-root-web.md b/_ont/ont-huawei-ma5671a-root-web.md index 6b514f4..99e640d 100644 --- a/_ont/ont-huawei-ma5671a-root-web.md +++ b/_ont/ont-huawei-ma5671a-root-web.md @@ -39,13 +39,13 @@ Connect the TTL adapter to the computer, once done press the following button. A # Connect to the stick via SSH -After this is done, reboot the stick, after connecting it to the router via an ethernet mediaconverter or directly plug it in an SFP port, with the port's IP set to whatever IP of the `192.168.1.0/24` subnet (the stick has the IP `192.168.1.10`) +After this is done, reboot the stick, after connecting it to a router via an ethernet mediaconverter or directly plugging it in an SFP port, with the port's IP set to any IP of the `192.168.1.0/24` subnet (the stick has the IP `192.168.1.10`) -{% include alert.html content="If your subnet is `192.168.1.0/24` make sure you have no ip conflicts." alert="Note" icon="svg-warning" color="yellow" %} +{% include alert.html content="If your LAN subnet is `192.168.1.0/24` make sure you have no ip conflicts." alert="Note" icon="svg-warning" color="yellow" %} {% include alert.html content="On some SFP host devices you might not be able to connect to the stick if there's no optical signal (RX loss), in that case you need to connect the fiber to make changes on the stick" alert="Note" icon="svg-warning" color="yellow" %} -Run the terminal and login to the stick with ssh +Run the terminal and login to the stick using ssh: ```shell ssh root@192.168.1.10 @@ -57,14 +57,14 @@ The password is `admin123`. # TX Fault / Serial -The stick stays in a perpetual "TX Fault" state since the same SFP pin is used for both serial and TX Fault signaling, if that causes you issues (normally it shouldn't) you can issue the commands below to disable it. Note that it will disable both the TX Fault signal and Serial on the stick after boot. +The stick stays in a perpetual "TX Fault" state since the same SFP pin is used for both serial and TX Fault signaling. If that causes you issues (normally it shouldn't), you can issue the commands below to disable it. Note that it will disable both the TX Fault signal and Serial on the stick after boot. ```sh fw_setenv asc0 1 fw_setenv preboot "gpio set 3;gpio input 100;gpio input 105;gpio input 106;gpio input 107;gpio input 108" ``` -In case you need to re-enable it issue the following commands from the bootloader (FALCON) +In case you need to re-enable it, issue the following commands from the bootloader (FALCON) ```sh FALCON => setenv asc0 0 diff --git a/_ont/ont-huawei-ma5671a-root.md b/_ont/ont-huawei-ma5671a-root.md index 0fbf987..7e01b25 100644 --- a/_ont/ont-huawei-ma5671a-root.md +++ b/_ont/ont-huawei-ma5671a-root.md @@ -134,9 +134,9 @@ sed -i "s|/opt/lantiq/bin/minishell|/bin/ash|g" /etc/passwd {% include alert.html content="The cause of these kernel panics could be insufficient supply of power." alert="Info" icon="svg-info" color="blue" %} {:style="counter-reset:none"} -1. After this is done, reboot the stick, after connecting it to the router via an ethernet mediaconverter or directly plug it in an SFP port, with the port's IP set to whatever IP of the 192.168.1.0/24 subnet (the stick has the IP 192.168.1.10) +After this is done, reboot the stick, after connecting it to a router via an ethernet mediaconverter or directly plugging it in an SFP port, with the port's IP set to any IP of the `192.168.1.0/24` subnet (the stick has the IP `192.168.1.10`) -{% include alert.html content="If your subnet is 192.168.1.0/24 make sure you have no ip conflicts." alert="Note" icon="svg-warning" color="yellow" %} +{% include alert.html content="If your LAN subnet is `192.168.1.0/24` make sure you have no ip conflicts." alert="Note" icon="svg-warning" color="yellow" %} {% include alert.html content="On some SFP host devices you might not be able to connect to the stick if there's no optical signal (RX loss), in that case you need to connect the fiber to make changes on the stick" alert="Note" icon="svg-warning" color="yellow" %} @@ -157,7 +157,7 @@ The password is `admin123`. {% include alert.html content="This procedure requires the physical disassembly of the stick, and the use of tweezers that can burn the stick, it is highly recommended not to use it." alert="Important" icon="svg-warning" color="red" %} -1. take the SFP molex and the 4 coloured cables and solder them to the molex according to the following diagram: +1. Take the SFP molex and the 4 coloured cables and solder them to the molex according to the following diagram: | USB TTL (UART) Adapter | wire colour in picture | SFP 20pins Molex connector | | ---------------------- | ---------------------- | -------------------------- | @@ -177,14 +177,14 @@ The password is `admin123`. {% include image.html file="ma5671a-root-4.jpg" alt="Metal tabs that hold the cover in place" caption="Metal tabs that hold the cover in place" %} {:style="counter-reset:none"} -1. Once you have removed the metal casing, you are left with the half-naked stick (note that the release mechanism also comes off easily and then you don't know how to put it back together, so take a photo and memorise the positioning well). +1. Once you have removed the metal casing, you are left with the half-naked stick. Note that the release mechanism also comes off easily, so it is recommended to take a photo and to memorise the positioning to be able to put it back together in the case it does come off. -1. Before shorting the stick, connect the previously soldered cables and molex to the USB serial (photo immediately below) and to the stick (the molex, of course) and check that the jumper on the usb key is set to 3.3V +1. Before shorting the stick, connect the previously soldered cables and molex to the USB serial (photo immediately below) and to the stick (via the molex, of course) and check that the jumper on the usb key is set to 3.3V {% include image.html file="ma5671a-root-8.jpg" alt="TTL" caption="TTL" %} {:style="counter-reset:none"} -1. The disassembled stick will appear as in the photo, in which I have highlighted in red the 2 pins to be shorted. Here they use wire, but a pair of tweezers is sufficient (I used those, in fact). Be careful not to make any other contacts by possibly covering everything else with electrical tape. +1. The disassembled stick will appear as in the photo: the two pins to be shorted are highlighted in red. In the photo below a wire is used, but a pair of tweezers is sufficient (I used those, in fact). Be careful not to touch anything around the two pins by possibly covering everything else with electrical tape. {% include image.html file="ma5671a-root-4.jpg" alt="tweezers" caption="tweezers" %} {% include image.html file="ma5671a-root-6.jpg" alt="tweezers" caption="tweezers" %} @@ -192,9 +192,10 @@ The password is `admin123`. {% include image.html file="ma5671a-root-6.jpg" alt="tweezers" caption="tweezers" %} {:style="counter-reset:none"} -1. For the moment connect all cables to the usb key except the green (ground) or red (voltage), otherwise the stick will boot before you can do the following (N.B. for those who bought the uart above RX and TX are reversed). Open and configure Teratem for serial connection (select the correct com port, speed 115.200, english language, otherwise in japainise you can't read anything understandable) insert the key in the PC (I take it for granted that it has already been installed, drivers and all), short the 2 pins seen above and keeping the short connected the missing coloured cable +1. For the moment connect all cables to the usb key except the green (ground) or red (voltage), otherwise the stick will boot before you can do the following (N.B. for those who bought the uart above RX and TX are reversed). Open and configure Tera Term for serial connection by selecting the correct com port, speed 115200 bauds, english language (otherwise in japanese you can't read anything understandable), then insert the key in the PC (the adapter being already installed is taken for granted), short the 2 pins seen above and, while keeping the pins shorted, connect the missing coloured cable -1. If you have done everything correctly, you should see something similar to the picture below (if nothing happens, you have obviously done something wrong with cables, molexes, soldering irons, etc., so you will have to start from the beginning again and work out which step you did wrong): +1. If nothing happens, you have obviously done something wrong with cables, molexes, soldering irons, etc., so you will have to start from the beginning again and work out which step you did wrong. +If you have done everything correctly, you should see something similar to the picture below: {% include image.html file="ma5671a-root-9.png" alt="serial shell" caption="serial shell" %} @@ -204,12 +205,12 @@ The password is `admin123`. {% include image.html file="ma5671a-root-10.png" alt="serial shell 2" caption="serial shell 2" %} {:style="counter-reset:none"} -1. From the Teraterm menu `FILE` → `TRANSFER` → `XMODEM` → `SEND` → `[1224abort.bin]` (which is the third of the files downloaded earlier): +1. From the Tera Term menu `FILE` → `TRANSFER` → `XMODEM` → `SEND` → `[1224abort.bin]` (which is the third of the files downloaded earlier): {% include image.html file="ma5671a-root-11.png" alt="1224abort.bin" caption="1224abort.bin" %} {:style="counter-reset:none"} -1. As soon as the file transfer is complete, you have 2 seconds to press `CTRL+C`, if you have not done so, you can return to the step 6. Otherwise, you should see: +1. As soon as the file transfer is complete, you have 2 seconds to press `CTRL+C`. If you have not done so, return to step 6. Otherwise, you should see: {% include image.html file="ma5671a-root-12.png" alt="falcon shell" caption="falcon shell" %} @@ -224,10 +225,10 @@ FALCON => saveenv {% include alert.html content="Originally, this other string was used for the `setenv preboot`: `gpio input 105;gpio input 106;gpio input 107;gpio input 108;gpio set 3;gpio set 109;gpio set 110;gpio clear 423;gpio clear 422;gpio clear 325;gpio clear 402;gpio clear 424`" alert="Info" icon="svg-info" color="blue" %} -{% include alert.html content="Instead of the nexts points, it is recommended to boot and run the `sed` command documented in V2" alert="Warning" icon="svg-warning" color="red" %} +{% include alert.html content="Instead of taking the next steps, it is recommended to boot and run the `sed` command documented in V2" alert="Warning" icon="svg-warning" color="red" %} {:style="counter-reset:none"} -1. If you have done everything correctly you can reboot the stick (actually if you are convinced that everything is ok you could also close it again), disconnecting and reconnecting one of the 2 cables from before (ground or voltage), then again from the terminal you will have 5 seconds to lock the bootloader by doing a simple CTRL+C. Now upload the firmware image of the first mtd2 partition to the stick with the command +1. If you have done everything correctly you can reboot the stick (if you are convinced that everything is ok you could also close it again), disconnect and reconnect either the ground or voltage cable, then again you will have 5 seconds to lock the bootloader by doing a simple CTRL+C using the terminal. Now upload the firmware image of the first mtd2 partition to the stick with the command ``` FALCON => loadb 0x80800000 ``` @@ -236,8 +237,8 @@ At this point it will appear: {% include image.html file="ma5671a-root-13.jpg" alt="shell requiring `mtd2` upload" caption="shell requiring `mtd2` upload" %} {:style="counter-reset:none"} -1. From the teratem menu do `FILE` → `TRANSFER` → `KERMIT` → `SEND` → `[mtd2.bin]`. -It will start uploading the file at a speed of about 3-4 KBps. Now you will have to wait more than half an hour for the upload to complete. +1. From the Tera Term menu do `FILE` → `TRANSFER` → `KERMIT` → `SEND` → `[mtd2.bin]`. +It will start uploading the file at a speed of about 3-4 KBps: it should take more than half an hour for the upload to complete. 1. Once finished, the image loaded on the stick must also be saved to the corresponding system partition (the first of the 2) with the commands ``` @@ -246,11 +247,11 @@ FALCON => sf erase C0000 740000 FALCON => sf write 80800000 C0000 740000 ``` -1. check that the stick is configured to boot from partition 0 (yes I know mtd2 goes on 0 and mtd5 goes on 1, complain to Laniq) with the command +1. Check that the stick is configured to boot from partition 0 (We are aware that mtd2 goes on 0 and mtd5 goes on 1, complain to Lantiq about this) with the command: ``` FALCON => printenv committed_image ``` -1. If it is 0, fine, otherwise configure partition 0 with the commands, and check if are 0. +1. If it is 0 there's no need to do anything, otherwise configure the stick to boot from partition 0 with the following commands, then check if the settings were changed correctly. ``` FALCON => setenv committed_image 0 FALCON => saveenv diff --git a/_ont/ont-huawei-ma5671a-rooted.md b/_ont/ont-huawei-ma5671a-rooted.md index 1b7e97d..ab60890 100644 --- a/_ont/ont-huawei-ma5671a-rooted.md +++ b/_ont/ont-huawei-ma5671a-rooted.md @@ -19,7 +19,7 @@ For general use, minishell does not allow any modifications and [Web root proced # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU ```sh onu ploamsg @@ -33,12 +33,12 @@ Where `MIB_IDX` is the MIB ID and `ME_IN` is the ME instance number # GPON/OMCI settings -{% include alert.html content="In this firmware, unlike the other ones, the data must be modified in a base64-encoded file. To simplify this, you can use the following web application." alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="In this firmware, unlike the other ones, all data must be modified in a base64-encoded file. To simplify this, you can use the following web application." alert="Info" icon="svg-info" color="blue" %} ## Web procedure -1. Get `fw_printenv sfp_a2_info` and paste into the form +1. Get `fw_printenv sfp_a2_info` and paste into the form: <div id="app"> <vue-lantiq-eeprom type='eeprom-rooted-edit'></vue-lantiq-eeprom> @@ -47,7 +47,7 @@ Where `MIB_IDX` is the MIB ID and `ME_IN` is the ME instance number <script src="https://cdn.jsdelivr.net/npm/vue3-sfc-loader"></script> <script src="/assets/js/vue-eeprom.js"></script> -{% include alert.html content="Executing these commands requires a minimum of familiarity with `vim`. If you do not know `vim`, follow the commands precisely." alert="Danger" icon="svg-warning" color="red" %} +{% include alert.html content="Executing these commands requires familiarity with `vim`. If you are not in any way familiar with `vim`, follow these commands precisely." alert="Danger" icon="svg-warning" color="red" %} {:style="counter-reset:none"} 1. Copy the script's output to the clipboard @@ -82,7 +82,7 @@ AAAAAAAAAAJIV1RDESIzRP///////////////////wAAAAAAAAAAAAAAAAAA 00000000000000024857544311223344ffffffffffffffffffffffffffffff0000000000000000000000000000 ``` -The entire S/N, including the PON ID, is encoded first in hexadecimal and then in base64 +The entire S/N, including the PON ID, is first encoded in hexadecimal and then in base64 3. Setting PLOAM Password @@ -92,7 +92,7 @@ ffffffffffffffff00021437d77db7df7e37e77eb7ef7f37f77d0000000000000000000000000000 //////////8AAhQ31323334353637383930AAAAAAAAAAAAAAAAAAAAAAAAA ``` -The entire PLOAM, is encoded first in hexadecimal and then in base64 +The entire PLOAM, is first encoded in hexadecimal and then in base64 4. Setting MAC Address @@ -132,7 +132,7 @@ The `link_status` variable tells the current speed | 4 | 1 Gbps / SGMII with auto-neg off | | 5 | 2.5 Gbps / HSGMII with auto-neg on | -To change the default lan mode value you can use `fw_setenv sgmii_mode`. The firmware already has the value 5 by default and it is generally not necessary to change it. +To change the default lan mode value you can use `fw_setenv sgmii_mode`. The firmware is already set to 2.5G auto-negotiation, you shouldn't touch it. # Advanced settings diff --git a/_ont/ont-huawei-ma5671a-ymodem.md b/_ont/ont-huawei-ma5671a-ymodem.md index cd1339c..9a7b551 100644 --- a/_ont/ont-huawei-ma5671a-ymodem.md +++ b/_ont/ont-huawei-ma5671a-ymodem.md @@ -5,7 +5,7 @@ parent: Huawei MA5671A layout: default --- -This procedure flashes the firmware in the stick via serial. You have to get firmware to flash, some are listed on the [Huawei MA5671A page](/ont-huawei-ma5671a). +This procedure flashes the firmware on the stick via serial. Some of the firmwares that can be flashed are listed on the [Huawei MA5671A page](/ont-huawei-ma5671a). {: .text-center .fs-6 } <button id="flash-start-button" class="btn btn-blue" data-jtd-toggle="modal" data-jtd-target="#flash-modal">Start flash!</button> diff --git a/_ont/ont-huawei-useful-command.md b/_ont/ont-huawei-useful-command.md index 4f0e91c..9c3f6b5 100644 --- a/_ont/ont-huawei-useful-command.md +++ b/_ont/ont-huawei-useful-command.md @@ -1,8 +1,8 @@ ## Enabling telnet -We need access to a specific shell and in order to get it we have to enable telnet. On the unit, the telnet server accepts connections but doesn't read any input, nor does it send anything. +We need access to a specific shell and in order to get it enabling telnet is required. On the ONT, the telnet server accepts connections but doesn't read any input, nor does it send anything. -To enable telnet we’ll use one of the web interface’s features: the configuration backup and restore page. The configuration can be downloaded as an XML, which contains a lot more options than the web interface and a couple of them can be modified to enable telnet access: under the `X_HW_CLITelnetAccess` node, set the `Access` attribute to `1` and in `AclServices`, `TELNETLanEnable` should also be set to `1`. I had to set both but your mileage may vary. +To enable telnet the configuration backup/restore web UI page will be used. The configuration can be downloaded as an XML, which contains a lot more options than the web interface and a couple of them can be modified to enable telnet access: under the `X_HW_CLITelnetAccess` node, set the `Access` attribute to `1` and, in `AclServices`, `TELNETLanEnable` should also be set to `1`. Both might have to be set but your mileage may vary. It is possible that this won't work/has been fixed in more recent versions. @@ -12,7 +12,7 @@ Now that this is done, the modified configuration file can be uploaded via the w # GPON ONU status -## Get information of the OLT vendor +## Getting information on the OLT vendor ``` WAP>omcicmd mib show meid 131 instid 0 diff --git a/_ont/ont-leox-lxt-010g-d.md b/_ont/ont-leox-lxt-010g-d.md index ef8b272..af3fc37 100644 --- a/_ont/ont-leox-lxt-010g-d.md +++ b/_ont/ont-leox-lxt-010g-d.md @@ -33,6 +33,6 @@ The ONT has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be acc {% include_relative ont-luna-sdk-useful-commands.md ploam='ascii' flash='/etc/scripts/flash' - customSwVersionAlert='This needs the `OMCI_OLT_MODE` value to be set to `21`. This will force to use your own settings from the XML file, but this is a hack and causes sigsegv of `/bin/checkomci`.' + customSwVersionAlert='This needs the `OMCI_OLT_MODE` value to be set to `21`. This will force the stick to use your own settings from the XML file, but this is a hack and causes sigsegv of `/bin/checkomci`.' omciOLT21='true' %} diff --git a/_ont/ont-leox-lxt-010h-d.md b/_ont/ont-leox-lxt-010h-d.md index 2d9ffda..96605b9 100644 --- a/_ont/ont-leox-lxt-010h-d.md +++ b/_ont/ont-leox-lxt-010h-d.md @@ -61,19 +61,19 @@ The ONT has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be acc This ONT supports dual boot. -`k0` and `r0` respectively contain the kernel and firmware of the first image, while `k1` and `r1` respectively contain the kernel and the firmware of the second one. +`k0` and `r0` respectively contain kernel and firmware of the first image, while `k1` and `r1` contain kernel and firmware of the second one. ## List firmware version - V3.3.2L6 - V3.3.2L7 -{% include alert.html content="Before proceed on any modification, make a backup of files rtl8290b.data and europa.data from /var/config folder. These files include optical calibration of your ONT's laser, if you accidentally delete or ruin them, your ONT will be unusable" alert="Note" icon="svg-warning" color="yellow" %} +{% include alert.html content="Before proceeding with any modification, make a backup of files rtl8290b.data and europa.data from /var/config folder. These files include optical calibration of your ONT's laser, if you accidentally delete or ruin them, your ONT will be unusable" alert="Note" icon="svg-warning" color="yellow" %} {% include_relative ont-luna-sdk-useful-commands.md ploam='ascii' flash='/etc/scripts/flash' - customSwVersionAlert='This needs the `OMCI_OLT_MODE` value to be set to `21`. This will force to use your own settings from the XML file, but this is a hack and causes sigsegv of `/bin/checkomci`.' + customSwVersionAlert='This needs the `OMCI_OLT_MODE` value to be set to `21`. This will force the stick to use your own settings from the XML file, but this is a hack and causes sigsegv of `/bin/checkomci`.' omciOLT21='true' %} diff --git a/_ont/ont-leox-lxt-010s-h.md b/_ont/ont-leox-lxt-010s-h.md index fffbf10..138b536 100644 --- a/_ont/ont-leox-lxt-010s-h.md +++ b/_ont/ont-leox-lxt-010s-h.md @@ -50,7 +50,7 @@ parent: LEOX This stick supports dual boot. -`k0` and `r0` respectively contain the kernel and firmware of the first image, while `k1` and `r1` respectively contain the kernel and the firmware of the second one. +`k0` and `r0` respectively contain kernel and firmware of the first image, while `k1` and `r1` contain kernel and firmware of the second one. ## Serial @@ -62,7 +62,7 @@ The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be a ## List firmware version -{% include alert.html content="There is a new firmware avaliable from LeoLabs that fixes the 2.5GbE" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="There is a new firmware provided by LeoLabs that fixes issues with the stick operating at 2.5GbE speeds" alert="Note" icon="svg-info" color="blue" %} - V3.3.4L3 - V3.3.4L4rc1 (Fix 2.5GbE HiSGMII) @@ -71,11 +71,11 @@ The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be a {% include_relative ont-luna-sdk-useful-commands.md ploam='ascii' speedLan='18' - customSpeedLanAlert='You need firmware `V3.3.4L4rc1` or higher. Before editing the speed make sure your hardware supports it. If you try to use any mode not listed here, stick will default to mode 1.' + customSpeedLanAlert='Firmware version `V3.3.4L4rc1` or higher is required. Before editing the speed make sure your hardware supports it. If you try to use any mode not listed here, the stick will default to mode 1.' flash='/etc/scripts/flash' - customSwVersionAlert='This needs the `OMCI_OLT_MODE` value to be set to `21`. This will force to use your own settings from the XML file, but this is a hack and causes sigsegv of `/bin/checkomci`.' + customSwVersionAlert='This needs the `OMCI_OLT_MODE` value to be set to `21`. This will force the stick to use your own settings from the XML file, but this is a hack and causes sigsegv of `/bin/checkomci`.' omciOLT21='true' %} # Known Bugs -The stock firmware doesn't work @ 2.5GbE. There is a new firmware avaliable from LeoLabs that fixes this issue. +The stock firmware doesn't work at 2.5GbE. There is a new firmware provided by LeoLabs that fixes this issue. diff --git a/_ont/ont-luna-sdk-useful-commands.md b/_ont/ont-luna-sdk-useful-commands.md index e48cda5..724add3 100644 --- a/_ont/ont-luna-sdk-useful-commands.md +++ b/_ont/ont-luna-sdk-useful-commands.md @@ -17,7 +17,7 @@ # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU ```sh diag gpon get onu-state @@ -69,7 +69,7 @@ GPON_SN=TMBB00000000 ## Getting/Setting ONU GPON PLOAM password {% if include.ploam == 'asciiAndHex' %} -{% include alert.html content="The ploam can be saved in either ASCII or HEX format, without any 0x or separators" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="The PLOAM password can be saved in either ASCII or HEX format, without any 0x or separators" alert="Note" icon="svg-info" color="blue" %} ```sh # {{ include.flash }} get GPON_PLOAM_PASSWD @@ -180,13 +180,13 @@ OMCI_OLT_MODE=1 | Value | Note | OMCI Information | | ----- | --------------- | ------------------------------------------------------------------------------------------------------ | -| 0 | Default Mode | Stock, some value are cannot be change | +| 0 | Default Mode | Stock setting, some values cannot be changed | | 1 | Huawei OLT Mode | Huawei MA5671a | | 2 | ZTE OLT Mode | ZTE | | 3 | Customized Mode | Custom Software/Hardware Version, OMCC, etc... |{% if include.omciOLT21 %} | 21 | Owerflow Mode | Custom Software/Hardware Version, OMCC, etc... (this is a hack and causes sigsegv of `/bin/checkomci`) |{% endif %} -Some Fiber Vendor/Wholesale/ISP have explicit LAN Port Number provisioning or proprietary OMCI that ONT Stick cant not understand, this will make ONT Stick reply OK whatever OMCI OLT throw at. +Some vendors/wholesale providers/ISPs have explicit LAN Port Number provisioning or proprietary OMCI that the stick cannot understand, this will make the stick reply OK to whatever the OLT sends it via OMCI. `0` = Disable, `1` = Enable, Default is 0 diff --git a/_ont/ont-nokia-g-010g-a.md b/_ont/ont-nokia-g-010g-a.md index e403197..0e110d1 100644 --- a/_ont/ont-nokia-g-010g-a.md +++ b/_ont/ont-nokia-g-010g-a.md @@ -30,8 +30,8 @@ parent: Nokia # Curiosity -In the USA the ex BellSouth network deploys some ONTs labelled 'ALT Optics' that use a different wave length, 1310 nm for upstream and 1550 nm for downstream (instead of 1490 nm). -This was done to make a quick conversion of a network with low fibre capacity, allowing the same fibre to be reused for multiple services: FTTH and FTTC/IFITL[^att_alt_optics_1],[^att_alt_optics_2],[^att_alt_optics_3]. +In the USA, the ex-BellSouth network deploys some ONTs with a 'ALT Optics' label that use a different wave length, 1310 nm for upstream and 1550 nm for downstream (instead of 1490 nm). +This was done to be able to quickly convert a network with low fibre capacity while allowing the same fibre to be reused for multiple services contemporarily: both FTTH and FTTC/IFITL[^att_alt_optics_1],[^att_alt_optics_2],[^att_alt_optics_3]. This is one of the few ONTs that has a variant that works with this wavelength. diff --git a/_ont/ont-nokia-g-010g-q.md b/_ont/ont-nokia-g-010g-q.md index 02b648e..f3c8cc3 100644 --- a/_ont/ont-nokia-g-010g-q.md +++ b/_ont/ont-nokia-g-010g-q.md @@ -50,21 +50,21 @@ This ONT seems to support dual boot (notice partitions "ImageA" and "ImageB"), h ## Serial {% include image.html file="g-010g-q-serial-pinout.jpg" alt="G-010G-Q " caption="G-010G-Q: serial pinout" %} -You can easily communicate with the ONT using a TTL converter (for example the CH341A programmer in TTL mode) by connecting the converters' pins to the ONT following the pinout shown in the image above +You can easily communicate with the ONT using a TTL converter (for example the CH341A programmer in TTL mode) by connecting the converters' pins to the ONT following the pinout shown in the image above. *You don't actually need the two VCC pins, just use TX/RX and GND* {% include alert.html content="The ONT's serial logic is 3V3." alert="Warning" icon="svg-warning" color="red" %} -Make sure the logic of your TTL converter is 3V3 too otherwise you might damage the ONT, in my case I wasn't sure whether the CH341A programmer used 3V3 logic for the TTL part so I set up a voltage divider made of 2 resistors between the TX pin and ground as shown in the image below. +Make sure the logic of your TTL converter is 3V3 too, otherwise you might damage the ONT. To be sure 3V3 is being used, a voltage divider made of 2 resistors between the TX pin and ground as shown in the image below can be used. *Also make sure that your TTL converter RX pin voltage threshold is less than (or equal to) 3V3* {% include image.html file="g-010g-q-serial-voltage-divider.png" alt="G-010G-Q " caption="G-010G-Q: simple serial level converter" %} -Once you've done all that, you can use the TTY client you wish, such as PuTTY, set its baud rate to 115200 and open the connection, then you can start the ONT +Once everything is ok, any TTY client, such as PuTTY, can be used to open the connection with its baud rate set to 115200. At this point, the ONT can be turned on. -You'll see a shell-like prompt: +A shell-like prompt will be visible: ``` ONT> ``` diff --git a/_ont/ont-nokia-g-010s-a.md b/_ont/ont-nokia-g-010s-a.md index 13920d7..bc31a84 100644 --- a/_ont/ont-nokia-g-010s-a.md +++ b/_ont/ont-nokia-g-010s-a.md @@ -35,7 +35,7 @@ parent: Nokia ## Modifying firmware -The Nokia G-010S-A can be flashed with the [Nokia G-010S-P](/ont-nokia-g-010s-p) firmware, provided the MTD layout has been changed beforehand to match the new one. For the full procedure, see the post on [lafibre.info](https://lafibre.info/remplacer-livebox/guide-de-connexion-fibre-directement-sur-un-routeur-voire-meme-en-2gbps/msg870551/#msg870551) +The Nokia G-010S-A can be flashed with the [Nokia G-010S-P](/ont-nokia-g-010s-p) firmware, provided the MTD layout has been changed beforehand to match the new one. For the full procedure, see this post on [lafibre.info](https://lafibre.info/remplacer-livebox/guide-de-connexion-fibre-directement-sur-un-routeur-voire-meme-en-2gbps/msg870551/#msg870551) ## List of software versions @@ -87,7 +87,7 @@ See more info on: [Firmwares G-010S-A](https://github.com/hwti/G-010S-A#firmware # Usage -## Enable serial +## Enabling serial ```sh fw_setenv bootdelay 5 @@ -97,13 +97,13 @@ fw_setenv preboot # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU ```sh onu ploamsg ``` -## Get information of the OLT vendor +## Getting information on the OLT vendor ```sh omci_pipe.sh meg 131 0 @@ -114,7 +114,7 @@ omci_pipe.sh meg 131 0 ```sh omci_pipe.sh meg MIB_IDX ME_IN ``` -Where `MIB_IDX` is the MIB ID and the `ME_IN` is the ME instance number +Where `MIB_IDX` is the MIB ID and `ME_IN` is the ME instance number ## Getting/Setting Speed LAN Mode @@ -123,13 +123,13 @@ Where `MIB_IDX` is the MIB ID and the `ME_IN` is the ME instance number | 4 | 1 Gbps / SGMII | | 5 | 2.5 Gbps / HSGMII with auto-neg on | -To enable the 2.5 Gbps / HSGMII with auto-neg on: +To enable the interface to sync at 2.5 Gbps speeds / using HSGMII with auto-neg on: ```sh fw_setenv sgmii_mode 5 ``` -To remove the value (back to default): +To revert the change back to default: ```sh fw_setenv sgmii_mode ``` @@ -143,8 +143,8 @@ The `link_status` variable tells the current speed # GPON/OMCI settings -## Enable parameters modification -This setting must be inserted in order to performs the others parameters modification +## Enabling parameter modification +This setting must be set in order to perform other parameter modifications ```sh ritool set OperatorID 0000 ``` @@ -168,11 +168,11 @@ To check the current password (the password field contains decimal values of ASC onu gtccg ``` -The value can be changed using the web interface. +This value can be changed using the web interface. ## Getting/Setting OMCI software version (ME 7) -Software verion must be changed by directly modifing firmware by using the patches which can be found in GitHub page of [Nokia G-010-A](https://github.com/hwti/G-010S-A) and adding a folder `0001_swversion` that contins a file `patch.sh`: +The software version must be changed by directly modifying firmware by using the patches found in the wiki's page about the [Nokia G-010-A](https://github.com/hwti/G-010S-A) ONT and then adding a folder `0001_swversion` that contins a file `patch.sh` with the following content: ``` #!/bin/sh @@ -183,7 +183,7 @@ ROOTFS=$1 echo "Changing to software version desidered" sed -i s/3FE46398BGCB22/3FE45655BOCK99/g "$ROOTFS/usr/etc/buildinfo" ``` -Where `3FE46398BGCB22` is the current software version and `3FE45655BOCK99` the software version desidered +Where `3FE46398BGCB22` is the current software version and `3FE45655BOCK99` the desired software version ## Getting/Setting OMCI hardware version (ME 256) @@ -194,7 +194,7 @@ ritool set ICS 01 ## Getting/Setting OMCI equipment ID (ME 257) -This ONT is designed to save nokia equipment ID, specifically to put the equipment ID of a Nokia G-010G-Q we need: +This ONT is designed to save Nokia's equipment ID, specifically to set the equipment ID of a Nokia G-010G-Q the following commands are to be used: ```sh ritool set CleiCode __________ @@ -214,12 +214,12 @@ Where `CleiCode` is the prefix and `Mnemonic` the postfix. ## Backup of all partition -Make a backup of all partitions, an easy way is: +Make a backup of all partitions, an easy way is to run these commands: - On the stick run: ```sh cat /proc/mtd ``` -- For each mtdX run in the lantiq shell: +- For each mtdX run this command in the lantiq shell: ```sh cp /dev/mtdX /tmp ``` @@ -255,7 +255,7 @@ ifconfig eth0:1 192.168.1.10 netmask 255.255.255.0 {% include alert.html content="It is recommended to enable serial access via TTL" alert="Info" icon="svg-info" color="blue" %} -The following commands are used to flash a new rootfs to image1 and then boot to it +The following commands are used to flash a new rootfs to image1 and then boot to it: ```sh mtd write /tmp/rootfs.bin image1 update_env_flag 1 diff --git a/_ont/ont-nokia-g-010s-p.md b/_ont/ont-nokia-g-010s-p.md index 684d335..f3ed514 100644 --- a/_ont/ont-nokia-g-010s-p.md +++ b/_ont/ont-nokia-g-010s-p.md @@ -34,7 +34,7 @@ parent: Nokia <br/> {% include image.html file="g-010s-p-and-ma5671a.jpg" alt="G-010S-P and MA5671A Teardown" caption="G-010S-P and MA5671A Teardown" %} <br/> -{% include alert.html content="G-010S-P and other models will not expose an ethernet interface unless fiber cable is connected ([source](https://forum.mikrotik.com/viewtopic.php?t=116364&start=300))" alert="Warning" icon="svg-warning" color="yellow" %} +{% include alert.html content="G-010S-P and other models will not expose an ethernet interface unless the fiber cable is connected ([source](https://forum.mikrotik.com/viewtopic.php?t=116364&start=300))" alert="Warning" icon="svg-warning" color="yellow" %} ## Firmware is interchangeable with: diff --git a/_ont/ont-nokia-use.md b/_ont/ont-nokia-use.md index bf79767..c4f0847 100644 --- a/_ont/ont-nokia-use.md +++ b/_ont/ont-nokia-use.md @@ -15,7 +15,7 @@ The enable password can be generated using the following form: {% include cig_password.html username="ONTUSER" %} -# Access Full Shell +# Accessing Full Shell To access a complete linux shell just type: ```sh diff --git a/_ont/ont-nokia-useful-command.md b/_ont/ont-nokia-useful-command.md index c5af085..f4e0e48 100644 --- a/_ont/ont-nokia-useful-command.md +++ b/_ont/ont-nokia-useful-command.md @@ -1,6 +1,6 @@ # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU ```sh #ONT>traffic #ONT/system>pon @@ -73,7 +73,7 @@ pon_passwd: 31323334353637383900 ``` ## Setting OMCI software version (ME 7) -The following must be typed from the standard linux shell: +The following command must be typed into the standard linux shell: ```sh # echo SWVER=3FE49337AOCK80 > /mnt/rwdir/sys.cfg ``` diff --git a/_ont/ont-odi-realtek-dfp-34g-2c2.md b/_ont/ont-odi-realtek-dfp-34g-2c2.md index efbe6b6..0bbf069 100644 --- a/_ont/ont-odi-realtek-dfp-34g-2c2.md +++ b/_ont/ont-odi-realtek-dfp-34g-2c2.md @@ -36,7 +36,7 @@ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oCiphers=+3des-cbc admin@192.16 ## List of firmwares and files - [Firmware repository by Anime4000](https://github.com/Anime4000/RTL960x/tree/main/Firmware/DFP-34X-2C2) -The reccomended version are `M114_sfp_ODI_Vlan_220414.tar`, `M114_sfp_ODI_hybrid_220527.tar` or `M114_sfp_ODI_hybrid_220916.tar` because it has working VLAN translation. +The recommended versions are `M114_sfp_ODI_Vlan_220414.tar`, `M114_sfp_ODI_hybrid_220527.tar` or `M114_sfp_ODI_hybrid_220916.tar`, as these have working VLAN translation. ## List of partitions @@ -59,11 +59,11 @@ The reccomended version are `M114_sfp_ODI_Vlan_220414.tar`, `M114_sfp_ODI_hybrid This stick supports dual boot. -`k0` and `r0` respectively contain the kernel and firmware of the first image, while `k1` and `r1` respectively contain the kernel and the firmware of the second one +`k0` and `r0` respectively contain kernel and firmware of the first image, while `k1` and `r1` contain kernel and firmware of the second one. ## Serial -The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface. It's near the SFP header. TX, RX and ground pads need to be connected to a USB2TTL adapter supporting a logic level of 3.3V. +The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface: it's near the SFP header. TX, RX and ground pads need to be connected to a USB2TTL adapter supporting 3V3 logic. {% include image.html file="ont-odi-realtek-dfp-34x-2c2/ttl.jpg" alt="DFP-34X-2C2 TTL Connection" caption="DFP-34X-2C2 TTL Connection" %} {% include image.html file="ont-odi-realtek-dfp-34x-2c2/ttl-2.jpg" alt="DFP-34X-2C2 TTL Pin" caption="DFP-34X-2C2 TTL Pin" %} @@ -73,7 +73,7 @@ The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be a {% include_relative ont-luna-sdk-useful-commands.md flash='flash' ploam='hex' - customSwVersionAlert="This needs the `OMCI_OLT_MODE` value to be set to 3 and firmware 220530 or 220923 modded by @stich86 or if you don't want to replace firmware to change software version, set `OMCI_OLT_MODE` value to `21`. This will force to use your own settings from the XML file, but this is a hack and causes sigsegv of `/bin/checkomci`." + customSwVersionAlert="This needs either `OMCI_OLT_MODE` to be set to 3 and firmware version 220530 or 220923 as modded by @stich86 or, if you don't want to replace the installed firmware, set `OMCI_OLT_MODE` value to `21`. This will force the stick to use your own settings from the XML file, but this is a hack and causes sigsegv of `/bin/checkomci`." speedLan='1234567' omciOLT21='true' %} diff --git a/_ont/ont-odi-realtek-dfp-34x-2c2.md b/_ont/ont-odi-realtek-dfp-34x-2c2.md index 579d734..86b1620 100644 --- a/_ont/ont-odi-realtek-dfp-34x-2c2.md +++ b/_ont/ont-odi-realtek-dfp-34x-2c2.md @@ -45,7 +45,7 @@ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oCiphers=+3des-cbc admin@192.16 ## List of firmwares and files - [Firmware repository by Anime4000](https://github.com/Anime4000/RTL960x/tree/main/Firmware/DFP-34X-2C2) -The reccomended version are `M114_sfp_ODI_hybrid_220527.tar` or `M114_sfp_ODI_hybrid_220916.tar` because it has working VLAN translation. +The recommended versions are `M114_sfp_ODI_hybrid_220527.tar` or `M114_sfp_ODI_hybrid_220916.tar`, as these have working VLAN translation. ## List of partitions @@ -68,11 +68,11 @@ The reccomended version are `M114_sfp_ODI_hybrid_220527.tar` or `M114_sfp_ODI_hy This stick supports dual boot. -`k0` and `r0` respectively contain the kernel and firmware of the first image, while `k1` and `r1` respectively contain the kernel and the firmware of the second one +`k0` and `r0` respectively contain kernel and firmware of the first image, while `k1` and `r1` contain kernel and firmware of the second one. ## Serial -The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface. It's near the SFP header. TX, RX and ground pads need to be connected to a USB2TTL adapter supporting a logic level of 3.3V. +The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface: it's near the SFP header. TX, RX and ground pads need to be connected to a USB2TTL adapter supporting 3V3 logic. {% include image.html file="ont-odi-realtek-dfp-34x-2c2/ttl.jpg" alt="DFP-34X-2C2 TTL Connection" caption="DFP-34X-2C2 TTL Connection" %} {% include image.html file="ont-odi-realtek-dfp-34x-2c2/ttl-2.jpg" alt="DFP-34X-2C2 TTL Pin" caption="DFP-34X-2C2 TTL Pin" %} @@ -82,7 +82,7 @@ The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be a {% include_relative ont-luna-sdk-useful-commands.md flash='flash' ploam='hex' - customSwVersionAlert="This needs the `OMCI_OLT_MODE` value to be set to 3 and firmware 220530 or 220923 modded by @stich86 or if you don't want to replace firmware to change software version, set `OMCI_OLT_MODE` value to `21`. This will force to use your own settings from the XML file, but this is a hack and causes sigsegv of `/bin/checkomci`." + customSwVersionAlert="This needs either `OMCI_OLT_MODE` to be set to 3 and firmware version 220530 or 220923 as modded by @stich86 or, if you don't want to replace the installed firmware, set `OMCI_OLT_MODE` value to `21`. This will force the stick to use your own settings from the XML file, but this is a hack and causes sigsegv of `/bin/checkomci`." speedLan='1234567' omciOLT21='true' %} diff --git a/_ont/ont-odi-zte-dfp-34g-2c2.md b/_ont/ont-odi-zte-dfp-34g-2c2.md index 7e42602..6c7bf03 100644 --- a/_ont/ont-odi-zte-dfp-34g-2c2.md +++ b/_ont/ont-odi-zte-dfp-34g-2c2.md @@ -52,7 +52,7 @@ alias: Usourcetech UGP-N1S This stick supports dual boot. -`kernel0` and `rootfs0` respectively contain the kernel and firmware of the first image, while `kernel1` and `rootfs1` respectively contain the kernel and the firmware of the second one +`kernel0` and `rootfs0` respectively contain kernel and firmware of the first image, while `kernel1` and `rootfs1` contain kernel and firmware of the second one # Miscellaneous Links diff --git a/_ont/ont-sercomm-fg1000b-11.md b/_ont/ont-sercomm-fg1000b-11.md index f96aa01..c9bb9ed 100644 --- a/_ont/ont-sercomm-fg1000b-11.md +++ b/_ont/ont-sercomm-fg1000b-11.md @@ -39,17 +39,17 @@ parent: Sercomm ## Serial -See picture side2 for the pin identification, use 112500 8-N-1 -The ONT seems only to display output of the ROM CFE and flash CFE, but don't allow interupting the boot... +See side2 picture for pin identification, use 112500 8-N-1 +The ONT seems to only display output of the ROM CFE and flash CFE, but doesn't seem to allow interrupting the boot. {% include serial_dump.html file="fg1000b-11_boot_cfe.txt" alt="Sercomm FG1000B.11 CFE boot dump" title="Sercomm FG1000B.11 CFE boot dump" %} ## Root procedure -[See how the enable telnet/ssh section](/ont-sercomm-fg1000b-11/#enable-telnetsshserial) +[See the enable telnet/ssh section](/ont-sercomm-fg1000b-11/#enable-telnetsshserial) ## List of software versions -Current only version seen is: 090144.1.0.001 +Currently the only known version is 090144.1.0.001 ## List of partitions `cat /proc/mtd` @@ -82,34 +82,34 @@ Current only version seen is: 090144.1.0.001 # Useful files and binaries -{% include alert.html content="NanD MTD 5 mounted as `/tmp/var_link_dir/ft` contains all serials and mac address of the ONT, please consider backup before any hack, files are: `customer_sn,gpon_sn,hw_version,mac_addr,pcba_sn`" alert="Warning" icon="svg-warning" color="red" %} +{% include alert.html content="NAND MTD5 mounted as `/tmp/var_link_dir/ft` contains all serial numbers and the MAC address of the ONT, please consider backing it up before performing any hack, files are: `customer_sn,gpon_sn,hw_version,mac_addr,pcba_sn`" alert="Warning" icon="svg-warning" color="red" %} {% include alert.html content="Calling the `board_init` binary directly or indirectly (via init script) when the board is already booted will cause NAND mtd 5, 15, 16 & 17 to be erased! -Please backup those before any hacking! Recovery is possible if you hardware reset the device, enable the telnet and recreate the `customer_sn, gpon_sn, hw_version, mac_addr, pcba_sn` file on the `/tmp/var_link_dir/ft` volume which can be remount R/W `mount -o remount,rw /dev/mtdblock5 /tmp/var_link_dir/ft`." alert="Warning" icon="svg-warning" color="red" %} +Please back them up before any hacking! Recovery is possible if you hardware reset the device, enable the telnet and recreate the `customer_sn, gpon_sn, hw_version, mac_addr, pcba_sn` file on the `/tmp/var_link_dir/ft` volume which can be remounted as R/W `mount -o remount,rw /dev/mtdblock5 /tmp/var_link_dir/ft`." alert="Warning" icon="svg-warning" color="red" %} ## Useful files -* `/etc/framework_init.sh` - is the main entry for sercomm framework launch by `/etc/rcS` +* `/etc/framework_init.sh` - is the main entry for the launch of the Sercomm framework by `/etc/rcS` ## Useful binaries -* `pb_ap` - monitoring the `reset button`, if pushed more than 10s it reset to factory default, otherwise it reboot the device - Run at startup - no args +* `pb_ap` - monitors the `reset button`. If the button is pushed for longer than 10s it resets the ONT to factory default, otherwise it only reboots the device - Run at startup - no args -* `fw_image_ctl` - allow firmware info, upgrade, switch between `fw0` & `fw1`, replicate between fw, desactivate image etc... - Options listes when called woth no args +* `fw_image_ctl` - allows firmware upgrade, switch between `fw0` & `fw1`,reading firmware info, replicating between fw, deactivating image etc... - Options listed when called with no args -* `cmld_client`- manipulate the configuration 'DB' stored in a /dev/mtd15, output is XML format. The root element is "InternetGatewayDevice" you need to use a final '.' dot to list all sub-element. example to get the full device XML config ```cmld_client get_node InternetGatewayDevice.```. Element with `writable="1"` can be changed with `set` and the node path. Element marked `dynamic="1"` have their value evaluated at the time you specifically call get on the node, `cmld_client get InternetGatewayDevice.WANDevice.1.X_SC_GponInterfaceConfig.Status` - The daemon is run at startup - option list whe called with no args +* `cmld_client`- manipulates the configuration 'DB' stored in /dev/mtd15, its output is in the XML format. The root element is "InternetGatewayDevice". A final '.' dot is needed to list all sub-elements. Example to get the device's full XML config ```cmld_client get_node InternetGatewayDevice.```. Listed elements with `writable="1"` can be changed with `set` and the node path. Elements marked as `dynamic="1"` have their value evaluated at the time you specifically call get on that specific node, `cmld_client get InternetGatewayDevice.WANDevice.1.X_SC_GponInterfaceConfig.Status` - The daemon is run at startup - options listed when called with no args -* `cmd_agent` - is a strange daemon launch at startup during `/etc/rcS` that open a `/tmp/cmd_client` sock file that listen to command and execute them. - No args +* `cmd_agent` - strange daemon launched at startup during `/etc/rcS` that opens a `/tmp/cmd_client` sock file that listens to commands and executes them. - No args -* `statd` - is a daemon launch at boot which collect monitoring data from the ONT. - No args +* `statd` - daemon launched at boot which collects monitoring data from the ONT. - No args * `ubusd` - ubusd is used to send message between processes, current ubus services are `cml,network-manager,smd` -* `smd` - is the daemon in charge of launching `/opt/` plugin for each of the ONT service like: `init, gpon, iptv, temperature, account, http, lan, network, syslog, system`. All is done in code which is not helping hacking the device. +* `smd` - daemon in charge of launching the `/opt/` plugin for each of the ONT's service like: `init, gpon, iptv, temperature, account, http, lan, network, syslog, system`. All is done in code which does not help hacking the device. # Usage -## Enable telnet/SSH/serial +## Enabling telnet/SSH/serial -Below code can be pasted in the browser console after loading the `http://192.168.100.1` (default ONT page). This will enable telnet as root with no password on the device (same can be done with `/usr/sbin/sshd` binary). The below hack uses an injection on the `eventlog_applog_download.json` page, command can be injected in the request body `applog_select` parameter and are executed as superadmin (root). +The code below can be pasted in the browser's console after opening `http://192.168.100.1` (default ONT's web UI). This will enable telnet as root with no password on the device (same can be done with `/usr/sbin/sshd` binary). The below hack uses an injection on the `eventlog_applog_download.json` page, the commands can be injected in the request body's `applog_select` parameter and they are executed as superadmin (root). ```javascript // Fetch a non csrf protected page to get a csrf token await fetch("http://192.168.100.1/setup.cgi?next_file=statusandsupport/status.html").then(function (response) { @@ -140,27 +140,27 @@ fetch('http://192.168.100.1/data/statussupporteventlog_applog_download.json?_=16 .then(console.log) ``` -There is a way to make a script call at boot if you want to have telnet or other service started at boot. It uses a hack from libsl_system.so where there is a `system(...)` call using a String from config, string must be <=12 char, the system call is supposed to set set hostname of the device for storage sharing. -In the example below you would first creat a `/data/up` shell script and ensure it has execute rights (ex: `chmod 755`) +There is a way to make a script call at boot to ensure telnet or other services start at boot if needed. It uses a hack from libsl_system.so where there is a `system(...)` call using a String from config, string must be <=12 char. The system call is supposed to set set hostname of the device for storage sharing. +In the example below, a `/data/up` shell script would be created (ensure it has execute rights, such as: `chmod 755`). ``` -#first we need to add the missing entry +#First we need to add the missing entry /usr/bin/cmld_client add InternetGatewayDevice.Services.StorageService. 1 -#then inject within the 12 character limit the hostname and a call to our script +#Then inject within the 12 character limit the hostname and a call to our script /usr/bin/cmld_client set InternetGatewayDevice.Services.StorageService.1.X_SC_NetbiosName='a;/data/up&' /usr/bin/cmld_client save ``` -## Log configuration -`syslogd` is configure via Config DB config `cmld_client get_node InternetGatewayDevice.X_SC_Management.Syslog.` this config is read from the libsl_syslog.so plugin of smd daemon, which generate the file `/tmp/lxxd/logd.conf` and start the daemon with it as parameter. +## Logging configuration +`syslogd` is configured via Config DB config `cmld_client get_node InternetGatewayDevice.X_SC_Management.Syslog.`. This config is read from the libsl_syslog.so plugin of smd daemon, which generates the `/tmp/lxxd/logd.conf` file and starts the daemon with it as parameter. # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU ``` /bin/gponctl getState ``` -## Get information of the OLT vendor +## Getting OLT vendor information ``` /usr/sbin/umci_ctl stack get olt_type ``` @@ -178,15 +178,15 @@ or # GPON/OMCI settings -Part of GPON config is done via the misc configuration loaded as first lib by the smd binary, config can be seens here: +Part of GPON config is done via the misc configuration loaded as first lib by the smd binary, the config can be seen here: ``` /usr/bin/cmld_client get_node InternetGatewayDevice.X_SC_MiscCfg.GPON. ``` -Beware the field `OmciManageUniMask`, `PretendFwVersion` are initiated in the binary with respective value `01000000`, `0` +Be aware the fields `OmciManageUniMask`, `PretendFwVersion` are initiated in the binary with respective value `01000000`, `0`. ## Getting/Setting ONU GPON Serial Number Default value: 16 hex chars on the back of the ONT, starts with `53434F4DA`. The default S/N is the Modem-ID on the sticker. -You can test serial and/or ploam combinaison using with below command. Pwd is Hexe only and can be up to 36. +You can test serial and/or ploam combinations using the command provided below. The password is Hex only and can be up to 36 characters long. ``` /bin/gponctl stop /bin/gponctl setSnPwd --pwd 00-00-0X-XX-XX-XX-XX-XX-XX-XX --sn YY-YY-YY-YY-YY-YY-YY-YY @@ -198,7 +198,7 @@ You can monitor status by running: /bin/gponctl getstate ``` -To save the serial number you need to re-mount R/W the `/tmp/var_link_dir/ft` and change the `gpon_sn` file (consider backup of the folder before ANY action) +To save the serial number you need to re-mount `/tmp/var_link_dir/ft` as R/W and change the `gpon_sn` file (consider backing up of the folder before ANY action) ``` /bin/mount -o remount,rw /dev/mtdblock5 /tmp/var_link_dir/ft echo "XXXXXXXXXXXXX" > /tmp/var_link_dir/ft/gpon_sn @@ -208,7 +208,8 @@ echo "XXXXXXXXXXXXX" > /tmp/var_link_dir/ft/gpon_sn ## Getting/Setting ONU GPON PLOAM password -PLOAM can be set directly for Text or Hexa (without `0x`) via Web interface if < 10 digit otherwise POST call to URL allow > 10 digits for example 20 digit hex can be setup via (max is 36 digit): +The PLOAM password can be set directly as text or hex (without `0x`) via the Web interface if shorter than 10 digits, otherwise a POST call to the URL provided below allows passwords longer than 10 digits (max is 36 characters). +For example a 20-digit long hex password can be set with these commands: ``` curl -i -s -k -X $'POST' -H $'Content-Type: application/x-www-form-urlencoded' \ @@ -217,14 +218,14 @@ curl -i -s -k -X $'POST' -H $'Content-Type: application/x-www-form-urlencoded' \ $'http://192.168.100.1/ONT/client/data/Router.json' ``` -Or via command line with: +Or via the CLI with: ``` /usr/bin/cmld_client set InternetGatewayDevice.WANDevice.1.X_SC_GponInterfaceConfig.X_SC_Password=00000XXXXXXXXXXXXXXX /usr/bin/cmld_client save ``` ## Getting/Setting ONU GPON LOID and LOID password -{% include alert.html content="Not tested but seems used by the misc config at smd init" alert="Warning" icon="svg-warning" color="red" %} +{% include alert.html content="Not tested but seems to be used by the misc config at smd init" alert="Warning" icon="svg-warning" color="red" %} ``` /usr/bin/cmld_client set InternetGatewayDevice.X_SC_MiscCfg.GPON.LoIdPassword= @@ -233,12 +234,12 @@ Or via command line with: ``` ## Getting/Setting OMCI software version (ME 7) -{% include alert.html content="`get` works, `set` is not tested but seems used by the misc config at smd init" alert="Warning" icon="svg-warning" color="red" %} +{% include alert.html content="`get` works, `set` is not tested but seems to be used by the misc config at smd init" alert="Warning" icon="svg-warning" color="red" %} ``` /usr/bin/cmld_client get InternetGatewayDevice.X_SC_MiscCfg.GPON.OmciVersion ``` -or via umci_ctl get/set tool (not tested if config overwrite umci or the other way around) +or via umci_ctl get/set tool (if the config overwrite OMCI or the other way around has not been tested) ``` /usr/sbin/umci_ctl mib get 7 ``` @@ -253,45 +254,45 @@ reboot ``` ## Getting/Setting OMCI vendor ID (ME 256) Default value: `53434F4D` -{% include alert.html content="`set` option is available with `Class_id`, `Entity_id`, `Index` and `Value` parameters, not tested." alert="Warning" icon="svg-warning" color="red" %} +{% include alert.html content="The `set` command is available for `Class_id`, `Entity_id`, `Index` and `Value` parameters, but has not been tested." alert="Warning" icon="svg-warning" color="red" %} ``` /usr/sbin/umci_ctl mib get 256 ``` ## Getting/Setting OMCI equipment ID (ME 257) -{% include alert.html content="`set` option is available with `Class_id`, `Entity_id`, `Index` and `Value` parameters, not tested." alert="Warning" icon="svg-warning" color="red" %} +{% include alert.html content=" The `set` command is available for `Class_id`, `Entity_id`, `Index` and `Value` parameters, but has not been tested." alert="Warning" icon="svg-warning" color="red" %} ``` -/usr/sbin/umci_ctl mib get 256 +/usr/sbin/umci_ctl mib get 257 ``` # Advanced settings ## Transferring files to the stick -Since neither `netcat`/`nc` nor `ftp`/`sftp`/`ftps` are available the best option is to use `curl` to download file from a webserver on your network over HTTP only. -Additionaly you can add a arm full version of `busybox` in the /data partition and then use `nc` to pipe data in and out of the device. +Since neither `netcat`/`nc` nor `ftp`/`sftp`/`ftps` are available, the best option is to use `curl` to download files from a webserver on your network over HTTP only. +Additionaly a full version of `busybox` for ARM can be added in the /data partition and then use `nc` to pipe data in and out of the device. -## Backup of all partition -You can use `dd` which is available on the device/default busybox to backup the efull nand via `/dev/mtd` +## Backup of all partitions +`dd` can be used, as it is available on the device/default busybox to backup the efull nand via `/dev/mtd` ## Checking the currently active image ``` /usr/sbin/fw_ctl -s ``` -Output information about the firmware including a `current running fw` line +The output includes a `current running fw` line. ## Booting to a different image ``` /usr/sbin/fw_ctl -c X ``` -Where `X` is <0|1|3> set commit image, 3: commit current fw +Where `X` is <0|1|3> and sets commit image; 3 commits current firmware. ## Cloning of image 0 into image 1 ``` /usr/sbin/fw_ctl -r XXXX ``` -Where `XXX` is <fw|lib> copy type <fw|lib> from current fw to backup fw +Where `XXX` is <fw|lib> copy type <fw|lib> from current firmware to backup firmware. ## Setting management MAC ``` @@ -300,7 +301,7 @@ echo "A095XXXXXXXX" > /tmp/var_link_dir/ft/mac_addr /bin/mount -o remount,ro /dev/mtdblock5 /tmp/var_link_dir/ft /sbin/reboot ``` -The format is 12 hex digit without `0x` nor `:` +The format is 12 hex digit without any `0x` or `:` ## Setting management IP ``` @@ -309,13 +310,13 @@ The format is 12 hex digit without `0x` nor `:` ``` ## Rebooting the ONU -Either via the public WebUi `http://192.168.100.1/ONT/client/html/content/config/problem_handling.html?lang=en`, `Reboot` boutton -or +Either via the public WebUi `http://192.168.100.1/ONT/client/html/content/config/problem_handling.html?lang=en`, `Reboot` button or + ``` /sbin/reboot ``` # Known Bugs -It seems the `cmld_client get` can't return string values longer than 12 characters even for fields type mentioning string length. A walkaround is to use the `get_node` on the parent element to get proper value ouput. +It seems `cmld_client get` can't return string values longer than 12 characters, even for field types mentioning string length. A walkaround is to use `get_node` on the parent element to get proper value ouput. # Miscellaneous Links @@ -327,5 +328,5 @@ It seems the `cmld_client get` can't return string values longer than 12 charact - Telekom Glasfaser Modem 2 # Credits -This whole documentation here was made possible by reverse engineering, and time investment from @hwti and the rest of the folks from the forum mention in the links section of the page. Thanks a lot! +This whole documentation here was made possible thanks to the time invested into reverse engineering by @hwti and the rest of the folks from the forum mentioned in the links section of this page. Thanks a lot! diff --git a/_ont/ont-sercomm-fgs202.md b/_ont/ont-sercomm-fgs202.md index db10779..c06a896 100644 --- a/_ont/ont-sercomm-fgs202.md +++ b/_ont/ont-sercomm-fgs202.md @@ -30,7 +30,7 @@ parent: Sercomm ## Telnet Access -The stick has telned opened only on WAN side, only way to access it is thru an OLT +The stick has telnet available only on the PON side, the only way to access it is by using an OLT. ## List of software versions - SCOMFGS202305 (TIM Italy) @@ -38,7 +38,7 @@ The stick has telned opened only on WAN side, only way to access it is thru an O # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU ```sh # show gpon @@ -112,7 +112,7 @@ Set command exectue successfully. # Advanced settings -## Show live OMCI messages +## Showing live OMCI messages ```sh # show omci diff --git a/_ont/ont-t-w-twcgpon657.md b/_ont/ont-t-w-twcgpon657.md index b1dc00f..6ab7b9e 100644 --- a/_ont/ont-t-w-twcgpon657.md +++ b/_ont/ont-t-w-twcgpon657.md @@ -34,13 +34,13 @@ parent: T&W - [Firmware repository by Anime4000](https://github.com/Anime4000/RTL960x/tree/main/Firmware/TWCGPON657) -The reccomended version are `C00R657V2801F_V1.9.0-220404.tar` because it is the V2801F firmware for T&W TWC GPON657. +The recommended version is `C00R657V2801F_V1.9.0-220404.tar`, because it is the V2801F firmware for T&W TWC GPON657. {% include_relative ont-luna-sdk-useful-commands.md flash='flash' ploam='ascii' speedLan='123456' - customSpeedLanAlert='Please use recommended version `C00R657V2801F_V1.9.0-220404.tar`. With other firmware it is not guaranteed that `LAN_SDS_MODE` other than `1` will work. Before editing the speed make sure your hardware supports it.' + customSpeedLanAlert='Please use recommended version `C00R657V2801F_V1.9.0-220404.tar`. It is not guaranteed that any value for `LAN_SDS_MODE` other than `1` will work with other firmware versions. Before editing the sync speed settings make sure your hardware supports it.' %} # Known Bugs diff --git a/_ont/ont-technicolor-afm0002.md b/_ont/ont-technicolor-afm0002.md index adc2482..deecb29 100644 --- a/_ont/ont-technicolor-afm0002.md +++ b/_ont/ont-technicolor-afm0002.md @@ -80,7 +80,7 @@ The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be a This stick supports dual boot. -`k0` and `r0` respectively contain the kernel and firmware of the first image, `k1` and `r1` the kernel and firmware of the second one +`k0` and `r0` respectively contain kernel and firmware of the first image, while `k1` and `r1` contain kernel and firmware of the second one. {% include_relative ont-luna-sdk-useful-commands.md flash='/etc/scripts/flash' @@ -122,7 +122,7 @@ From the PC to the stick: {% include alert.html content="Only the inactive image can be flashed, change sw_versionX and sw_commit X based on the bank you have flashed" alert="Info" icon="svg-info" color="blue" %} -So mtd4/5 if you are on image1, mtd6/7 if you are on image0. +Flash mtd4/5 if you are on image1, mtd6/7 if you are on image0. The following commands are used to flash a new rootfs to image1 and then boot to it ```sh @@ -291,7 +291,7 @@ esac ``` ## Increasing the length of the software version from 13 to 14 characters -`omci_app` has an hard-coded limit of 13 characters for the software version, which is too low. We can binary patch it to increase it to 14 (or more, if you dare/need) +`omci_app` has a hard-coded limit of 13 characters for the software version, which is too low. We can binary patch it to increase it to 14 (or more, if you dare/need) ``` JVhEWjAwNCUAAAAIAAgACAAAAAAAAAAAAAAAAAAAAABvbWNpX2FwcG9tY2lfYXBwH4sIAAAAAAAA AwMAAAAAAAAAAAAfiwgAAAAAAAADY2BoYGZgYFjh9Uq/aNcZQdXsOh3R5ktr/fd0sTEwcuTnJmfG @@ -325,7 +325,7 @@ reboot ``` 1. The binary log will be placed inside: `/tmp/omcilog` 2. You can convert it into a .pcap file using [omcilog2pcap](https://github.com/hack-gpon/omcilog2pcap) -3. You can then open it with Wireshark by installing the OMCI plugin from [GitHub](https://github.com/hack-gpon/omci-wireshark-dissector) +3. You can then open it with Wireshark by installing this OMCI plugin from [GitHub](https://github.com/hack-gpon/omci-wireshark-dissector) If you want to log everything since the stick boots, you can create a custom rootfs. Place the last command inside `etc/runomci.sh` as the last line of the file diff --git a/_ont/ont-technicolor-afm0003.md b/_ont/ont-technicolor-afm0003.md index 7a44ab2..ad5eabe 100644 --- a/_ont/ont-technicolor-afm0003.md +++ b/_ont/ont-technicolor-afm0003.md @@ -68,13 +68,13 @@ The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be a This stick supports dual boot. -`k0` and `r0` respectively contain the kernel and firmware of the first image, `k1` and `r1` the kernel and firmware of the second one +`k0` and `r0` respectively contain kernel and firmware of the first image, while `k1` and `r1` contain kernel and firmware of the second one. {% include_relative ont-luna-sdk-useful-commands.md flash='/etc/scripts/flash' ploam='ascii' speedLan='123456' - customSpeedLanAlert='The defualt firmware does not allow modification of the `LAN_SDS_MODE` parameter. Is it necessary to use the modded firmware. Before editing the speed make sure your hardware supports it.' + customSpeedLanAlert='The default firmware does not allow modification of the `LAN_SDS_MODE` parameter. Using modded firmware is needed. Before editing the sync speed make sure your hardware supports it.' lastgoodHs=true flashSwVersion=true %} @@ -110,7 +110,7 @@ tftp> q {% include alert.html content="Only the inactive image can be flashed, change sw_versionX and sw_commit X based on the bank you have flashed" alert="Info" icon="svg-info" color="blue" %} -So mtd4/5 if you are on image1, mtd6/7 if you are on image0. +Flash mtd4/5 if you are on image1, mtd6/7 if you are on image0. The following commands are used to flash a new rootfs to image1 and then boot to it ```sh diff --git a/_ont/ont-template.md b/_ont/ont-template.md index 9e63f89..27e25a1 100644 --- a/_ont/ont-template.md +++ b/_ont/ont-template.md @@ -53,9 +53,9 @@ # GPON ONU status
-## Get the operational status of the ONU
+## Getting the operational status of the ONU
-## Get information of the OLT vendor
+## Getting OLT vendor information
## Querying a particular OMCI ME
@@ -81,7 +81,7 @@ ## Transferring files to the stick
-## Backup of all partition
+## Backing up all partitions
## Checking the currently active image
diff --git a/_ont/ont-tplink-xz000-g3.md b/_ont/ont-tplink-xz000-g3.md index 171cea3..2d69301 100644 --- a/_ont/ont-tplink-xz000-g3.md +++ b/_ont/ont-tplink-xz000-g3.md @@ -27,7 +27,7 @@ parent: TP-Link # Known Bugs -The ONT randomly crashes when PPPoE connection by a connected router is established. +The ONT randomly crashes when a PPPoE connection by a connected router is established. The GPON serial sometimes temporarily disappears after a crash, preventing the ONT from reaching the O5 operational status. diff --git a/_ont/ont-vsol-v2801f.md b/_ont/ont-vsol-v2801f.md index c87de37..1fd93aa 100644 --- a/_ont/ont-vsol-v2801f.md +++ b/_ont/ont-vsol-v2801f.md @@ -33,13 +33,13 @@ parent: VSOL - [Firmware repository by Anime4000](https://github.com/Anime4000/RTL960x/tree/main/Firmware/V2801F) -The reccomended version are `V2801F_V1.9.0-220425.tar` because it has Modern WebGUI, 2.5GbE, patched `runlansds.sh`, `tftpd`, ... +The recommended version is `V2801F_V1.9.0-220425.tar` because it has a modern WebGUI, 2.5GbE support, patched `runlansds.sh`, `tftpd` and more. {% include_relative ont-luna-sdk-useful-commands.md flash='flash' ploam='ascii' speedLan='123456' - customSpeedLanAlert='Please use recommended version `V2801F_V1.9.0-220425.tar`. With other firmware it is not guaranteed that `LAN_SDS_MODE` other than `1` will work. Before editing the speed make sure your hardware supports it.' + customSpeedLanAlert='Please use recommended version `V2801F_V1.9.0-220425.tar`. It is not guaranteed that any value for `LAN_SDS_MODE` other than `1` will work with other firmware versions. Before editing the sync speed make sure your hardware supports it.' %} # Known Bugs diff --git a/_ont/ont-ziza-op151s.md b/_ont/ont-ziza-op151s.md index b184940..cb79345 100644 --- a/_ont/ont-ziza-op151s.md +++ b/_ont/ont-ziza-op151s.md @@ -36,7 +36,7 @@ parent: Ziza ## Serial -The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface. It's near the SFP header. TX, RX and ground pads need to be connected to a USB2TTL adapter supporting a logic level of 3.3V. +The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface: it's near the SFP header. TX, RX and ground pads need to be connected to a USB2TTL adapter that supports 3V3 logic. {% include image.html file="tw236h-cdel-serial.jpg" alt="PMG3000-D20B Serial Pinout" caption="PMG3000-D20B Serial Pinout" %} diff --git a/_ont/ont-zte-f6005.md b/_ont/ont-zte-f6005.md index 91102e6..93d6bf2 100644 --- a/_ont/ont-zte-f6005.md +++ b/_ont/ont-zte-f6005.md @@ -67,7 +67,7 @@ You need a 3.3V SPI programmer (like a modded CH341a) to read and write back the {% include alert.html content="This was tested only on a TIM V6.0.10N20 firmware!" alert="Note" icon="svg-info" color="blue" %} -After you got a full dump of your ONT, here is the procedure to replace the original bootloader with the CIG one enable the serial port: +After getting a full dump of your ONT, here is the procedure to replace the original bootloader with CIG's to enable the serial port: Cut old bootloader: ```sh @@ -93,11 +93,11 @@ After powering up the ONT, the serial port will print this message: To access full U-Boot a special escape sequence is needed. -If you use TeraTerm software, create a simple MACRO file that contains this code: +If Tera Term is used, create a simple MACRO file that contains this code: `send $1B $1D $0F $0B` -Configure TeraTerm with the correct serial parameters (refer to **Serial** paragraph), select the created MACRO file **BEFORE** powering up the ONT but **DON'T OPEN IT NOW**, power-up the ONT and when you see the above message, quickly open the macro to reach the U-Boot prompt: +Configure Tera Term with the correct serial parameters (refer to **Serial** paragraph), select the created MACRO file **BEFORE** powering up the ONT but **DON'T OPEN IT NOW**, power-up the ONT and when you see the above message, quickly open the macro to reach the U-Boot prompt: ```sh 9601D# @@ -105,12 +105,12 @@ Configure TeraTerm with the correct serial parameters (refer to **Serial** parag {% include alert.html content="Note that this proceedure needs to be done each time you power-cycle the ONT" alert="Note" icon="svg-info" color="blue" %} -Now with the U-Boot prompt a custom firmware that enable TELNET can be flashed. -Please note that if you use a **TIM** or **OpenFiber** base firmware, the TTL will be silent after kernel loading because it was disabled at kernel level. +Now with the U-Boot prompt a custom firmware that enables TELNET can be flashed. +Please note that if a **TIM** or **OpenFiber** base firmware is used, the TTL will be silent after kernel loading because it is disabled at kernel level. -Here is the procedure to flash a custom firmware on your ONT via the U-Boot console: +Here is the procedure to flash a custom firmware on the ONT via the U-Boot console: -- Attach your ONT via ethernet cable to your PC and configure it to have IP **192.168.1.2** +- Attach the ONT via ethernet cable to your PC and configure it to have IP **192.168.1.2** - Launch TFTP server and place custom firmware inside its root folder renamed into `cramfs.img.crc`. Be sure that the file has this name, otherwise the upgrade procedure will stop immediately - Run this command on U-Boot prompt: @@ -143,7 +143,7 @@ Writing 6619136 B from 80400000 to 00200000... 100% ~ 0084ffff/6619136 B [Done] ``` -{% include alert.html content="Please note that some OLTs (like Alcatel with TIM in Italy) needs to have software image 0 or 1 as active. So in this case you have to do these commands twice to flash image on both slot:" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="Please note that some OLTs (like TIM's Alcatel OLTs in Italy) need to have software image 0 or 1 set as active. So in this case, these commands will have to be executed twice to flash the image on both slots:" alert="Note" icon="svg-info" color="blue" %} **ImageA**: @@ -153,7 +153,7 @@ set activeimage imagea saveenv ``` -and flash image with the `upgdimage` +And flash image with the `upgdimage`. **ImageB**: @@ -162,16 +162,17 @@ set activeimage imageb saveenv ``` -and flash image with the `upgdimage` +And flash image with the `upgdimage`. -So you will have both slot with the same firmware version and avoid the swap from the OLT +This way both slots will have the same firmware version and will avoid any swap by the OLT. -After these steps, you can power-cycle ONT and logon on TELNET with `root\admin` credentials. From this moment you can simply spoof your ONT with the usual commands. +After these steps, power-cycle ONT and login via TELNET with `root\admin` credentials. From this moment you can simply spoof your ONT with the usual commands. # Known Bugs -The buffer size of the hardware is suboptimal is suboptimal: because of this the ONT is unable to work at full speed during uploads if the server is geographically, and/or latency-wise, far. There are no known problems if there is only one person in the GPON tree. +The buffer size of the hardware is suboptimal is suboptimal: because of this the ONT is unable to work at full speed during uploads if the server is geographically, and/or latency-wise, far. There are no known problems if there is only one person on the GPON tree. In versions V6.0.10N14 and V6.0.10P2N02 this problem is felt more with newer firmware as in the new versions (V6.0.10N20, V6.0.10P2N18, V6.0.10P2N19), an attempt is made to avoid buffer filling by means of pause frames. Not all routers support pause frames and some may still suffer from problems with the latest updates. In version V6.0.10P2N18, problems were found in download speeds with 1 Gbps links. + diff --git a/_ont/ont-zte-f601.md b/_ont/ont-zte-f601.md index 1299f3f..7defbef 100644 --- a/_ont/ont-zte-f601.md +++ b/_ont/ont-zte-f601.md @@ -63,16 +63,16 @@ parent: ZTE This ONT supports dual boot, as visible from the presence of `kernel0` and `kernel1`, which contain the rootfs. -The boot image can be swapped with the following command: +The boot images can be swapped with the following command: ```sh upgradetest switchver X ``` -Where `X` can be `0/1` based on the image you want to boot. +Where `X` can be `0/1`, based on the image you want to boot from. -You can also clone the currently running image into other slot using this command: +You can also clone the currently running image into the other slot using this command: ```sh syn_version @@ -82,9 +82,9 @@ syn_version {% include alert.html content="Commands have been tested on V6/V7 HW rev. on TIM and OpenFiber firmwares" alert="Note" icon="svg-info" color="blue" %} ## Enable Telnet -{% include alert.html content="This is an external script ([ZTE Telnet enabled](https://github.com/douniwan5788/zte_modem_tools)), so use it at your own risk! Credential doesn't survive at reboot!" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="This is an external script ([ZTE Telnet enabler](https://github.com/douniwan5788/zte_modem_tools)), use at your own risk! Credentials don't survive at reboot!" alert="Note" icon="svg-info" color="blue" %} -{% include alert.html content="For italian users, it only works on versions V6.0.10N40 (TIM) and V6.0.10P6N7 (OpenFiber)" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="For italian users, the script above only works on versions V6.0.10N40 (TIM) and V6.0.10P6N7 (OpenFiber)" alert="Note" icon="svg-info" color="blue" %} ```sh python3 zte_factroymode.py --user admin --pass admin --ip 192.168.1.1 --port 80 telnet open @@ -119,7 +119,7 @@ Password: Eqb8X8Qt ## Enable console redirection -To see omcidebug messages on Telnet you need to execute this command (just the first time of each connection): +To see omcidebug messages on telnet, execute this command (just the first time of each connection): ```sh redir printf @@ -127,21 +127,21 @@ redir printf # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU -To see the connection state use the following command: +To check the connection status, use the following command: ``` gpontest -gstate ``` `[gpontest] gpon state is [O5]` for O5 state -## Get information of the OLT vendor +## Getting OLT vendor information ```sh sendcmd 132 omcidebug showmedata 131 ``` -This command will print out the result like this one: +This command will print the following output: ```sh ################################## @@ -167,7 +167,7 @@ MIB INFO: sendcmd 132 omcidebug showmedata ID_MIB (eg. 7 for Firmware version) ``` -This command will print out a result like this one: +This command will print the following output: ```sh @@ -195,7 +195,7 @@ MIB INFO: ## Setting ONU GPON Serial Number -{% include alert.html content="You have to change S/N and the VID. 2176 is for the VID (first 4 letters of the S/N) and 2177 is for the last 8 digits of the S/N" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="Both S/N and VID have to be changed. 2176 is for the VID (first 4 letters of the S/N) and 2177 is for the last 8 digits of the S/N" alert="Note" icon="svg-info" color="blue" %} ```sh setmac 1 2176 ZTEG setmac 1 2177 AABBCCDD @@ -204,29 +204,29 @@ setmac 1 2177 AABBCCDD ## Setting ONU GPON PLOAM password {% include alert.html content="The PLOAM password is stored in the ASCII format." alert="Note" icon="svg-info" color="blue" %} -This can be done easily via web ui. If you prefer to do it via the shell use: +This can be done easily via the web UI. To do it via the shell use: ```sh setmac 1 2181 1234567890 setmac 1 2178 1234567890 ``` -## Change ONU HW\SW Version and Permanent TELNET +## Changing ONU HW/SW Version and gaining persistent telnet access -{% include alert.html content="The only way to change HW\SWVer on this ONT is to modify the firmware, so do it at your own risk" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="The only way to change HW/SWVer on this ONT is to modify the firmware, so do it at your own risk" alert="Note" icon="svg-info" color="blue" %} {% include alert.html content="This procedure was only tested on TIM V6.0.10N40 and OF V6.0.10P6N7 firmwares" alert="Note" icon="svg-info" color="blue" %} -{% include alert.html content="This procedure work with `ZTE_Firmware_Mod.py` v1.0.0" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="This procedure works with `ZTE_Firmware_Mod.py` v1.0.0" alert="Note" icon="svg-info" color="blue" %} Needed tools: - Linux VM or WSL with Python >3.3 -- [ZTE Telnet enabled](https://github.com/douniwan5788/zte_modem_tools) +- [ZTE Telnet enabler](https://github.com/douniwan5788/zte_modem_tools) - [ZTE Firmware Mod Script](http://github.com/hack-gpon/ZTE-firmware-mod) - TFTP server -Download the script `ZTE_Firmware_Mod.py` and place in the same folder where you have the `kernel0` or `kernel1` mtd dump taken from step `**Backup ONT Paritions for HW\SW Version Mod**`. +Download the script `ZTE_Firmware_Mod.py` and place in the same folder where you have the `kernel0` or `kernel1` mtd dump taken from step `**Backing up ONT partitions for HW/SW version mod**`. -Run the script with the following parameters, you can use `-h` for help. In this example we are just replacing the firmware version with `V6.0.10N40`. You can put your own version here, maximium 15 characters. This parameter is mandatory: +Run the script with the following parameters, use `-h` for help. In this example we are just replacing the firmware version with `V6.0.10N40`. Put your own version here, it has to be a maximum of 15 characters long. This parameter is mandatory: If you need to create a partition dump with a different name, please put the correct name instead of `kernel0` @@ -234,7 +234,7 @@ If you need to create a partition dump with a different name, please put the cor python3 ZTE_Firmware_Mod.py kernel0 V6.0.10N40 fw_mod.bin ``` -The script will output the following messages, ending with instruction on how to install the created patched firmware: +The script will output the following messages, ending with instruction on how to install the patched firmware that has been created: ```sh --------------------------------------- @@ -283,13 +283,13 @@ Good luck! **Two last steps!** -If you are swapping from TIM to OpenFiber Firmware, or viceversa, you have to run these two command before rebooting the ONT based on the firmware version: +If you are swapping from TIM to OpenFiber firmware, or viceversa, run these two command before rebooting the ONT based on the firmware version: From **OpenFiber V6.0.10P6N7** to **TIM V6.0.10N40**: `upgradetest sfactoryconf 97` From **TIM V6.0.10N40** to **OpenFiber V6.0.10P6N7**: `upgradetest sfactoryconf 116` -After the ONT is reboot and you can access again, you can enable TELNET on each reboot, to do this, run again `zte_factroymode.py` to open new session to it. When you are in, execute these commands: +After the ONT has rebooted and you can access again, telnet can be enabled on each reboot. To do this, run again `zte_factroymode.py` to open new session to it. When you are in, execute these commands: ```sh sendcmd 1 DB set TelnetCfg 0 TS_Enable 1 @@ -306,7 +306,7 @@ sendcmd 1 DB set FWSC 0 FilterTarget 1 sendcmd 1 DB saveasy ``` -Reboot the ONT and TELNET will be already opened and you can logon with `root\root` credentials. +Reboot the ONT and a telnet interface will be available. You can login using `root\root` as credentials. **Just for OpenFiber firmware** @@ -320,22 +320,22 @@ sendcmd 1 DB set DevAuthInfo 5 Level 0 sendcmd 1 DB set DevAuthInfo 5 AppID 1 sendcmd 1 DB saveasy ``` -Reboot the ONT and you can logon on the WebUI using `superadmin\superadmin` credentials with full unlocked menus. +Reboot the ONT and you can login to the WebUI using `superadmin\superadmin` as credentials with full unlocked menus. # Advanced settings -## Backup ONT Paritions for HW\SW Version Mod +## Backing up ONT partitions for HW/SW version mod -This step is suggested if you want to replace firmware on your ONT to spoof HW and SW version: +This step is suggested if you want to replace firmware on the ONT to spoof HW and SW versions: Needed tools: - Linux VM or WSL with Python >3.3 -- [ZTE Telnet enabled](https://github.com/douniwan5788/zte_modem_tools) +- [ZTE Telnet enabler](https://github.com/douniwan5788/zte_modem_tools) - [ZTE_Firmware_Mod](https://github.com/hack-gpon/ZTE-firmware-mod) - TFTP server -First step is to login over telnet with `zte_factroymode.py` then execute ALL this command for a full backup: +First step is to login over telnet with `zte_factroymode.py`, then execute ALL these commands for a full backup: **Go to `/tmp` folder to create tmp files** @@ -349,13 +349,13 @@ cd /tmp cat /dev/mtd1 > uboot_config ``` -Copy the dumped firmware via TFTP to you VM or Windows machine with this commnad: +Copy the dumped firmware via TFTP to you VM or Windows machine with this command: ```sh tftp -l uboot_config -r uboot_config -p 192.168.1.X (where X is the IP of your PC) ``` -Delete dump +Delete dump: ```sh rm uboot_config @@ -367,13 +367,13 @@ Delete dump cat /dev/mtd2 > kernel0 ``` -Copy the dumped firmware via TFTP to you VM or Windows machine with this commnad: +Copy the dumped firmware via TFTP to you VM or Windows machine with this command: ```sh tftp -l kernel0 -r kernel0 -p 192.168.1.X (where X is the IP of your PC) ``` -Delete dump +Delete dump: ```sh rm kernel0 @@ -385,13 +385,13 @@ Delete dump cat /dev/mtd3 > kernel1 ``` -Copy the dumped firmware via TFTP to you VM or Windows machine with this commnad: +Copy the dumped firmware via TFTP to you VM or Windows machine with this command: ```sh tftp -l kernel1 -r kernel1 -p 192.168.1.X (where X is the IP of your PC) ``` -Delete dump +Delete dump: ```sh rm kernel1 @@ -403,13 +403,13 @@ Delete dump cat /dev/mtd4 > others ``` -Copy the dumped firmware via TFTP to you VM or Windows machine with this commnad: +Copy the dumped firmware via TFTP to you VM or Windows machine with this command: ```sh tftp -l others -r others -p 192.168.1.X (where X is the IP of your PC) ``` -Delete dump +Delete dump: ```sh rm others @@ -421,13 +421,13 @@ Delete dump cat /dev/mtd5 > param_tags ``` -Copy the dumped firmware via TFTP to you VM or Windows machine with this commnad: +Copy the dumped firmware via TFTP to you VM or Windows machine with this command: ```sh tftp -l param_tags -r param_tags -p 192.168.1.X (where X is the IP of your PC) ``` -Delete dump +Delete dump: ```sh rm param_tags @@ -439,23 +439,23 @@ Delete dump cat /dev/mtd6 > usercfg ``` -Copy the dumped firmware via TFTP to you VM or Windows machine with this commnad: +Copy the dumped firmware via TFTP to you VM or Windows machine with this command: ```sh tftp -l usercfg -r usercfg -p 192.168.1.X (where X is the IP of your PC) ``` -Delete dump +Delete dump: ```sh rm usercfg ``` -## Change region code +## Changing region code -{% include alert.html content="Looks like TIM and OF firmwares work only with their stock factory conf, so 97 or 116, otherwise no PPPoE" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="Be aware that changing the region code may break features such as PPPoE depending on your ISP" alert="Note" icon="svg-info" color="blue" %} -ZTE has created various region codes that load default valuse based on the local ISP. This configuration can be changed using this command: +ZTE has created various region codes that load default values based on the local ISP. This configuration can be changed using this command: ```sh upgradetest sfactoryconf X @@ -487,11 +487,11 @@ Where X is the number of supported regioncode into file `/etc/init.d/regioncode` ``` # Random notes -- F601v6/v7 read the software version exposed thru gpon_omci deamon from each kernel partition's header, so only way to spoof this parameter is to change the version in the header and recalculate CRC, otherwise bootloader refuse to load image -- F601v6 from TIM line use HWVer `VDF`, this can be changed back to `V6.0` issuing this command on telnet session: `setmac 1 32770 3` +- Both F601v6 and F601v7 read the software version exposed through the gpon_omci deamon from each kernel partition header, so the only way to spoof this parameter is to change the version in the header and recalculate CRC, otherwise the bootloader will refuse to load the image. +- TIM's F601v6s use HWVer `VDF`, this can be changed back to `V6.0` issuing this command via telnet: `setmac 1 32770 3` - The F601v7 is mounted 'upside down' to save on waveguides, the LEDs would be on the bottom of the PCB, so it would have to be turned upside down to make it cooler... -- The F601v6 turns on and runs even with 9V input -- The F601v7 turns on and runs even with 5V input +- The F601v6 turns on and runs even with 9V input. +- The F601v7 turns on and runs even with 5V input. # Miscellaneous Links @@ -501,7 +501,7 @@ Where X is the number of supported regioncode into file `/etc/init.d/regioncode` - [ZTE Telnet enabled](https://github.com/douniwan5788/zte_modem_tools) - [ZTE Firmware Mod Script](http://github.com/hack-gpon/ZTE-firmware-mod) -# Theardown and other photos +# Teardown and other photos ## HW V6.0 @@ -529,5 +529,5 @@ Where X is the number of supported regioncode into file `/etc/init.d/regioncode` --- -[^1]: If you flash a modified firmware (only HWVer V6.0 at the moment), you can permanent enable TELNET to avoid run each time the `zte_factory.py` script. -[^2]: Credentials are random generated by zte_factroymode.py, don't survive at reboot
\ No newline at end of file +[^1]: If you flash a modified firmware (only HWVer V6.0 at the moment), you can permanently enable telnet to avoid running the `zte_factory.py` script each time. +[^2]: Credentials are randomly generated by zte_factroymode.py, they are not persistent and will change at reboot.
\ No newline at end of file diff --git a/_ont/ont-zyxel-pmg3000-d20b.md b/_ont/ont-zyxel-pmg3000-d20b.md index a6d0517..69fa3b7 100644 --- a/_ont/ont-zyxel-pmg3000-d20b.md +++ b/_ont/ont-zyxel-pmg3000-d20b.md @@ -39,7 +39,7 @@ From the Zyxel shell you can move to a standard Linux shell using the `linuxshel ## Serial -The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface. It's near the SFP header. TX, RX and ground pads need to be connected to a USB2TTL adapter supporting a logic level of 3.3V. +The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface. It's near the SFP header. TX, RX and ground pads need to be connected to a USB2TTL adapter supporting 3V3 logic. {% include image.html file="tw236h-cdel-serial.jpg" alt="PMG3000-D20B Serial Pinout" caption="PMG3000-D20B Serial Pinout" %} @@ -85,8 +85,8 @@ This stick supports dual boot, as visible from the presence of `ImageA` and `Ima # GPON ONU status -## Get the operational status of the ONU -To see the connection state use the following command: +## Getting the operational status of the ONU +To check the connection status, use the following command: ``` linuxshell onu ploamsg @@ -102,20 +102,20 @@ onu lanpsg 0 ``` ## Setting Speed LAN Mode -{% include alert.html content="This command forces the speed to 2.5 and is instantaneous and permanent, use it only if your hardware supports HSGMII and be compatible (not to be used with Broadcom 57810s NIC)" alert="Note" icon="svg-warning" color="red" %} +{% include alert.html content="This command forces the speed to 2.5 and is instantaneous and permanent, use it only if your hardware supports HSGMII and is compatible (not to be used with Broadcom 57810s NIC)" alert="Note" icon="svg-warning" color="red" %} ```sh hal set speed 2.5g mode full ``` ## Querying a particular OMCI ME -Query via OMCI ME Class Name +Query via OMCI ME Class Name: ```sh omci show me classname OmciClassName (e.g Ont2g) ``` -Query via OMCI ME ID +Query via OMCI ME ID: ```sh omci show me classid OmciClassId (e.g 7) @@ -132,11 +132,11 @@ exit hal set sn ALCLf0f0f0f0 ``` -Do not worry if you're missing one of the two commands, the change is still applied with just one of them. +Do not worry if one of the two commands results missing, the change is still applied with just one of them. ## Setting ONU GPON PLOAM password {% include alert.html content="The PLOAM password is stored in the ASCII format." alert="Note" icon="svg-info" color="blue" %} -This can be done easily via web ui. If you prefer to do it via the shell use: +This can be done easily via the web UI. To do it via the shell use: ```sh hal set password PLOAMPASS @@ -166,7 +166,7 @@ ONTG_VER:0x463630303556362e300000000000 The hardware version must be encoded in hex format and right padded to 28 characters with 0 (excluding the starting 0x) to avoid any spurious values. ## Setting OMCI equipment ID (ME 257) -{% include alert.html content="Model number must not be more than 20 characters long in total." alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="Model number must not be longer than 20 characters in total." alert="Note" icon="svg-info" color="blue" %} ```sh manufactory set equipment id MYEQUIPMENTID @@ -186,10 +186,10 @@ The equipment id must be encoded in hex format and right padded to 39 characters # Advanced settings -## Reset Web Gui admin credentials +## Resetting Web GUI admin credentials -Sometimes, under certain circumstances, the Web Gui admin credentials might get changed from the default `admin`/`1234` combination. -To restore the default combination you can try following [this method](https://github.com/xvzf/zyxel-gpon-sfp/issues/6#issuecomment-1065864650). +Under certain circumstances, the Web GUI admin credentials might get changed from the default `admin`/`1234` combination. +To restore the default combination try following [this method](https://github.com/xvzf/zyxel-gpon-sfp/issues/6#issuecomment-1065864650). ## Creating a new rootfs The stick has a tricky image packing method, fortunately it has been reverse engineered. A script to help you create a custom rootfs can be found here: [https://github.com/nanomad/zyxel-pmg-3000-mod-kit](https://github.com/nanomad/zyxel-pmg-3000-mod-kit) @@ -197,25 +197,25 @@ The stick has a tricky image packing method, fortunately it has been reverse eng ## Flashing a new rootfs {% include alert.html content="All commands start from the twmanu shell." alert="Note" icon="svg-info" color="blue" %} -- Transfer the new mtd on the stick via tftp +- Transfer the new mtd on the stick via tftp: ``` linuxshell tftp -gr mtd2.mod.bin TFTP_SERVER_IP ``` - Flash it on the standby partition. You can use `system` and then `show actimage` to get the current active image. Check `/proc/mtd` for the right mtds. Usually: -- if the currect active image is A the mtd in use is mtd2 -- If the current active image is B the mtd in use is mtd3 +- if the currect active image is A, mtd2 is in use +- If the current active image is B, mtd3 is in use ``` linuxshell mtd -e /dev/mtd2 write /tmp/mtd2.mod.bin /dev/mtd2 ``` -- Switch to the new image +- Switch to the new image: ``` system set actimage a ``` -- Reboot the ONT +- Reboot the ONT: ``` system reboot @@ -224,11 +224,11 @@ reboot # EEPROM (I2C slave simulated EEPROM) The Zyxel PMG3000-D20B does not have a physical EEPROM, the Falcon SOC emulates an EEPROM by exposing it on the I2C interface as required by the SFF-8472 specification. -On the I2C interface there will be two memories of 256 bytes each at the addresses `1010000X (A0h)` and `1010001X (A2h)`. +On the I2C interface, two memories of 256 bytes each will be available at the addresses `1010000X (A0h)` and `1010001X (A2h)`. The Zyxel PMG3000-D20B stores the content of the emulated EEPROM1 (A2h) in `/tmp/config/sfp_eeprom1` to restore it after a reboot. -{% include alert.html content="The contents of EEPROM0 (A0h) are not stored anywhere and is regenerated at each boot" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="The contents of EEPROM0 (A0h) are not stored anywhere and they're regenerated at each boot" alert="Info" icon="svg-info" color="blue" %} ## EEPROM0 layout @@ -342,9 +342,9 @@ The Zyxel PMG3000-D20B stores the content of the emulated EEPROM1 (A2h) in `/tmp # Known Bugs - [Not working with Broadcom BCM57810S](https://github.com/xvzf/zyxel-gpon-sfp/issues/10) -- Issue on IPv6 discovery. But we are not sure if is a edge case of a particular ISP or not +- Issue on IPv6 discovery. Not certain whether it is a edge case of a particular ISP or not - [Some sticks have a custom password](https://github.com/xvzf/zyxel-gpon-sfp/issues/6) -- On V2.5 the Lantiq SDK has been updated from 6.4.2 to 7.5.1, but breaking upload performance +- On V2.5 the Lantiq SDK has been updated from 6.4.2 to 7.5.1, breaking upload performance # Miscellaneous Links diff --git a/_ont_xgs/ont-fs-XGS-ONU-25-20NI.md b/_ont_xgs/ont-fs-XGS-ONU-25-20NI.md index 9b52603..bdfb733 100644 --- a/_ont_xgs/ont-fs-XGS-ONU-25-20NI.md +++ b/_ont_xgs/ont-fs-XGS-ONU-25-20NI.md @@ -58,7 +58,7 @@ By shorting these two points with solder, you can access the UART from SFP pins | RX | pin #2 | | GND | pin #10 | -{% include alert.html content="USB TTL adapter may not work due to insufficient power supply. If possible, obtain 3.3V from the power supply device instead of the USB TTL adapter." alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="USB TTL adapter may not work due to insufficient power supply. If possible, obtain 3.3V from a dedicated power supply instead of the USB TTL adapter." alert="Note" icon="svg-info" color="blue" %} {% include image.html file="XGS-ONU-25-20NI/UART_SFP.png" alt="XGS-ONU-25-20NI UART Short point" caption="XGS-ONU-25-20NI UART Short point" %} @@ -95,18 +95,18 @@ Available from `#ONT/system>ontver build` and `#ONT/system/shell>cat /etc/versio This ONT supports dual boot. -`kernel0` and `rootfs0` respectively contain the kernel and firmware of the first image, `kernel1` and `rootfs1` the kernel and the firmware of the second one. +`kernel0` and `rootfs0` respectively contain the kernel and firmware of the first image, `kernel1` and `rootfs1` the kernel and firmware of the second one. # Useful files and binaries ## scfg.txt In the XGS-ONU-25-20NI ONT, the settings are loaded by four `scfg.txt` files. -For rewriting settings, `/userdata/scfg.txt` and `/tmp/scfg.txt` are used. +For overwriting settings, `/userdata/scfg.txt` and `/tmp/scfg.txt` are used. - `/config/default_scfg.txt` (read only): Contains the manufacturer's default settings, which are read first at ONT startup and are the lowest priority settings. - `/config/scfg.txt` (read only): Contains settings set by the firmware creator, which have higher priority than `default_scfg.txt` and will overwrite the settings if there is a conflict. - `/userdata/scfg.txt` (read/write): Contains settings set by the user or ISP. It has a higher priority than `/config/scfg.txt` and will overwrite the settings if there is a conflict. Can be edited and saved. -- `/tmp/scfg.txt` (temp): It contains dynamically generated settings based on values stored on its custom ROM (mtd9, mtd10). Since they are generated on tmpfs and cannot be saved directly, they are rewritten via the `#ONT> system/misc` command on the ONT. +- `/tmp/scfg.txt` (temp): It contains dynamically generated settings based on values stored on its custom ROM (mtd9, mtd10). Because they are generated on tmpfs and cannot be saved directly, they are rewritten via the `#ONT> system/misc` command on the ONT. The settings are overwritten and loaded at startup with the following priority: @@ -124,36 +124,36 @@ To configure settings using the MISC command, execute the following command: ## Login and Enable -This stick does not have a web GUI. -To configure it, you must log in via `UART` or `Telnet`. +This stick does not have a web UI. +To configure it, you must log in via `UART` or `telnet`. -{% include alert.html content="FS.com Stick XGS-ONU-25-20NI does not have PON S/N on the label. (The S/N field stamped on the label is FS.com internal S/N, not PON S/N). In order to get it, you can either ask an FS.com sales representative or check the boot log from the UART!" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="FS.com Stick XGS-ONU-25-20NI does not have its PON S/N on the label: the S/N field stamped on the label is FS.com's internal S/N, not the PON S/N. In order to obtain the actual PON S/N, either ask an FS.com sales representative or check the boot log from the UART!" alert="Note" icon="svg-info" color="blue" %} | User | Password (Enable Password) | | ------------------------ | ----------------------------------------------------------- | | ONU GPON Serial Number | 8 digit HMAC-MD5 based on Uppercase ONU GPON Serial Number | -You can use the following form to generate login credentials: +Use the following form to generate login credentials: {% include cig_password_xgspon.html password_len="8" %} -Or you can follow this external documentation on how to [emulate the ONT in QEMU](https://github.com/YuukiJapanTech/CA8271x), so use it at your own risk. +Or follow this external documentation on how to [emulate the ONT in QEMU](https://github.com/YuukiJapanTech/CA8271x), use at your own risk. UART does not ask for a login, it is possible to get a root shell without knowing the password. ## Root procedure -After logging in via `telnet` or `UART`, you will first get the MiniShell with user privileges. +After logging in via `telnet` or `UART`, you will first access the MiniShell with user privileges: ``` ONT> ``` -The root MiniShell can be obtained by executing the `enable` command on this MiniShell. +The root MiniShell can be accessed by executing the `enable` command on this MiniShell: ``` ONT> enable #ONT> ``` -You can then switch to the Linux root shell by executing the following command: +Switching to the Linux root shell is possible by executing the following command: ``` #ONT> system/shell @@ -164,7 +164,7 @@ You can then switch to the Linux root shell by executing the following command: # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU Check the ONU Registration State with the following command: ``` @@ -199,8 +199,8 @@ Check the ONU operation state with the following command: #ONT> ``` -## Get information of the OLT vendor -OLT information can be extracted from the MIB with the following command: +## Getting OLT vendor information +OLT information can be extracted from MIB 131 with the following command: ``` #ONT>system/mib/show 131 @@ -222,11 +222,11 @@ You can browse the MIB with the following command: #ONT/system/mib> ``` -### Show a list of MIBs supported by ONT +### Showing a list of supported MIBs ``` #ONT/system/mib> show -This command prints out the content of a mib table. +This command prints out the content of a MIB table. Usage: show CLASSID CLASSID: the class ID of the ME, defined in 983.2/984.4, currently @@ -236,7 +236,7 @@ ClassID Name Desc etc... ``` -### Show a specific MIB +### Showing a specific MIB For example, to display MIB 256 (Ont-g): ``` @@ -261,8 +261,8 @@ OntState = 1 #ONT/system/mib> ``` -### Dump of a MIB -Output a dump of mib to `/tmp/mibdump.txt` +### Dumping a MIB +Output a dump of MIB to `/tmp/mibdump.txt` ``` #ONT/system/mib> dump MIB is saved to the file /tmp/mibdump.txt. @@ -317,11 +317,11 @@ type 28 # GPON/OMCI settings -XGS-ONU-25-20NI ONT uses `scfg.txt` file and misc command for configuration. +XGS-ONU-25-20NI ONT uses the `scfg.txt` file and misc command for configuration. ## Getting/Setting ONU GPON Serial Number This setting must be changed with the `misc` CLI option and the `eqsn set "<serialnumber>"` command. -For example, if the SN is like `GPONabcd1234` (`47504f4eabcd1234`): +For example, if the desired S/N is `GPONabcd1234` (`47504f4eabcd1234`): ``` #ONT/system/misc> eqsn set "GPONabcd1234" ``` @@ -334,7 +334,7 @@ eqsn: GPONabcd1234 ## Getting/Setting ONU GPON PLOAM password This setting must be changed with the `misc` CLI option and the `exeep_w8 "<password>"` command. -For example, if the PLOAM password is like `0123456789`: +For example, if the desired PLOAM password is `0123456789`: ``` #ONT/system/misc> exeep_w8 "0123456789" ``` @@ -363,19 +363,19 @@ The `exeep_r8` command can also be used to retrieve the configured PLOAM passwor ## Getting/Setting ONU GPON LOID This setting must be changed in `scfg.txt`, using the key `CHAR-ARRAY CFG_ID_LOID`. -To modify LOID username we add the following line to `/userdata/scfg.txt`: +To modify the LOID username, add the following line to `/userdata/scfg.txt`: ``` CHAR-ARRAY CFG_ID_LOID = { 0xXX,0xXX,0xXX,0xXX, 0xXX,0xXX,0xXX,0xXX, 0xXX,0xXX,0xXX,0xXX, 0xXX,0xXX,0xXX,0xXX, 0xXX,0xXX,0xXX,0xXX, 0xXX,0xXX,0xXX,0xXX }; ``` -For example, if the LOID is like `0123456`: +For example, if the desired LOID is `0123456`: ``` CHAR-ARRAY CFG_ID_LOID = { 0x30,0x31,0x32,0x33, 0x34,0x35,0x36,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 }; ``` ## Getting/Setting ONU GPON LOID password This setting must be changed with the `misc` CLI option and the `pon_passwd set <password>` command. -For example, if the LOID password is like `0123456789`: +For example, if the desired LOID password is `0123456789`: ``` #ONT/system/misc> pon_passwd set 0123456789 ``` @@ -388,7 +388,7 @@ eqsn: 01234567890000000000 ## Getting/Setting OMCI hardware version (ME 256) This setting must be changed with the `misc` CLI option and the `eqvid set "<hwver>"` command. -For example, if the hardware version is like `abc123`: +For example, if the desired hardware version is `abc123`: ``` #ONT/system/misc> eqvid set "abc123" ``` @@ -401,7 +401,7 @@ eqvid: abc123 ## Getting/Setting OMCI vendor ID (ME 256) This setting must be changed with the `misc` CLI option and the `vendor set "<vendor>"` command. -For example, if the vendor is like `GPON`: +For example, if the desired vendor is `GPON`: ``` #ONT/system/misc> vendor set "GPON" ``` @@ -435,14 +435,15 @@ Stick's busybox (Linux shell) supports netcat and TFTP, which allow to send and # tftp -r remotefile.bin -g remotehost-ip ``` -## Backup of all partition -To obtain a backup, use the `dd` command to save it on `/tmp`, -or use the `cat` command to transfer it via netcat. +## Backing up all partitions +To obtain a backup, use the `dd` command to save it on `/tmp`: ``` # dd if=/dev/mtdX of=/tmp/mtdX.bin # tftp -l /tmp/mtdX.bin -r remotehost-ip ``` +Or use the `cat` command to transfer it via netcat: + ``` # cat /dev/mtdX | nc remotehost-ip 10000 ``` @@ -456,13 +457,13 @@ When partition writing to the stick, use the flash command set. ## Setting management IP To change the management IP, set it with the `misc` CLI option and the `admin_ip set <ip>` command. -For example, if the management IP is like `192.168.1.1`: +For example, if the desired management IP is `192.168.1.1`: ``` #ONT/system/misc> admin_ip set 192.168.1.1 ``` To change the management IP netmask, set it with the `misc` CLI option and the `admin_mask set <netmask>` command. -For example, if the management IP mask is like `255.255.255.0`: +For example, if the desired management IP mask is `255.255.255.0`: ``` #ONT/system/misc> admin_mask set 255.255.255.0 ``` @@ -481,7 +482,7 @@ ERROR: can't get kernel image! SATURN# ``` -Download stick's mtd dump from [mtd dump.](https://github.com/YuukiJapanTech/CA8271x/tree/main/mtd) +Download the stick's mtd dump from [GitHub.](https://github.com/YuukiJapanTech/CA8271x/tree/main/mtd) Enable NAND with the following command: ``` @@ -505,7 +506,7 @@ SATURN# loadb 0x80000000 Using Tera Term, send the Kernel image (mtd3 or mtd6) by kermit transfer. {% include image.html file="XGS-ONU-25-20NI/Stick_Rep.png" alt="XGS-ONU-25-20NI Repair" caption="XGS-ONU-25-20NI Repair" %} -Erase NAND and write the transferred kernel. +Erase the NAND and write the transferred kernel. ``` SATURN# spi_nand erase 0x000000600000 0x600000 SATURN# spi_nand erase 0x000003500000 0x600000 @@ -514,13 +515,13 @@ SATURN# spi_nand write 0x80000000 0x000003500000 0x600000 ``` Receive the file with the `loadb` command. -and Using Tera Term, send the rootfs image (mtd4 or mtd7) by kermit transfer. +Using Tera Term, send the rootfs image (mtd4 or mtd7) by kermit transfer. ``` SATURN# loadb 0x81000000 ## Ready for binary (kermit) download to 0x81000000 at 115200 bps... ``` -Erase NAND and write the transferred rootfs. +Erase the NAND and write the transferred rootfs. ``` SATURN# spi_nand erase 0x000000c00000 0x2800000 SATURN# spi_nand erase 0x000003b00000 0x2800000 @@ -528,7 +529,7 @@ SATURN# spi_nand write 0x81000000 0x000000c00000 0x2800000 SATURN# spi_nand write 0x81000000 0x000003b00000 0x2800000 ``` -When the stick is turned back on, it will boot with the transferred kernel and rootfs. +When the stick turns back on, it will boot with the transferred kernel and rootfs. # Known Bugs diff --git a/_ont_xgs/ont-hisense-ltf7267-bha+.md b/_ont_xgs/ont-hisense-ltf7267-bha+.md index c36ffb3..fb85d82 100644 --- a/_ont_xgs/ont-hisense-ltf7267-bha+.md +++ b/_ont_xgs/ont-hisense-ltf7267-bha+.md @@ -33,7 +33,7 @@ parent: HiSense ## Serial -The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface. It's near the SFP header. TX, RX and ground pads need to be connected to a USB2TTL adapter supporting a logic level of 3.3V. +The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface. It's near the SFP header. TX, RX and ground pads need to be connected to a USB2TTL adapter supporting 3V3 logic. {% include image.html file="ont-hisense-ltf7267-bha+_inside.jpg" alt="HiSense LTF7267-BHA+ Internals" caption="HiSense LTF7267-BHA+ Internals" %} @@ -61,11 +61,11 @@ The stick has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be a This ONT supports dual boot. -`kernel0` and `rootfs0` respectively contain the kernel and firmware of the first image, `kernel1` and `rootfs1` the kernel and the firmware of the second one +`kernel0` and `rootfs0` respectively contain the kernel and firmware of the first image, `kernel1` and `rootfs1` the kernel and firmware of the second one. # XGS-PON ONU status -To access Cortina Shell (needed to check OMCI stuff and XGSPON status) you can use the following command: +To access Cortina Shell, needed to check OMCI settings and XGSPON status, use the following command: ```sh # app-cli @@ -73,7 +73,7 @@ To access Cortina Shell (needed to check OMCI stuff and XGSPON status) you can u This console can also be reached by opening a telnet connection to `192.168.0.1:2233` -## Check Activation Status (from app-cli and telnet\ssh session) +## Checking Activation Status (from app-cli and telnet\ssh session) Open two telnet sessions, one to `192.168.0.1` and one to `192.168.0.1:2233` @@ -111,7 +111,7 @@ You will see the following output on the first shell: [260436.544953] ^M ``` -## Show ONT configuration (from app-cli session) +## Showing ONT configuration (from app-cli session) ```sh Cortina> enable @@ -163,7 +163,7 @@ XGe Port idx 0 map to Port 6 ``` Please note that some of the above fields are decoded incorrectly, such as `sn` and `versionId` -## Get information of the OLT vendor (from app-cli session) +## Getting OLT vendor information (from app-cli session) ```sh Cortina> enable @@ -234,7 +234,7 @@ Me: oltG No linked ME ``` -## Check current connection type and configuration (GEM Port+Mac Brige) +## Checking current connection type and configuration (GEM Port+Mac Brige) ```sh Cortina> enable @@ -261,7 +261,7 @@ GEM: 1025 | (BI, TCONT:0x101, allocId:1281) |--Eth :0x0301 ``` -## Check VLAN filter +## Checking VLAN filter ```sh Cortina> enable @@ -298,7 +298,7 @@ Link to PPTP eth: ------->instance 0x301 # vi /config/scfg.txt ``` -Append lines below to the file and save it to change Serial Number +Append the lines provided below to the file and save it to change the PON S/N: ``` STRING CFG_ID_PON_VENDOR_ID = SMBS; @@ -348,9 +348,9 @@ Reboot ONT to apply the change ### Normal procedure -This ONT seems to be supporting a PLOAM password up to 288 bits in lenghth (36 ASCII characters, 72 Hex digits). +This ONT seems to support PLOAM passwords up to 288 bits in lenghth (36 ASCII characters, 72 Hex digits). -The PLOAM password is stored into 32 bit chunks (4 ASCII characters / 8 Hex digits), each byte swapped. +The PLOAM password is stored into 32 bit chunks (4 ASCII characters / 8 Hex digits), with each chunk being byte-swapped. So, starting from the following PLOAM in ASCII format @@ -364,7 +364,7 @@ It gets translated into the following HEX value: 0x41314232433344344535 ``` -Which is then split into the following blocks (the last block gets padded with 0 to reach 8 digits) +Which is then split into the following blocks (the last block gets padded with 0 to reach 8 digits): ``` BLOCK 0: 0x41314232 @@ -372,7 +372,7 @@ BLOCK 1: 0x43334434 BLOCK 2: 0x45350000 ``` -Each block is then byte swapped (i.e. read each sequence of two digits from right to left) +Each block is then byte-swapped (i.e. read each sequence of two digits from right to left): ``` BLOCK 0: 0x32423141 @@ -380,13 +380,13 @@ BLOCK 1: 0x34443343 BLOCK 2: 0x00003545 ``` -And then you can finally persist it by changing the configuration file +And then you can finally make the change persistent by modifying the configuration file: ```sh # vi /config/scfg.txt ``` -Append lines below to the file and save it to change the PLOAM password +Append the lines provided below to the file and save it to change the PLOAM password: ``` INT CFG_ID_PON_REGISTRATION_ID0 = 0x32423141; @@ -413,7 +413,7 @@ CHAR-ARRAY CFG_ID_LOID CHAR-ARRAY CFG_ID_PASSWD = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}; ``` -Reboot ONT to apply the change +Reboot ONT to apply the change. ## Setting OMCI software version (ME 7) @@ -422,7 +422,7 @@ Reboot ONT to apply the change # fw_setenv img_version1 20220527052622 ``` -Reboot ONT to apply the change +Reboot ONT to apply the change. ## Setting OMCI hardware version (ME 256) @@ -430,13 +430,13 @@ Reboot ONT to apply the change # vi /config/scfg.txt ``` -Append line below to the file and save it to change HWVER +Append the line provided below to the file and save it to change HWVER: ``` CHAR-ARRAY CFG_ID_GPON_VERSION = {0x46,0x35,0x36,0x38, 0x34,0x53,0x5f,0x76, 0x31,0x00,0x00,0x00, 0x00,0x00}; ##GPON version string, default value is V1.0 ``` -Reboot ONT to apply the change +Reboot ONT to apply the change. ## Setting OMCI equipment ID (ME 257) @@ -444,13 +444,13 @@ Reboot ONT to apply the change # vi /config/scfg.txt ``` -Append the line below to the file and save it to change EQID +Append the line providede below to the file and save it to change the EQID: ``` CHAR-ARRAY CFG_ID_GPON_EQID = {0x46,0x49,0x42,0x45, 0x52,0x20,0x42,0x6f, 0x78,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00}; ##GPON ME ONU2G equiment id value, default is saturn ``` -Reboot ONT to apply the change +Reboot ONT to apply the change. # Advanced settings @@ -460,13 +460,13 @@ Reboot ONT to apply the change # vi /config/scfg.txt ``` -Append lines below to the file and save it to change Serial Number +Append the lines provided below to the file and save it to change Emulation Type: ``` STRING CFG_ID_PON_OLT_TYPE = ALCL; ##GPON OLT Vendor name, support ZTE,ADTRAN,ALCL,CALIX,SUMITOMO,CORTINA,HUAWEI ``` -Reboot ONT to apply the change +Reboot ONT to apply the change. ## Changing OMCC Version @@ -475,16 +475,16 @@ Reboot ONT to apply the change # vi /config/scfg.txt ``` -Append the line below to the file and save it to change Serial Number +Append the line provided below to the file and save it to change OMCC Version: ``` CHAR CFG_ID_OMCC_VERSION = 0xB2; ``` -Reboot ONT to apply the change +Reboot ONT to apply the change. # Known Bugs -- `ALCL` OLT mode uses some static configurations on MIBs, so if your OLT has strict configuration checks it might not work properly -- During initial tests the only currently working mode of the stick is `PPTP EthUni` -- Stick can be configured also emulate `VEIP` mode(adding it to the scfg.txt file), but current firmware doesn't link correctly the XGBE interface, so no traffic is passing between LAN and PON interfaces +- `ALCL` OLT mode uses some static configurations on MIBs, so if your OLT has strict configuration checks it might not work properly. +- During initial tests the only currently working mode of the stick is `PPTP EthUni`. +- Stick can be configured to also emulate `VEIP` mode (adding it to the scfg.txt file), but the current firmware doesn't link correctly the XGBE interface, so no traffic is passing between LAN and PON interfaces. diff --git a/_ont_xgs/ont-huawei-useful-command.md b/_ont_xgs/ont-huawei-useful-command.md index 4f0e91c..e403050 100644 --- a/_ont_xgs/ont-huawei-useful-command.md +++ b/_ont_xgs/ont-huawei-useful-command.md @@ -1,8 +1,8 @@ ## Enabling telnet -We need access to a specific shell and in order to get it we have to enable telnet. On the unit, the telnet server accepts connections but doesn't read any input, nor does it send anything. +We need access to a specific shell and in order to get it enabling telnet is required. On the ONT, the telnet server accepts connections but doesn't read any input, nor does it send anything. -To enable telnet we’ll use one of the web interface’s features: the configuration backup and restore page. The configuration can be downloaded as an XML, which contains a lot more options than the web interface and a couple of them can be modified to enable telnet access: under the `X_HW_CLITelnetAccess` node, set the `Access` attribute to `1` and in `AclServices`, `TELNETLanEnable` should also be set to `1`. I had to set both but your mileage may vary. +To enable telnet the configuration backup/restore web UI page will be used. The configuration can be downloaded as an XML, which contains a lot more options than the web interface and a couple of them can be modified to enable telnet access: under the `X_HW_CLITelnetAccess` node, set the `Access` attribute to `1` and, in `AclServices`, `TELNETLanEnable` should also be set to `1`. Both might have to be set but your mileage may vary. It is possible that this won't work/has been fixed in more recent versions. diff --git a/_ont_xgs/ont-nokia-useful-command.md b/_ont_xgs/ont-nokia-useful-command.md index c5af085..411335d 100644 --- a/_ont_xgs/ont-nokia-useful-command.md +++ b/_ont_xgs/ont-nokia-useful-command.md @@ -1,6 +1,6 @@ # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU ```sh #ONT>traffic #ONT/system>pon @@ -73,7 +73,6 @@ pon_passwd: 31323334353637383900 ``` ## Setting OMCI software version (ME 7) -The following must be typed from the standard linux shell: ```sh # echo SWVER=3FE49337AOCK80 > /mnt/rwdir/sys.cfg ``` diff --git a/_ont_xgs/ont-nokia-xs-010x-q.md b/_ont_xgs/ont-nokia-xs-010x-q.md index d2dd9dd..bb18aa2 100644 --- a/_ont_xgs/ont-nokia-xs-010x-q.md +++ b/_ont_xgs/ont-nokia-xs-010x-q.md @@ -42,7 +42,7 @@ parent: Nokia ## Serial -The ONT has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface. It's on the top left (with Ethernet\Power\Optical port faced down) of the board. TX, RX and ground pads need to be connected to a USB2TTL adapter supporting a logic level of 3.3V. +The ONT has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be accessed from the top surface: it's on the top left of the board, when the Ethernet\Power\Optical ports are facing down. TX, RX and ground pads need to be connected to a USB2TTL adapter supporting 3V3 logic. {% include image.html file="ont-nokia_xs-010x-q_ttl.jpg" alt="Nokia XS-010X-Q TTL Pads" caption="Nokia XS-010X-Q TTL Pads" %} @@ -73,7 +73,7 @@ The ONT has a TTL 3.3v UART console (configured as 115200 8-N-1) that can be acc This ONT supports dual boot. -`kernel0` and `rootfs0` respectively contain the kernel and firmware of the first image, `kernel1` and `rootfs1` the kernel and the firmware of the second one +`kernel0` and `rootfs0` respectively contain the kernel and firmware of the first image, `kernel1` and `rootfs1` the kernel and firmware of the second one. {% include_relative ont-nokia-use.md %} @@ -81,11 +81,9 @@ This ONT supports dual boot. ## Enable SSH (not persistent) -Port 22 is filtered by default and the SSH daemon can be only enabled in runtime. Here is the procedure but it's not persisten accross reboot: +Port 22 is filtered by default and the SSH daemon can be only enabled in runtime. Here is the procedure but it's not persistent and will need to be done again after each reboot: -Access UART with `ONTUSER` - -Enter `system\misc` +Access UART with `ONTUSER`, then enter `system\misc`. Set `ssh_en` to `1` with the command: ```sh @@ -103,14 +101,12 @@ Go back to `system`, then `shell` and run this command: ``` ## Enable Telnet Full Shell -When you're using default credentials to access telnet (`admin`\\`1234`), the prompt is limited to `GponSLID` shell that permits only to modify or display the `PLOAM` -If you change the `admin_mask` to `255.255.255.255`, default credentials stop to work but you can logon with `ONTUSER` and generated password to have full shell like UART +When using the default credentials to access telnet (`admin`\\`1234`), the prompt is limited to the `GponSLID` shell that only permits modifying or displaying the `PLOAM` password. +If you change the `admin_mask` to `255.255.255.255`, default credentials stop working but you can login as `ONTUSER` using the generated password to have full shell like when using UART. Here is the procedure to change `admin_mask`: -Access UART with `ONTUSER` - -Enter `system\misc` +Access UART with `ONTUSER`, then enter `system\misc`. Set `admin_mask` to `255.255.255.255` with the command: ```sh diff --git a/_ont_xgs/ont-zte-f2801s.md b/_ont_xgs/ont-zte-f2801s.md index 8ecbab9..cde218a 100644 --- a/_ont_xgs/ont-zte-f2801s.md +++ b/_ont_xgs/ont-zte-f2801s.md @@ -54,16 +54,16 @@ parent: ZTE This ONT supports dual boot, as visible from the presence of `kernel1` and `kernel2`, which contain the rootfs. -The boot image can be swapped with the following command: +The boot images can be swapped with the following command: ```sh upgradetest switchver X ``` -Where `X` can be `0/1` based on the image you want to boot. +Where `X` can be `0/1`, based on the image you want to boot from. -You can also clone the currently running image into other slot using this command: +You can also clone the currently running image into the other slot using this command: ```sh syn_version @@ -73,7 +73,7 @@ syn_version {% include alert.html content="Commands have been tested on V2 HW rev. on OpenFiber firmwares" alert="Note" icon="svg-info" color="blue" %} ## Enable Telnet -{% include alert.html content="This is an external script ([ZTE Telnet enabled](https://github.com/douniwan5788/zte_modem_tools)), so use it at your own risk! Credential doesn't survive at reboot!" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="This is an external script ([ZTE Telnet enabler](https://github.com/douniwan5788/zte_modem_tools)), use at your own risk! Credentials don't survive at reboot!" alert="Note" icon="svg-info" color="blue" %} ```sh python3 zte_factroymode.py --user admin --pass admin --ip 192.168.1.1 --port 80 telnet open @@ -108,7 +108,7 @@ Password: Eqb8X8Qt ## Enable console redirection -To see omcidebug messages on Telnet you need to execute this command (just the first time of each connection): +To see omcidebug messages on telnet, execute this command (just the first time of each connection): ```sh redir printf @@ -116,21 +116,21 @@ redir printf # GPON ONU status -## Get the operational status of the ONU +## Getting the operational status of the ONU -To see the connection state use the following command: +To check the connection status use the following command: ``` gpontest -gstate ``` `[gpontest] gpon state is [O5]` for O5 state -## Get information of the OLT vendor +## Getting OLT vendor information ```sh sendcmd 132 omcidebug showmedata 131 ``` -This command will print out the result like this one: +This command will print the following output: ```sh ################################## @@ -156,7 +156,7 @@ MIB INFO: sendcmd 132 omcidebug showmedata ID_MIB (eg. 7 for Firmware version) ``` -This command will print out a result like this one: +This command will print the following output: ```sh @@ -184,7 +184,7 @@ MIB INFO: ## Setting ONU GPON Serial Number -{% include alert.html content="You have to change S/N and the VID. 2176 is for the VID (first 4 letters of the S/N) and 2177 is for the last 8 digits of the S/N" alert="Note" icon="svg-info" color="blue" %} +{% include alert.html content="Both S/N and VID have to be changed. 2176 is for the VID (first 4 letters of the S/N) and 2177 is for the last 8 digits of the S/N" alert="Note" icon="svg-info" color="blue" %} ```sh setmac 1 2176 ZTEG setmac 1 2177 AABBCCDD @@ -193,7 +193,7 @@ setmac 1 2177 AABBCCDD ## Setting ONU GPON PLOAM password {% include alert.html content="The PLOAM password is stored in the ASCII format." alert="Note" icon="svg-info" color="blue" %} -This can be done easily via web ui. If you prefer to do it via the shell use: +This can be done easily via the web UI. To do it via the shell use: ```sh setmac 1 2181 1234567890 setmac 1 2178 1234567890 @@ -201,17 +201,17 @@ setmac 1 2178 1234567890 # Advanced settings -## Backup ONT Paritions for HW\SW Version Mod +## Backing up ONT Paritions for HW/SW Version Mod This step is suggested if you want to replace firmware on your ONT to spoof HW and SW version: Needed tools: - Linux VM or WSL with Python >3.3 -- [ZTE Telnet enabled](https://github.com/douniwan5788/zte_modem_tools) +- [ZTE Telnet enabler](https://github.com/douniwan5788/zte_modem_tools) - TFTP server -First step is to login over telnet with `zte_factroymode.py` then execute ALL this command for a full backup: +The first step is to login over telnet with `zte_factroymode.py`, then execute ALL these commands for a full backup: **Go to `/tmp` folder to create tmp files** @@ -221,7 +221,7 @@ cd /tmp **Dump and transfer all mtd ** -Here 192.168.1.2 is the IP of the machine running the TFTP server, change it as needed +In the following commands, 192.168.1.2 is the IP of the machine running the TFTP server, change it as needed. ```sh cat /dev/mtd1 > u-boot.bin && tftp -l u-boot.bin -r u-boot.bin -p 192.168.1.2 && rm u-boot.bin @@ -236,7 +236,7 @@ cat /dev/mtd9 > rootfs.bin && tftp -l rootfs.bin -r rootfs.bin -p 192.168.1.2 && ``` -## Change region code +## Changing region code {% include alert.html content="Be aware that changing the region code may break features such as PPPoE depending on your ISP" alert="Note" icon="svg-info" color="blue" %} @@ -260,7 +260,7 @@ Where X is the number of supported regioncode into file `/etc/init.d/regioncode` ``` # Random notes -- F2801S reads the software version exposed thru gpon_omci deamon from each kernel partition's header, so only way to spoof this parameter is to change the version in the header and recalculate CRC, otherwise bootloader refuse to load image +- The F2801S reads the software version exposed through the gpon_omci deamon from each kernel partition header, so the only way to spoof this parameter is to change the version in the header and recalculate CRC, otherwise the bootloader will refuse to load the image # Miscellaneous Links diff --git a/_sfp/bosa-tosa-rosa.md b/_sfp/bosa-tosa-rosa.md index a893170..2558603 100644 --- a/_sfp/bosa-tosa-rosa.md +++ b/_sfp/bosa-tosa-rosa.md @@ -5,8 +5,8 @@ nav_order: 3 layout: default --- -In optical-electrical conversion, special components called TOSA (Transmitter Optical Sub Assembly) and ROSA (Receiver Optical Sub Assembly) are used to convert the signal. -They are responsible for translating the optical signal into a corresponding electrical signal or vice versa, which inputs or outputs symbols corresponding to the optical values. These values, which we refer to as unprocessed or RAW values for simplicity, are not standard signals and must be converted into standard signals[^huawei]. +In optical-electrical conversions, special components called TOSA (Transmitter Optical Sub Assembly) and ROSA (Receiver Optical Sub Assembly) are used to convert the signal. +They are responsible for translating the optical signal into a corresponding electrical signal and viceversa, which inputs or outputs symbols corresponding to the optical values. These values, which we refer to as unprocessed or RAW values for simplicity, are not standard signals and must be converted into standard signals[^huawei]. TOSA and ROSA are essential components in the uni-directional transceivers which transmit on one fiber optic strand and receive on the other fiber optic strand. diff --git a/_sfp/ont-wo-mac.md b/_sfp/ont-wo-mac.md index b1e6faf..06c9c72 100644 --- a/_sfp/ont-wo-mac.md +++ b/_sfp/ont-wo-mac.md @@ -5,22 +5,22 @@ nav_order: 2 layout: default --- -PON technologies unlike Ethernet are not P2P but one-to-many with two device types: ONU (Optical Network Unit)/ONT (Optical Network Terminal) and OLT (Optical Line Terminal). Both devices can be manufactured using the SFP form factor[^tibit]. +PON technologies, unlike Ethernet, are not P2P but one-to-many with two device types: ONU (Optical Network Unit)/ONT (Optical Network Terminal) and OLT (Optical Line Terminal). Both devices can be manufactured using the SFP form factor[^tibit]. -The OLT provides an integrated access box for Passive Optical Networks. OLTs are typically chassis with one or more line cards inside, and on each line card there is one or more PON transceiver, usually in SFP form factor. Each line card is connected to a secondary switch that provides line card aggregation to the Ethernet uplinks. OLTs are often a mixture of Layer 2 and Layer 3 switching with traffic shaping on a per-customer, per-service basis[^tibit]. +The OLT provides an integrated access box for Passive Optical Networks. OLTs are typically chassis with one or more line cards inside, and on each line card there is one or more PON transceiver, usually in the SFP form factor. Each line card is connected to a secondary switch that provides line card aggregation to the Ethernet uplinks. OLTs are often a mixture of Layer 2 and Layer 3 switching with traffic shaping on a per-customer, per-service basis[^tibit]. -The communication within the SFP PON transceiver is neither MMI nor Ethernet, outside [SFP standards](/sfp-standard.md), but rather it is an *equivalent electrical symbols of optical transmission* (which is simply the input/output of the [BOSA](/bosa-tosa-rosa.md)) that for simplicity's sake we call **PON RAW communication** (also referred to as SFP w/o PON MAC). All the PON management part is left to the line card itself. Each equivalent electrical symbol of optical transmission is a separate dialect, distinct from other dialects. Furthermore, as one can easily guess, this communication is not standard and is not within the signalling standards ([^sfprate],[^sfprate2],[^sfpplusstandard]) but it is compliant with some portions of the MSA [^sfpstandard],[^sfpplusstandard],[^sfpplusmi]. This requires extreme compatibility between ONT and transreciver. This design choice is made for several reasons: -- *size*: the size of an OLT w/o PON MAC is very similar to that of an MMI or Ethernet transceiver, and the size of an OLT with the integrated PON MAC far exceeds that of the standard SFP form factor -- *dissipative heating capacity*: the dissipative heating capacity of an OLT with PON MAC is higher than a normal transceiver, such as a 1 or 10 Gbps Ethernet link. -- *duplication*: there is a double `MAC` → `MMI` conversion (`MMI` → `MAC` → `PHY` → `MAC` → `OLT CPU`) -- *repairability*: since lasers often have a shorter lifetime than other ICs, it is good to be able to change only the transceiver +The communication within the SFP PON transceiver is neither MII nor Ethernet, outside [SFP standards](/sfp-standard.md), but rather it is an *equivalent electrical symbols of optical transmission* (which is simply the input/output of the [BOSA](/bosa-tosa-rosa.md)) that for simplicity's sake we call **PON RAW communication** (also referred to as SFP w/o PON MAC). All the PON management part is left to the line card itself. Each equivalent electrical symbol of optical transmission is a separate dialect, distinct from other dialects. Furthermore, as one can easily guess, this communication is not standard and is not within the signalling standards ([^sfprate],[^sfprate2],[^sfpplusstandard]) but it is compliant with some portions of the MSA [^sfpstandard],[^sfpplusstandard],[^sfpplusmi]. This requires extreme compatibility between ONT and transceiver. This design choice is made for several reasons: +- *size*: the size of an OLT w/o PON MAC is very similar to that of an MII or Ethernet transceiver, and the size of an OLT with the integrated PON MAC far exceeds that of the standard SFP form factor; +- *dissipative heating capacity*: the dissipative heating capacity of an OLT with PON MAC is higher than a normal transceiver, such as a 1 or 10 Gbps Ethernet link; +- *duplication*: there is a double `MAC` → `MII` conversion (`MII` → `MAC` → `PHY` → `MAC` → `OLT CPU`); +- *repairability*: since lasers often have a shorter lifetime than other ICs, it is good to be able to only change the transceiver. -Despite this, there is a vendor that sells OLT SFP with PON MAC[^tibit]. The following pictures show an OLT SFP with PON MAC part and a transreciver without PON MAC. It is interesting to see that the latter is much longer and requires an additional heatsink. +Despite this, there is a vendor that sells OLT SFPs with PON MAC[^tibit]. The following pictures show an OLT SFP with PON MAC part and a transreciver without PON MAC. It is interesting to see that the latter is much longer and requires an additional heatsink. {% include image.html file="ont-wo-mac/tibit.png" alt="PON OLT with MAC" caption="PON OLT with MAC" %} {% include image.html file="ont-wo-mac/huawei.png" alt="PON transceiver for OLT w/o MAC" caption="PON transceiver for OLT w/o MAC" %} -Similarly, the same argument can be made for OLT SFPs, especially in 10E-PON and XGS-PON there are a lot of transreceivers w/o PON MAC and few ONTs with PON MAC. In this case the reasons are similar to the previous ones. It is also clear that ONTs w/o PON MAC require a PON MAC part within the end device that supports the relevant communication protocol. +Similarly, the same argument can be made for ONT SFPs, especially in 10E-PON and XGS-PON there are a lot of transceivers w/o PON MAC and few ONTs with PON MAC. In this case, the reasons are similar to the OLT SFPs'. It is also clear that ONTs w/o PON MAC require a PON MAC part within the end device that supports the relevant communication protocol. The following pictures show some operating diagrams of some ONT with PON MAC and ONT w/o PON MAC[^SFPP-XGS-ONU-MAC-ASC-I-C],[^SFPP-XGS-ONU-N1-I-C],[^MSOG22-xD6C-xxT1]. @@ -40,7 +40,7 @@ graph TD end; subgraph CS[Cage SFP] E --> |I2C| Controller; - C --> |MMI on Tx - Rx| MAC; + C --> |MII on Tx - Rx| MAC; Controller[Controller I2C] --> Switch; MAC --> Switch; end; @@ -65,11 +65,11 @@ graph TD end; ``` -# Why are there no ONT w/o MAC on Hack GPON? +# Why are there no ONTs w/o MAC on Hack GPON? -For utility reasons all SFPs w/o PON MAC are not illustrated on Hack GPON as they are not modifiable like ONT with MAC (they require two inter-compatible devices). +For usefulness reasons, all SFPs w/o PON MAC are not illustrated on Hack GPON as they are not modifiable like ONTs with MAC (they require two inter-compatible devices). -In particular, the SFP ONU of the AVM Fritz!Box 5530/5590 belongs in this category, and that the above-mentioned devices are not compatible with any other SFP using MMI/Ethernet/Fibre Channel, while for example the FreeBox or IliadBox supports both ONU w/o PON MAC and some SFP with MAC. +In particular, the SFP ONU of the AVM Fritz!Box 5530/5590 belongs in this category, and that the above-mentioned devices are not compatible with any other SFP using MII/Ethernet/Fibre Channel, while for example the FreeBox or IliadBox supports both ONU w/o PON MAC and some SFP with MAC. In general, these devices do not have enough customisation to allow the required parameters to be changed other than the GPON Serial Number and GPON Ploam Password. This means that in most scenarios these devices with ONT w/o MAC are not flexible enough to be used as a replacement for an ISP-provided ONT. diff --git a/_sfp/sfp-standard.md b/_sfp/sfp-standard.md index 6825ace..892f772 100644 --- a/_sfp/sfp-standard.md +++ b/_sfp/sfp-standard.md @@ -7,22 +7,22 @@ layout: default The organisation that developed SFPs (MSA SFP) has always been very cautious about defining a hardened list of admissible signals for SFPs, their first standard only providing pinout, form-factor and dissipative capacity specifications. It is up to the manufacturer to decide which communication to use in the Tx and Rx pins[^sfpstandard]. -After the SFP standard entered the market, in the early 2000s Ethernet and Fibre Channel, the MSA SFP also started to standardise signalling, starting with [^sfprate] and [^sfprate2] which define a list of admissible standard signalling limited to the capabilities of the current form factor SFP. +After the SFP standard entered the market, in the early 2000s with Ethernet and Fibre Channel, the MSA SFP also started standardising signalling, starting with [^sfprate] and [^sfprate2] which define a list of admissible standard signalling limited to the capabilities of the current form factor SFP. With the need to increase the heat dissipation characteristics of the modules (in order to increase speeds) and to allow some additions to the EEPROM, an additional standard, called SFP+[^sfpplusstandard],[^sfpplusmi],[^xenpak_xfp], was developed, which contains all the aforementioned improvements. The 16GFC, 20GFC signalling for Fibre Channel and the 10 Gbps and 2.5 signalling for Ethernet were also included in the updated [^sfprate] and [^sfprate2] standard. Some of these are also included in [^sfpplusstandard] locking the SFP+ standard to a tenth of signalling, all other signals should fall under the SFP standard[^sfpstandard], but they can use the extended SFP+ management interface[^sfpplusmi]. -The Ethernet signals are all very similar, but there are some differences between Base-X and MMI. The media-independent interface (MMI) was defined in the IEEE 802.11u standard, was originally defined as a standard interface to connect a Fast Ethernet MAC block (i.e. CPU, switch) to a PHY chip (i.e. twisted pair, fiber optic, etc.) in a standardised way. The main advantage is that the MMI can be used without redesigning or replacing the MAC hardware. Thus any MAC may be used with any PHY, independent of the network signal transmission media[^ethernet]. +The Ethernet signals are all very similar, but there are some differences between Base-X and MII. The media-independent interface (MII) was defined in the IEEE 802.11u standard. It was originally defined as a standard interface to connect a Fast Ethernet MAC block (i.e. CPU, switch) to a PHY chip (i.e. twisted pair, fiber optic, etc.) in a standardised way. The main advantage is that MII can be used without redesigning or replacing the MAC hardware. Thus any MAC may be used with any PHY, independent of the network signal transmission media[^ethernet]. The main difference is the physical media over which the frames are: -- *Base-X* is based on the Ethernet PHYsical Layer (level 1) and this standard uses the 8B/10B coding (or other encodings as specified in the EEPROM), and *MMI* is based on the Ethernet MAC Device (level 2, the device that actually makes and receives Ethernet frames)[^ethernet]. -- In *Base-X*, auto-negotiation is limited to flow-control (and duplex, which is not really used since it's always full-duplex), and in *MII*, auto-negotiation (AN) also allows the PHY to indicate to the MAC the post-PHY link speed. Even though the MAC-to-PHY SGMII link is always 1000Mbps, it supports 10, 100 and 1000Mbps past the PHY and the MAC need to know this to space out the bits properly (e. g. if the external link is 100Mbps, each bit on the SGMII link is sent 10 times)[^ethernet]. +- *Base-X* is based on the Ethernet PHYsical Layer (layer 1) and this standard uses the 8B/10B coding (or other encodings as specified in the EEPROM), and *MII* is based on the Ethernet MAC Device (layer 2, the device that actually makes and receives Ethernet frames)[^ethernet]. +- In *Base-X*, auto-negotiation is limited to flow-control (and duplex, which is not really used since it's always full-duplex), and in *MII*, auto-negotiation (AN) also allows the PHY to indicate to the MAC the post-PHY link speed. Even though the MAC-to-PHY SGMII link is always 1000Mbps, it supports 10, 100 and 1000Mbps past the PHY and the MAC needs to know this to space out the bits properly (e. g. if the external link is 100Mbps, each bit on the SGMII link is sent 10 times)[^ethernet]. -The MII can be used to connect a MAC to an external PHY using a pluggable connector, or directly to a PHY chip on the same PCB. In the first case it is also used in SFP connectors, for example to allow connections between two MAC blocks without passing through a PHY (i.e. passive DAC). -This technology, and in particular its evolutions such as RGMII[^rgmii], SGMII[^sgmii], QSGMII[^qsgmii], XGMII[^intel], USXGMII[^xilinx], is widely used as a communication bus over SFP, in addition to IEEE BaseX[^ethernet]. The 2.5 SGMII or HSGMII[^altium] and 10 SGMII or XSGMII[^aquantia] standards are specifics that increase the clock speed of the SGMII standard without redefining it. +MII can be used to connect a MAC to an external PHY using a pluggable connector, or directly to a PHY chip on the same PCB. In the first case it is also used in SFP connectors, for example to allow connections between two MAC blocks without passing through a PHY (i.e. passive DAC). +This technology, and in particular its evolutions such as RGMII[^rgmii], SGMII[^sgmii], QSGMII[^qsgmii], XGMII[^intel], USXGMII[^xilinx], is widely used as a communication bus over SFP, in addition to IEEE BaseX[^ethernet]. The 2.5G-SGMII or HSGMII[^altium] and 10G-SGMII or XSGMII[^aquantia] standards are specifics that increase the clock speed of the SGMII standard without redefining it. RGMII, SGMII, 1000BaseX standards allow a speed of 1 Gbps, 2.5BaseX and HSGMII standards of 2.5 Gbps, the XGMII, XSGMII, USXGMII and 10GBaseT of 10 Gbps. --- -[^xenpak_xfp]: With the advent of higher speeds MSA has developed several new interfaces, such as XENPAK, X2, XPAK, XFP, but the newest standard is the transceiver is called SFP+. Based on the same form factor as SFP, it is smaller than its predecessors and has lower power than XFP. SFP+ has become the most popular socket on 10GE systems because it shares a common physical form factor with legacy SFP modules, allowing higher port density than XFP and the reuse of existing designs for 24 or 48 ports in a 19-inch rack width blade. +[^xenpak_xfp]: With the advent of higher speeds MSA has developed several new interfaces, such as XENPAK, X2, XPAK, XFP, but the newest standard is the transceiver is called SFP+. Based on the same form factor as SFP, it is smaller than its predecessors and has lower power than XFP. SFP+ has become the most popular socket on 10GbE systems because it shares a common physical form factor with legacy SFP modules, allowing higher port density than XFP and the reuse of existing designs for 24 or 48 ports in a 19-inch rack width blade. [^sfpstandard]: *Specification for SFP (Small Formfactor Pluggable) Transceiver* INF-8074 [^sfprate]: *SFP Rate and Application Selection* SFF-8079 [^sfprate2]: *SFP (Small Formfactor Pluggable) Rate and Application Codes* SFF-8089 diff --git a/_sfp_cage/broadcom-57810s.md b/_sfp_cage/broadcom-57810s.md index be8cd40..4c1c027 100644 --- a/_sfp_cage/broadcom-57810s.md +++ b/_sfp_cage/broadcom-57810s.md @@ -17,17 +17,17 @@ layout: default | SGMII | ✅ | | Type | PCI express SFP card | -In order to be able to set 2.5G speed you will have to patch your kernel's bnx2x module. The easiest way to do so is via DKMS which rebuilds only that module: +In order for the card to be able to sync at 2.5G speeds, the kernel's bnx2x module has to be patched. The easiest way to do so is via DKMS which rebuilds that module only: - [DKMS for Linux 6.0.y](https://github.com/darkbasic/bnx2x-2_5g-dkms/tree/6.0.y) -It also adds a module option that can be set to disable SFP TX fault detection, otherwise you won't be able to access your SFP mini-ONT if serial output to SFP is enabled (you can alternatively disable the serial in the SFP module). +It also adds a module option that can be set to disable SFP TX fault detection, otherwise the SFP mini-ONT will not be accessible if serial output to SFP is enabled. Alternatively the serial interface can be disabled on the SFP module. -Unfortunately, despite the patches, you will still have to use UEFI eDiag to unlock 2.5G capabilities: +Unfortunately, despite the patches, UEFI eDiag still has to be used to unlock 2.5G capabilities: - [How-to enable 2.5G capability via UEFI eDiag](https://www.dslreports.com/forum/r32230041-Internet-Bypassing-the-HH3K-up-to-2-5Gbps-using-a-BCM57810S-NIC) -At this point you will be able to use the following command to set the speed to 2.5G: +At this point, use the following command to set the speed to 2.5G: ``` sudo ethtool -s your_network_interface autoneg off speed 2500 duplex full ``` diff --git a/_sfp_cage/macchiatobin.md b/_sfp_cage/macchiatobin.md index 0f7a4f5..a42c603 100644 --- a/_sfp_cage/macchiatobin.md +++ b/_sfp_cage/macchiatobin.md @@ -25,4 +25,4 @@ layout: default <hr> -[^xor]: In the Dual Shot model the RJ45 and the SFP are in XOR, i.e. either one or the other.
\ No newline at end of file +[^xor]: In the Dual Shot model the RJ45 and the SFP are in XOR, i.e. either one or the other is usable, not both at the same time.
\ No newline at end of file diff --git a/_sfp_cage/mikrotik.md b/_sfp_cage/mikrotik.md index f07db80..ec5269e 100644 --- a/_sfp_cage/mikrotik.md +++ b/_sfp_cage/mikrotik.md @@ -21,7 +21,7 @@ layout: default ## Bridge Mode -Bridge mode allows full HSGMII speed without any major issues and seems to work in a mixed mode too. +Bridge mode allows full HSGMII speed without any major issues and seems to work in mixed mode too. Positive results in mixed mode with the following hardware: @@ -36,7 +36,7 @@ In any case, the use of a DAC or MikroTik S+RJ10 is always recommended. Unfortunately the CPU will have a major impact on end performance with resulting downlink speed topping at ~700Mbps. -Note that when using **Huawei MA5671A with right.com.cn firmware** on a Fastweb Italy IPoE connection you may run into some issues since no VLANs are used. The ONT responds to DHCP requests with **a 802.1Q tag for VLAN 0**, which should be properly handled by bridging properly the WAN as well. Other providers that do rely on VLANs such as 835 won't probably need to resort to the this workaround. +Note that when using **Huawei MA5671A with right.com.cn firmware** on a Fastweb Italy IPoE connection you may run into some issues since no VLANs are used. The ONT responds to DHCP requests with **a 802.1Q tag for VLAN 0**, which should be handled by properly bridging the WAN as well. Other providers that do rely on VLANs such as 835 won't probably need to resort to the this workaround. - [2.5Gb Compatibility](https://github.com/Anime4000/RTL960x/blob/main/Docs/2.5Gb.md) - [CRS305 Fastweb Italy SFP Router Mode](https://pastebin.com/zRaidTx4) diff --git a/_sfp_cage/turris.md b/_sfp_cage/turris.md index 273e1e1..0b256cd 100644 --- a/_sfp_cage/turris.md +++ b/_sfp_cage/turris.md @@ -18,7 +18,7 @@ layout: default | Type | Router | Router | -We know form the (Turris Forum)[https://forum.turris.cz/t/ma5671a-sfp-issues-on-turris-os-5-0-3/13443] that work: +As the (Turris Forum)[https://forum.turris.cz/t/ma5671a-sfp-issues-on-turris-os-5-0-3/13443] reports, the following SFPs are known to work: - Huawei MA5671A (Original Firmware) - Nokia Alcatel G-010S-A (2.5 Gbps) - ODI ZTE DFP-34G-2C2 (1 Gbps) @@ -29,7 +29,7 @@ We know form the (Turris Forum)[https://forum.turris.cz/t/ma5671a-sfp-issues-on- - Zisa OP151S[^2min] - Zyxel PMG3000-D20B[^2min] -In ONT that expose the serial port on SFP it must be activated, otherwise the Turris sees a TX Fault. +In ONTs that expose the serial port on SFP it must be activated, otherwise the Turris sees a TX Fault. <hr> diff --git a/_sfp_cage/zyxel.md b/_sfp_cage/zyxel.md index 4f1d611..26c5316 100644 --- a/_sfp_cage/zyxel.md +++ b/_sfp_cage/zyxel.md @@ -35,7 +35,7 @@ layout: default | mtd7 | 04000000 | 00040000 | "ubi2" | | mtd8 | 15a80000 | 00040000 | "zyubi" | -This router supports dual boot, and has two partitions for the firmware, `ubi` and `ubi2` +This router supports dual boot, and has two partitions for the firmware, `ubi` and `ubi2`. To check the current active partition you can use the following command: ```sh @@ -45,9 +45,9 @@ The result will be something like the following: ``` console=ttyS0,115200n1 loglevel=8 earlycon=uart8250,mmio32,0x11002000 rootubi=ubi ``` -If `rootubi=ubi` it means that the active partition is `mtd6` +If `rootubi=ubi`, the active partition is `mtd6`. -If `rootubi=ubi2` it means that the active partition is `mtd7` +If `rootubi=ubi2`, the active partition is `mtd7`. {% include alert.html content="When you flash a new firmware via the web interface the router will automatically write the new firmware in the inactive partition, hence if the firmware upgrade is successfull it will automatically swap the boot partition at next reboot. If everything is ok you don't have to manually swap partitions" alert="Info" icon="svg-info" color="blue" %} @@ -57,21 +57,21 @@ This router has the serial interface pins directly accessible on the board: {% include image.html file="zyxel-ex5601t0\zyxel_ex5601t0_serial.jpg" alt="EX5601T0 Serial interface" caption="EX5601T0 Serial interface" %} -The serial console speed is 115200. +The serial console speed is 115200 bauds. ## ZHAL (Zloader) access The boot process of this router has multiple stages, long story short we have both u-boot and zloader (ZHAL). -When the router is powered-up u-boot is loaded, u-boot will load zloader which is the zyxel proprietary boot manager. +When the router is powered-up u-boot is loaded and it will load zloader, the Zyxel proprietary boot manager. Zloader allows to manually swap boot partitions (`ubi` and `ubi2`), recover the supervisor password and many additional useful (and dangerous) things. By default zloader access is blocked. -### Unlock zloader +### Unlocking zloader -{% include alert.html content="The following procedure is provided as-is, if you damage the device this community is not responsibile of it in any way." alert="Warning" icon="svg-warning" color="red" %} +{% include alert.html content="The following procedure is provided as-is, if you damage the device this community is not responsibile for any damage in any way." alert="Warning" icon="svg-warning" color="red" %} 1. Open the router case and connect your usb-ttl adapter to the router as show in the picture. 2. Open putty or any other serial capable software and configure it to use your COMX port with 115200 speed. @@ -95,13 +95,13 @@ ZHAL> ``` You have successfully unlocked zloader access, this procedure must be done only once. -{% include alert.html content="There is an alternative procedure to achieve the same, you flash the firmware which gives you root access via ssh and you give the same fw_setenv command from point 8. Still you need the usb to serial adapter to access ZHAL" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="There is an alternative procedure to achieve the same end result. Flashing the firmware which gives you root access via ssh and you give the same fw_setenv command from point 8. The USB to serial adapter is still needed to access ZHAL" alert="Info" icon="svg-info" color="blue" %} -### Dump supervisor password -{% include alert.html content="The following procedure is provided as-is, if you damage the device this community is not responsibile of it in any way." alert="Warning" icon="svg-warning" color="red" %} +### Dumping supervisor password +{% include alert.html content="The following procedure is provided as-is, if you damage the device this community is not responsibile for any damage in any way." alert="Warning" icon="svg-warning" color="red" %} -{% include alert.html content="The supervisor user is the most powerful user that can be used from the web interface. The supervisor password is written in the nand and it's encrypted. To dump the password you must first complete the Unlock zloader procedure" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="The supervisor user is the most powerful user that can be used from the web interface. The supervisor password is written in the nand and it's encrypted. To dump the password you must first complete the **Unlocking zloader** procedure" alert="Info" icon="svg-info" color="blue" %} 1. Open the router case and connect your usb to serial adapter. 2. Open putty or any other serial capable software and configure it to use your COMX port with 115200 speed. @@ -117,11 +117,11 @@ atck atsr ``` -### Manually swap the boot partition +### Manually swapping the boot partition -{% include alert.html content="The following procedure is provided as-is, if you damage the device this community is not responsibile of it in any way." alert="Warning" icon="svg-warning" color="red" %} +{% include alert.html content="The following procedure is provided as-is, if you damage the device this community is not responsibile for any damage in any way." alert="Warning" icon="svg-warning" color="red" %} -{% include alert.html content="To swap the boot partition you first have to complete the Unlock zloader procedure" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="To swap the boot partition you first have to complete the **Unlocking zloader** procedure" alert="Info" icon="svg-info" color="blue" %} 1. Open the router case and connect your usb to serial adapter. 2. Open putty or any other serial capable software and configure it to use your COMX port with 115200 speed. @@ -139,14 +139,14 @@ atsr # reboot the router cat /proc/cmdline ``` -## Unlock u-boot access -{% include alert.html content="The following procedure is provided as-is, if you damage the device this community is not responsibile of it in any way." alert="Warning" icon="svg-warning" color="red" %} +## Unlocking u-boot access +{% include alert.html content="The following procedure is provided as-is, if you damage the device this community is not responsibile for any damage in any way." alert="Warning" icon="svg-warning" color="red" %} -{% include alert.html content="To unlock u-boot access you first have to complete the Unlock zloader procedure" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="To unlock u-boot access you first have to complete the **Unlocking zloader** procedure" alert="Info" icon="svg-info" color="blue" %} {% include alert.html content="Having full u-boot access can be very dangerous, with great power comes great responsibility." alert="Warning" icon="svg-warning" color="red" %} -Up to today a strange combination of actions must be completed in a special sequence to access the u-boot command line interface. +Up to today a strange combination of actions must be completed in a special sequence to access the u-boot CLI: 1. Open the router case and connect your usb to serial adapter. 2. Open putty or any other serial capable software and configure it to use your COMX port with 115200 speed. @@ -158,7 +158,7 @@ atgu ``` 6. Apparently that command doesn't do anything and the router will reboot itself. 7. Again for the second time you will read `Hit any key to stop autoboot:`, press Enter again to access ZHAL again. -8. Type again the following command and press enter: +8. Type the following command again and press enter: ``` atgu ``` @@ -167,12 +167,12 @@ atgu MT7986> ``` -## Flashing a firmware or firmware downgrade +## Flashing a firmware or downgrading firmware {% include alert.html content="The following procedure is provided as-is and if anything goes wrong you will likely need to open the router case and attach a USB serial adapter to the router to recover it. This community is not responsible of any damage you cause by following these procedures." alert="Warning" icon="svg-warning" color="red" %} -1. access via ssh or telnet to the router with admin user (admin password is printed on the back of the router). +1. Access the router via ssh or telnet with admin user (admin password is printed on the back of the router). 2. Disable firmware version check and model check by running the following commands. ``` zycli fwidcheck off @@ -180,7 +180,7 @@ zycli modelcheck off ``` 3. You can close the ssh console, do not reboot the router. 4. Open the router web interface and in the maintenance/firmware upgrade section select the "Restore Default Settings After Firmware Upgrade" option. -5. Select choose file to select the firmware file you want to upload and click Upload. +5. Select "Choose file" to select the firmware file you want to upload and click Upload. 6. The router will automatically reboot and should get back up on 192.168.1.1 ## Firmware Version V5.70(ACDZ.0)C0 no-brand @@ -190,12 +190,12 @@ https://github.com/pameruoso/zyxel-ex5601t0 1. Added start-up script to reset and enable root access via ssh. The script reads the device serial number and resets the root password with that. Do not try to reset the root password because that will last until next reboot. -2. the `/bin` path contains `sfp_wan.sh_wind` and `check_sfp_link.sh_wind` scripts which are very similar to the standard `sfp_wan.sh` and `check_sfp_link.sh` scripts. If everything works with the original ones do not swap them. If you want to allow 2.5gbit HSGMII with AFM0003 sfp stick you need to swap and enable the `_wind` scripts. +2. the `/bin` path contains `sfp_wan.sh_wind` and `check_sfp_link.sh_wind` scripts which are very similar to the standard `sfp_wan.sh` and `check_sfp_link.sh` scripts. If everything works with the original ones do not swap them. If you want to allow 2.5gbit HSGMII with the Technicolor AFM0003 SFP stick you need to swap and enable the `_wind` scripts. 3. Additional packages installed: `mtr`, `htop`, `openvpn`, `wireguard`. -{% include alert.html content="The openvpn and wireguard functionalities will not be directly usable in the Zyxel web interface, they are not supported. If you want to setup a vpn with openvpn or wireguard you must know how to use the command-line and do your own setup" alert="Info" icon="svg-info" color="blue" %} +{% include alert.html content="The OpenVPN and Wireguard functionalities will not be directly usable in the Zyxel web interface, they are not supported. If you want to setup a VPN with either protocol you must know how to use the command-line and do your own setup" alert="Info" icon="svg-info" color="blue" %} -{% include alert.html content="Do not try to install packages directly from the internet with opkg update/install, the default repositories are not working and most likely if you edit them you'll end up breaking the partition overlay" alert="Warning" icon="svg-warning" color="red" %} +{% include alert.html content="Do not try to install packages directly from the internet with opkg update/install, the default repositories are not working and, if you edit them, you'll most likely end up breaking the partition overlay" alert="Warning" icon="svg-warning" color="red" %} - [Firmware Version V5.70(ACDZ.0)C0_no-brand_pa_0.1](https://mega.nz/file/OJxBCKqR#z31OiJwY6_iaDtj_yrOTrx1oKnFEdnm4Rh0pi3wRtoE) @@ -208,7 +208,7 @@ You are free to clone the git code and build your own OpenWrt firmware or use th The OpenWrt firmware has the following working features out of the box: - 3 Gbit LAN ports -- Wi-Fi AX6000: 5Ghz 4x4ax + 2.4GHz 4x4ax +- Wi-Fi AX6000: 5Ghz 4x4 ax + 2.4GHz 4x4 ax - Zyxel partitioning for coexistance with Zloader and dual boot - Leds - Reset button @@ -216,11 +216,11 @@ The OpenWrt firmware has the following working features out of the box: - USB port - LAN RJ45 2.5 Gbit port - WAN RJ45 2.5 Gbit port -- WAN SFP port only works after exporting pins 57 and 10 (`gpiobase411`). Too there must be a cable with a link active on the WAN 2.5 Gbe port to make the SFP work. This is due to missing support into the phy-link code of the mediatek ethernet soc. +- WAN SFP port only works after exporting pins 57 and 10 (`gpiobase411`). There must also be a cable with a link active on the WAN 2.5 Gbe port to make the SFP work. This is due to missing support into the phy-link code of the Mediatek ethernet SoC. -To workaround the missing phy-link support some modifications to the DTS are needed. Setting the `gmac1` node to fixed link 2500Base-X gives the possibility to hot-swap the SFP/RJ45 port. +To workaround the missing phy-link support, some modifications to the DTS are needed. Setting the `gmac1` node to fixed link 2500Base-X gives the possibility to hot-swap the SFP/RJ45 port. -The following is a repo that contains a proper example: [EX5601-T0 fixed SFP link git repo](https://github.com/pameruoso/openwrt-ex5601t0-porting/tree/ex5601-t0-fixedlink) you can apply the [patch](https://github.com/openwrt/openwrt/compare/main...pameruoso:openwrt-ex5601t0-porting:ex5601-t0-fixedlink.patch) to the official OpenWrt repo. +The following repo contains a proper example: [EX5601-T0 fixed SFP link git repo](https://github.com/pameruoso/openwrt-ex5601t0-porting/tree/ex5601-t0-fixedlink) you can apply the [patch](https://github.com/openwrt/openwrt/compare/main...pameruoso:openwrt-ex5601t0-porting:ex5601-t0-fixedlink.patch) to the official OpenWrt repo. {% include alert.html content="It is highly recommended to use the OpenWrt official builds instead of this fork because the latter is not updated that often, still if you want to use the SFP you can insert it into a media converter and use the 2.5Gbe RJ45 port with the official build." alert="Info" icon="svg-info" color="blue" %} @@ -237,4 +237,4 @@ Here is a flashable bin file based on OpenWrt 5.15.114 with the mod to swap SFP/ <hr> -[^xor]: the WAN Eth and WAN SFP ports are in XOR, i.e. either one or the other. +[^xor]: the Ethernet and SFP WAN ports are in XOR, i.e. either one or the other is usable, not both at the same time. diff --git a/_tools/ascii-hex.md b/_tools/ascii-hex.md index 6c550bc..a47484c 100644 --- a/_tools/ascii-hex.md +++ b/_tools/ascii-hex.md @@ -2,7 +2,7 @@ title: ASCII and Hex converter has_children: false nav_order: 1 -description: Tool for converter ASCII and Hex +description: Tool for converting between ASCII and Hex layout: default --- @@ -12,7 +12,7 @@ layout: default <input type="text" class="form-control" placeholder="ASCII" name="ascii-to-hex" id="ascii-to-hex" required> <label for="ascii-to-hex">ASCII</label> <div class="invalid-feedback"> - Please provide a valid input text. + Please provide a valid text input. </div> </div> <div class="form-floating mb-3"> @@ -33,7 +33,7 @@ layout: default <input type="text" class="form-control" placeholder="HEX" name="hex-to-ascii" id="hex-to-ascii" required> <label for="hex-to-ascii">HEX</label> <div class="invalid-feedback"> - Please provide a valid input text. + Please provide a valid text input. </div> </div> <div class="form-floating mb-3"> diff --git a/_tools/gpon-omci-vlan-parser.md b/_tools/gpon-omci-vlan-parser.md index 77c5b6b..be1159d 100644 --- a/_tools/gpon-omci-vlan-parser.md +++ b/_tools/gpon-omci-vlan-parser.md @@ -1,7 +1,7 @@ --- title: GPON OMCI VLAN Table parser has_children: false -description: Tool for parse the GPON OMCI VLAN Table (ME 171) +description: Tool for parsing the GPON OMCI VLAN Table (ME 171) layout: default --- @@ -11,7 +11,7 @@ layout: default <input type="text" class="form-control" placeholder="VLAN TABLE in HEX" name="vlan-table-hex" id="vlan-table-hex" required> <label for="vlan-table-hex">VLAN TABLE in HEX</label> <div class="invalid-feedback"> - Please provide a valid input text. + Please provide a valid text input. </div> </div> <div class="mb-3"> diff --git a/_tools/molex-ont.md b/_tools/molex-ont.md index 151de66..4a0db95 100644 --- a/_tools/molex-ont.md +++ b/_tools/molex-ont.md @@ -5,19 +5,18 @@ nav_order: 3 layout: default --- -In some sticks, such as those based on Lantiq chipsets, the serial is exposed in the upper pins of the ONT, in order to read them there are two possibilities: -- the use of an SFP molex ([farnell](https://it.farnell.com/en-IT/molex/74441-0001/connector-sfp-rcpt-20pos-smt/dp/2112385)) to which you solder four wires and remove the other pins, this makes the adapter compatible for a single serial combination -- the use of a board to which the SFP molex is soldered, exposing the main SFP pins +In some sticks, such as those based on Lantiq chipsets, the serial interface is exposed in the upper pins of the ONT, in order to read them there are two possibilities: +- the use of an SFP molex ([farnell](https://it.farnell.com/en-IT/molex/74441-0001/connector-sfp-rcpt-20pos-smt/dp/2112385)) to which four wires are to be soldered and the other pins removed. This makes the adapter compatible with a single serial combination. +- the use of a board to which the SFP molex is soldered, exposing the main SFP pins. -{% include image.html file="ma5671a-root-1.jpg" alt="Example of how the sfp-ttl adapter" caption="Example of how the sfp-ttl adapter" %} +{% include image.html file="ma5671a-root-1.jpg" alt="Example of how the SFP-TTL adapter is to be connected" caption="Example of how the SFP-TTL adapter is to be connected" %} -{% include image.html file="new-root-procedure/board-molex-arduino.jpg" alt="Example of how the sfp-ttl adapter with a custom board" caption="Example of how the sfp-ttl adapter with a custom board" %} +{% include image.html file="new-root-procedure/board-molex-arduino.jpg" alt="Example of how the SFP-TTL adapter is to be used with a custom board" caption="Example of how the SFP-TTL adapter is to be used with a custom board" %} -if you want to make your own board, here are some ideas: +If you want to make your own board, here are some ideas: - -{% include image.html file="board-dupont/top.svg" alt="Example of how the sfp-ttl custom board" caption="Example of how the sfp-ttl custom board" %} -{% include image.html file="board-dupont/bottom.svg" alt="Example of how the sfp-ttl custom board" caption="Example of how the sfp-ttl custom board" %} +{% include image.html file="board-dupont/top.svg" alt="Example of an SFP-TTL custom board" caption="Example of an SFP-TTL custom board" %} +{% include image.html file="board-dupont/bottom.svg" alt="Example of an SFP-TTL custom board" caption="Example of an SFP-TTL custom board" %} the components to be soldered are instead: - 1x MOLEX SFP (like Molex-744410001 [lcsc](https://www.lcsc.com/product-detail/Card-Edge-Connectors_MOLEX-744410001_C277615.html), [farnell](https://it.farnell.com/en-IT/molex/74441-0001/connector-sfp-rcpt-20pos-smt/dp/2112385)) diff --git a/_tools/ttl-uart-adapter.md b/_tools/ttl-uart-adapter.md index 62bfe11..e5598de 100644 --- a/_tools/ttl-uart-adapter.md +++ b/_tools/ttl-uart-adapter.md @@ -5,9 +5,9 @@ nav_order: 2 layout: default --- -A TTL UART adapter makes it possible to connect the stick's serial to a computer via a USB interface, which makes it easy to send commands on modern computers through serial emulation, just like the serial ports of the 1990s. +A TTL UART adapter makes it possible to connect the stick's serial interface to a computer via a USB interface. This makes it easy to send commands on modern computers through serial emulation, just like the serial ports of the 1990s. -Is widely used in the modding of SFPs, and in general of most embedded devices, since a serial port is always present in all of them and is also used to de-brick devices. +These adapters are widely used in the modding of SFPs, and in general of most embedded devices, since a serial port is always present in all of them and is also used to de-brick such devices. TTL adapters can be easily found on Amazon, the most recommended one being: @@ -5,12 +5,12 @@ nav_order: 1 description: Worldwide wiki on how to access, change and edit ONTs --- -Most ONTs run customized firmware which implem vendor and ISP-specific integrations and are locked down in functionality to match service requirements. -ONTs often perform differently depending on the OLT and the settings applied by the ISP; for convenience it is often necessary to switch from an external ONT to an SFP or vice-versa, but most OLTs perform so many checks on the ONT making a simple replacement impossible. +Most ONTs run customized firmware which implement vendor and ISP-specific integrations and are locked down in functionality to match service requirements. +ONTs often perform differently depending on the OLT and the settings applied by the ISP; for convenience it is often desirable to switch from an external ONT to an SFP or vice-versa, but most OLTs perform so many checks on the ONT that a simple replacement is almost impossible. {% include alert.html content="Playing with ONTs can cause your serial number/PLOAM password to be banned and faults to the optics, ONTs and OLTs. Always pay close attention to the calibration of the laser, under no circumstances should the calibration be changed." alert="Warning" icon="svg-warning" color="red" %} -{% include alert.html content="The material and information contained on this website is for general information purposes only. You should not rely upon the material or information on the website as a basis for making any business, legal or any other decisions. Whilst we endeavour to keep the information up to date and correct, hack-gpon.org makes no representations or warranties of any kind, express or implied about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services or related graphics contained on the website for any purpose. Any reliance you place on such material is therefore strictly at your own risk. We do not take responsibility for broken, bricked, unusable or become doorstops. To the extent not prohibited by law, in no circumstances shall hack-gpon.org be liable to you or any other third parties for any loss or damage (including, without limitation, damage for loss of business or loss of profits) arising directly or indirectly from your use of or inability to use, this site or any of the material contained in it." alert="Warning" icon="svg-warning" color="yellow" %} +{% include alert.html content="The material and information contained on this website is for general information purposes only. You should not rely upon the material or information on the website as a basis for making any business, legal or any other decisions. Whilst we endeavour to keep the information up to date and correct, hack-gpon.org makes no representations or warranties of any kind, expressed or implied about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services or related graphics contained on the website for any purpose. Any reliance you place on such material is therefore strictly at your own risk. We do not take responsibility for broken, bricked, unusable devices. To the extent not prohibited by law, in no circumstances shall hack-gpon.org be liable to you or any other third parties for any loss or damage (including, without limitation, damage for loss of business or loss of profits) arising directly or indirectly from your use of or inability to use this site or any of the material contained in it." alert="Warning" icon="svg-warning" color="yellow" %} {% include alert.html content="Certain links in this website will lead to websites which are not under the control of hack-gpon.org. When you visit these, you will leave the hack-gpon.org website. hack-gpon.org has no control over and accepts no liability in respect of materials, products or services available on any website which is not under the control of hack-gpon.org." alert="Warning" icon="svg-warning" color="red" %} @@ -18,7 +18,7 @@ ONTs often perform differently depending on the OLT and the settings applied by {% include alert.html content="You can also help us with the content of this site, on each page you will find a button to edit on GitHub." alert="Tip" icon="svg-info" color="green" %} -This wiki contains links, codes, tutorials on how to access, edit and change ONTs. +This wiki contains links, codes, tutorials on how to access, edit and modify ONTs. Are you ready? <span class="fs-8"> diff --git a/privacy-policy.md b/privacy-policy.md index d35c873..22468e5 100644 --- a/privacy-policy.md +++ b/privacy-policy.md @@ -43,7 +43,7 @@ hack-gpon.org follows a standard procedure of using log files. These files log v # Advertising Partners Privacy Policies -There no exists Advertising Partners +There are no Advertising Partners # Third Party Privacy Policies diff --git a/quick-start.md b/quick-start.md index 3ef8695..5ddb275 100644 --- a/quick-start.md +++ b/quick-start.md @@ -11,11 +11,11 @@ The information on this page is taken from the GPON/EPON standard and informatio # Fiber Optic Connectors -Numerous connectors, both standard and proprietary, are used in the field of telecommunication equipment, data lines, television and cable, and other industrial fields. +Numerous connectors, both standard and proprietary, are used in the field of telecommunications equipment, data lines, television and cable, and other industrial fields. -{% include image.html file="quick-start/optic-fiber-connectors.jpg" alt="Some of the common connector" caption="Some of the common connector" %} +{% include image.html file="quick-start/optic-fiber-connectors.jpg" alt="Some of the most common connectors" caption="Some of the most common connectors" %} -The main connector are: +The main connectors are: - Bionic Connector - Standard Connector (SC) - Ferrule Core Connector (FC) @@ -34,17 +34,17 @@ The main connector are: ## Polishing of Fiber Optic Connectors -APC and UPC are different polishing of fiber optic ferrules, and are types of fiber patch cable connectors. Which determine the quality of the fiber optic lightwave transmission, mostly performed in optical return loss and insertion loss[^wolon]. +APC and UPC use different polishing methodologies of fiber optic ferrules, and they define types of fiber patch cable connectors. These determine the quality of the fiber optic lightwave transmission, mostly calculated in optical return loss and insertion loss[^wolon]. -{% include image.html file="quick-start/apc-upc.jpg" alt="Picture of APC and UPC" caption="Picture of APC and UPC" %} +{% include image.html file="quick-start/apc-upc.jpg" alt="Picture of APC and UPC connections" caption="Picture of APC and UPC" %} -Angled physical connectors are used in the ONT side to reduce back reflections. In case RF signal (1550nm) is introduced there will be two signals traveling in the downstream direction (1490nm + 1550nm), since RF systems are highly sensitive to reflections then the APC connectors reduce the return loss value[^zyxel]. +Angled physical connectors are used on the ONT's side to reduce back-reflections. In case RF signals (1550nm) are introduced, there will be two signals traveling in the downstream direction (1490nm + 1550nm); as RF systems are highly sensitive to reflections the APC connectors reduce the return loss value[^zyxel] and are preferred over UPC. -Next generation systems are planned to operate in over 1500 nm wavelengths, converting APC connectors on the ONT side into planning to the future[^zyxel]. +Next generation systems are planned to operate in wavelengths over 1500nm, making APC connectors on the ONT's side something that will be more commonplace in the future[^zyxel]. # PON Networks[^huawei] -- PON is a kind of passive optical network featuring one-to-multiple-point architecture; +- PON is a kind of passive optical network featuring point-to-multiple-point architecture; - PON is short for Passive Optical Network; - PON consists of Optical Line Terminal (OLT), Optical Network Unit (ONU) and Passive Optical Splitter. @@ -53,20 +53,20 @@ Next generation systems are planned to operate in over 1500 nm wavelengths, conv - GPON: Gigabit-capable Passive Optical Networks; - XG(S)-GPON: 10 Gigabit-capable Passive Optical Networks[^standardxgpon]; -EPON and GPON are complementary and compete against each other in some aspects. So in the following contents, we'd like to make clear the EPON and GPON comparison [^fs]. +EPON and GPON are complementary and compete against each other under some aspects. So in the following contents, we'd like to render the EPON and GPON comparison more clear[^fs]. ## Why GPON? - GPON is defined by ITU, International Telecomunication Union[^standardgpon]. -- GPON supports Triple - play service, providing competitive all-service solution[^huawei]. +- GPON supports Triple-play services, providing a competitive full-service solution[^huawei]. - GPON supports high-bandwidth transmission to break down the bandwidth bottleneck of the access over twisted pair cables, so as to satisfy the requirements of high-bandwidth services, such as IPTV and live TV broadcasts[^huawei]. -- GPON supports the long-reach (up to 20 km) service coverage to overcome the obstacle of the access technology over twisted pair cables and reduce the network nodes[^huawei]. +- GPON supports long-reach (up to 20 km) service coverage to overcome the obstacle of the access technology over twisted pair cables and reduce the network nodes[^huawei]. - With complete standards and high technical requirements, GPON supports integrated services in a good way[^huawei]. - GPON is the choice of large carriers in the international market[^huawei]. -- GPON is high broadband efficiency, like 92%[^huawei]. -- GPON has integrated QoS handling that makes it better than EPON, because EPON QoS is high cost relative to GPON[^fs]. +- GPON is high broadband efficiency, around 92%[^huawei]. +- GPON has integrated QoS handling that makes it better than EPON, because QoS on EPON is higher cost relative to GPON[^fs]. - GPON supports splitting up to 1:128, XG(S)-PON up to 1:256[^fs],[^standardxgpon]. -- Security: the data transmitted down to ONUs/ONTs are encrypted based on the AES mechanism[^telecom]. +- Security: the data transmitted to ONUs/ONTs is encrypted using the AES mechanism[^telecom]. ## Why EPON? @@ -75,20 +75,20 @@ EPON and GPON are complementary and compete against each other in some aspects. - In EPON, both downstream and upstream line rates are 1.25 Gbps, but due to the 8B/10B line encoding, the bit rate for data transmission is 1 Gbps[^medium]. - The use of EPON allows carriers to eliminate complex and expensive ATM and Sonet elements and to simplify their networks, thereby lowering costs to subscribers. Currently, GPON equipment costs are approximately 1.5 to 2 times higher than an EPON[^medium],[^fs]. -## Layer +## Layering model Layering model and the associated management services are all mapped over Ethernet (directly or via IP). -- GPON support the encapsulation of other protocols besides Ethernet, such as ATM[^cisco],[^huawei],[^fs]. -- XG(S)-PON remove the support of ATM encapsulation[^telecom]. -- GPON use two layers of encapsulation are required. First, TDM and Ethernet frames are wrapped into GTC Encapsulation Method (GEM) frames, which have a GFP-like format (derived from Generic Frame Procedure ITU G.7401). Secondly, ATM and GEM frames are both encapsulated into GTC frames that are finally transported over the PON[^medium],[^fs]. -- The main purpose of the GEM frame is to provide a frame-oriented service, as an alternative to ATM, in order to efficiently accommodate Ethernet and TDM frames. With GEM, all traffic is mapped across the GPON network using a variant of SONET/SDH GFP. GEM supports a native transport of voice, video, and data without an added ATM or IP encapsulation layer. That's why GPON supports downstream rates as high as 2.5 Gbps and upstream rates from 155 Mbps to 2.5 Gbps. It is much faster than EPON[^medium]. +- GPON supports the encapsulation of other protocols besides Ethernet, such as ATM[^cisco],[^huawei],[^fs]. +- XG(S)-PON removes the support of ATM encapsulation[^telecom]. +- GPON uses two layers of encapsulation. First, TDM and Ethernet frames are wrapped into GTC Encapsulation Method (GEM) frames, which have a GFP-like format (derived from Generic Frame Procedure ITU G.7401). Secondly, ATM and GEM frames are both encapsulated into GTC frames that are finally transported over the PON[^medium],[^fs]. +- The main purpose of GEM frames is to provide a frame-oriented service, as an alternative to ATM, in order to efficiently accommodate Ethernet and TDM frames. With GEM, all traffic is mapped across the GPON network using a variant of SONET/SDH GFP. GEM supports a native transport of voice, video, and data without an added ATM or IP encapsulation layer. That's why GPON supports downstream rates as high as 2.5 Gbps and upstream rates from 155 Mbps to 2.5 Gbps. It is much faster than EPON[^medium]. - However, EPON clearly offers a much simpler and more straightforward solution than GPON. The support of ATM and the double encapsulation of GPON serve no real benefit over a pure Ethernet transport scheme[^medium]. -- In EPON, Ethernet frames are carried in their native format on the PON, which greatly simplifies the layering model and the associated management. EPON employs a single layer that uses IP (Internet Protocol) to carry data, voice, and video[^medium],[^fs]. +- In EPON, Ethernet frames are carried in their native format over the PON, which greatly simplifies the layering model and the associated management. EPON employs a single layer that uses IP (Internet Protocol) to carry data, voice, and video[^medium],[^fs]. -{% include image.html file="epon_gpon.jpg" alt="EPON vs GPON Layer" caption="EPON vs GPON Layer" %} +{% include image.html file="epon_gpon.jpg" alt="EPON vs GPON Layers" caption="EPON vs GPON Layer" %} -## Comunication between ONT and OLT[^fs] +## Comunication between ONTs and OLT[^fs] - EPON utilizes IEEE 802.3ah OAM messages for provisioning, fault isolation and performance monitoring in conjunction with SNMP (Simple Network Management Protocol) sets and gets through IETF (Internet Engineering Task Force) and MIBs (Management Information Bases). Additional control messages are MPCP GATEs/REPORTs for bandwidth granting. - In GPON there are three different types of control messages: OMCI (ONT Management and Control Interface), OAM, and PLOAM (Physical Layer OAM). Their roles are shown in the table below. @@ -102,11 +102,11 @@ Layering model and the associated management services are all mapped over Ethern ## Wavelength[^huaweimultiplexing] -PON adopts Wavelength Division Multiplexing (WDM) technology, facilitating bi-direction communication over a single fiber. +PON adopts Wavelength Division Multiplexing (WDM) technology, facilitating bidirectional communication over a single fiber. -To separate upstream/downstream signals of multiple users over a single fibre, PON adopts two multiplexing mechanism: +To separate upstream/downstream signals of multiple users over a single fiber, PON adopts two multiplexing mechanism: - In downstream direction, data packets are transmitted in a broadcast manner; -- In upstream direction, data packets are transmitted in a TDMA manner. +- In upstream direction, data packets are transmitted usisng TDMA. {% include image.html file="quick-start/optical-fiber-transmission-windows.svg" alt="Fiber Optic Operation Wavelength and Window" caption="Fiber Optic Operation Wavelength and Window" %} |