Huawei G-010S-P SFP Stick on Pepephone
This guide documents how to replace the Livebox 6s ONT (ZTE ZXHN F6640P) provided by Pepephone (MasMovil group, running on Orange Spain’s GPON infrastructure) with a Huawei G-010S-P SFP stick running community firmware. This lets you use your own router directly with an SFP port, eliminating the ISP’s router entirely.
Why Replace the ONT? #
The Livebox 6s is a combined ONT + router. If you want to use your own router (e.g., MikroTik, pfSense, OPNsense), you either need to put the Livebox in bridge mode or replace its ONT function entirely with an SFP stick. The SFP stick approach is cleaner — your router handles everything, and you don’t need the Livebox powered on.
Prerequisites #
- A Huawei G-010S-P SFP stick with community firmware (Lantiq Falcon chipset, OpenWrt-based). The specific unit used in this guide was purchased on AliExpress (Color: MA5671A).
- SSH/serial access to the SFP stick (default IP is usually
192.168.1.10) - A router or media converter with an SFP port
- Access to the Livebox 6s admin interface (usually at
192.168.1.1) to gather identity values
Step 1: Gather Identity Values from the Livebox 6s #
The OLT (Orange’s equipment at the central office) authenticates ONTs by checking multiple identity fields. You need to clone all of them from the original Livebox 6s onto the SFP stick.
Navigate to the status/info page of the Livebox 6s admin interface. You need:
| Field in Livebox UI | Example Value | Used For |
|---|---|---|
| Número de serie (GPON SN) | ZTEGXXXXXXXX |
GPON Serial Number |
| Contraseña de ONT | XXXXXXXXXX |
PLOAM Password |
| Modelo | ZTEGFIBRA6S |
OMCI Equipment ID |
| Versión de hardware | ZTEGLBFIB6S1.0.0 |
OMCI Hardware Version |
| Versión de bootloader | V11.0.10P10N10 |
OMCI Software Version |
Step 2: Configure the SFP Stick #
SSH into the SFP stick and run the following commands.
Set GPON identity (UCI) #
# GPON serial number
uci set gpon.onu.nSerial=ZTEGXXXXXXXX
# PLOAM password (plain text)
uci set gpon.onu.ploam_password=XXXXXXXXXX
Set OMCI identity fields (UCI) #
These fields are reported to the OLT during the OMCI configuration phase. If they don’t match what the OLT expects for the registered serial number, the OLT will send a DACT (Deactivate) message and kick the ONU off the network.
uci set gpon.onu.vendor_id=ZTEG
uci set gpon.onu.equipment_id=ZTEGFIBRA6S
uci set gpon.onu.ont_version=ZTEGLBFIB6S1.0
uci set gpon.onu.mib_customized=1
uci delete gpon.onu.mib_file
uci commit gpon
Important notes:
ont_versionis the hardware version. The OMCI field is limited to 14 bytes, soZTEGLBFIB6S1.0.0(17 chars) gets truncated toZTEGLBFIB6S1.0.mib_customized=1enables the custom MIB generator that applies the vendor_id, equipment_id, and ont_version to the OMCI managed entities.uci delete gpon.onu.mib_fileis critical — without this, the init script uses the previously configured MIB file (data_1g_8q_us1280_ds512.ini) and skips custom MIB generation entirely, ignoring your identity settings.
Set the software version (u-boot environment) #
The OLT checks the software version reported via OMCI Managed Entity 7 (Software Image). This value comes from the image0_version u-boot variable and must match the Livebox’s bootloader version. This is the only field that requires fw_setenv — it has no UCI equivalent.
fw_setenv image0_version V11.0.10P10N10
Reboot #
reboot
Step 3: Verify the Configuration #
After reboot, SSH back in and verify everything is correct.
Check PLOAM state #
onu ploamsg
A successful registration shows curr_state=5 (Operational / O5). If you see this, the SFP stick is authenticated and connected.
Check OMCI identity (ONU-G — ME 256) #
omci_pipe.sh meg 256 0
Expected: Vendor id = ZTEG, Version = ZTEGLBFIB6S1.0
Check OMCI equipment ID (ONU2-G — ME 257) #
omci_pipe.sh meg 257 0
Expected: Equipment id = ZTEGFIBRA6S
Check software version (Software Image — ME 7) #
omci_pipe.sh meg 7 0
Expected: Version = V11.0.10P10N10
Troubleshooting #
The DACT Loop #
The most common failure mode is a PLOAM deactivation loop. The symptoms look like this when monitoring with onu ploamsg:
curr_state=3 previous_state=2 # Discovery phase, onu_id=255
curr_state=4 previous_state=3 # Password/OMCI exchange, onu_id assigned
curr_state=2 previous_state=5 # DACT received! Back to ranging
curr_state=3 previous_state=2 # Rediscovery... cycle repeats every ~30s
This means the OLT recognizes the serial number, assigns an ONU ID, starts OMCI configuration, then rejects the ONU.
PLOAM State Reference #
On the G-010S-P firmware, the PLOAM states map as follows:
| State | GPON State | Meaning |
|---|---|---|
| 2 | O4 — Ranging | ONU is being ranged by OLT |
| 3 | O3 — Serial Number | ONU is in discovery, waiting for serial number grant |
| 4 | O6 — Popup | Password exchange / OMCI configuration beginning |
| 5 | O5 — Operation | Fully registered and operational |
Diagnostic Commands #
| Command | What it shows |
|---|---|
onu ploamsg |
Current PLOAM state machine state |
onu gtcsg |
GTC status: onu_id, FEC, downstream state |
onu gtcag |
GTC alarms: ploam_dact, loss_of_allocation, etc. |
onu gtccg |
GTC config: PLOAM password, timeouts |
onu gtcsng |
GPON serial number |
omci_pipe.sh meg 256 0 |
OMCI ONU-G: vendor_id, hardware version |
omci_pipe.sh meg 257 0 |
OMCI ONU2-G: equipment_id |
omci_pipe.sh meg 7 0 |
OMCI Software Image: firmware version |
fw_printenv |
All u-boot environment variables |
uci show gpon |
GPON UCI configuration |
Common Causes of DACT #
-
Wrong OMCI vendor_id: The default MIB files on the G-010S-P set vendor_id to
SPGAorHWTC. It must beZTEGfor the F6640P. -
Wrong equipment_id: Default is
SPGMACorMA5671A. Must match the Livebox model identifier (ZTEGFIBRA6S). -
Wrong hardware version (ont_version): Default is
CC4.A. Must match the Livebox hardware version. -
Wrong software version: The
image0_versionu-boot variable defaults to the SFP stick’s own firmware version (6BA1896SPE2C05). Must match the Livebox bootloader version. -
MIB file priority trap: Even with
mib_customized=1, the init script checks for an existinggpon.onu.mib_fileUCI setting before checking themib_customizedflag. Ifmib_fileis set to a non-custom.ini path, the custom MIB generation is bypassed entirely. Fix:uci delete gpon.onu.mib_file. -
PLOAM password mismatch: Verify the password in the Livebox admin interface matches what’s configured on the SFP stick.
Checking the GTC Alarm Counters #
Run onu gtcag and look for these key fields:
ploam_dact=1— OLT sent a Deactivate message. This confirms active rejection (not a signal/timing issue).ploam_dis=1— OLT sent a Disable message. Different from DACT; usually means the ONU is administratively disabled on the OLT side.loss_of_allocation=256— Toggling on/off is normal during the discovery phase when no bandwidth map is assigned.ploam_mis=1— PLOAM mismatch. Could indicate serial number issues.
Optical Signal Issues #
If the ONU never reaches state 3 (stays in state 1 or 2 without progressing), the issue is likely physical:
- Check fiber connection
- Verify Rx power is within range (-8 to -28 dBm)
- Ensure the SFP stick is properly seated in the SFP port
- Check that the original Livebox is physically disconnected from the fiber — two devices with the same serial on the same PON tree will cause conflicts
Complete Command Reference #
Here’s the full setup in one block for easy copy-paste (replace values with your own):
# GPON identity
uci set gpon.onu.nSerial=ZTEGXXXXXXXX
uci set gpon.onu.ploam_password=XXXXXXXXXX
# OMCI identity fields
uci set gpon.onu.vendor_id=ZTEG
uci set gpon.onu.equipment_id=ZTEGFIBRA6S
uci set gpon.onu.ont_version=ZTEGLBFIB6S1.0
# Enable custom MIB generation and clear any existing MIB file path
uci set gpon.onu.mib_customized=1
uci delete gpon.onu.mib_file
uci commit gpon
# Software version (requires fw_setenv, no UCI equivalent)
fw_setenv image0_version V11.0.10P10N10
# Apply changes
reboot
After reboot, verify with:
# Should show curr_state=5 (operational)
onu ploamsg
# Should show ZTEG / ZTEGLBFIB6S1.0
omci_pipe.sh meg 256 0
# Should show ZTEGFIBRA6S
omci_pipe.sh meg 257 0
# Should show V11.0.10P10N10
omci_pipe.sh meg 7 0