↓Skip to main content

Huawei G-010S-P SFP Stick on Pepephone

·6 mins

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_version is the hardware version. The OMCI field is limited to 14 bytes, so ZTEGLBFIB6S1.0.0 (17 chars) gets truncated to ZTEGLBFIB6S1.0.
  • mib_customized=1 enables the custom MIB generator that applies the vendor_id, equipment_id, and ont_version to the OMCI managed entities.
  • uci delete gpon.onu.mib_file is 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 #

  1. Wrong OMCI vendor_id: The default MIB files on the G-010S-P set vendor_id to SPGA or HWTC. It must be ZTEG for the F6640P.

  2. Wrong equipment_id: Default is SPGMAC or MA5671A. Must match the Livebox model identifier (ZTEGFIBRA6S).

  3. Wrong hardware version (ont_version): Default is CC4.A. Must match the Livebox hardware version.

  4. Wrong software version: The image0_version u-boot variable defaults to the SFP stick’s own firmware version (6BA1896SPE2C05). Must match the Livebox bootloader version.

  5. MIB file priority trap: Even with mib_customized=1, the init script checks for an existing gpon.onu.mib_file UCI setting before checking the mib_customized flag. If mib_file is set to a non-custom.ini path, the custom MIB generation is bypassed entirely. Fix: uci delete gpon.onu.mib_file.

  6. 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