Tools: ☠️ Cómo conectar tu router directo a la fibra de Entel Chile sin su módem (SFP GPON Hack) (2026)

Tools: ☠️ Cómo conectar tu router directo a la fibra de Entel Chile sin su módem (SFP GPON Hack) (2026)

El problema: vendor lock-in de ISP

El hardware

Acceso por UART: el método principal

Mapa de particiones MTD

El proceso: directo al grano

Verificar que funciona

Trade-offs: cuándo NO hacer esto

Glosario

💌 Agradecimientos Especiales

Recursos y créditos Entel Chile me dijo que el bridge mode no existía para clientes empresa. Una semana después, mi router Ubiquiti estaba conectado directo a la fibra sin ningún equipo de Entel de por medio. Este post explica cómo: un transceptor SFP GPON (Ubiquiti UF-Instant), acceso por UART, flash directo via U-Boot y configuración de spoofing GPON para que la OLT de Entel acepte el stick como si fuera el ONT Huawei original. 💡 Versión resumida. Este post cubre el proceso sin los intentos fallidos ni los callejones sin salida. La versión extendida — con el kernel panic del MC220L, los tres intentos de firmware y la recuperación por TFTP — está en Buy Me a Coffee. ⚠️ Disclaimer legal: Este contenido es exclusivamente educativo. Modificar firmware de dispositivos de telecomunicaciones puede vulnerar los términos de tu contrato con el ISP y potencialmente regulaciones locales. Consulta la normativa vigente en tu país antes de replicar este procedimiento. Los ISP instalan su propio ONT y se niegan a configurarlo en bridge mode, forzándote a usar su router para PPPoE. Si quieres usar el tuyo, las opciones son doble NAT o bypassar completamente el hardware del ISP. Quería dual WAN en mi Ubiquiti UniFi Gateway Fiber con IP estática de Entel. Sin doble NAT. Sin el módem de Entel. Fuente: stich86/UF-Instant-Mod Todo el proceso de flash se ejecuta desde aquí. El UF-Instant expone pads UART en la PCB (TX, RX, GND). Adaptador 3.3V, configuración 115200 8N1: Al encender el stick con UART conectado, tienes el output completo de U-Boot. Presiona cualquier tecla en los primeros segundos para interrumpir el boot y quedar en el prompt 9601C#, desde donde puedes flashear particiones directamente. El UF-Instant usa un sistema de arranque dual. Las particiones relevantes: En el host (antes de conectar UART): descargar el rootfs MOD y el kernel de Ubiquiti v4.4.2 directamente del repo stich86/UF-Instant-Mod y ponerlos en el directorio del servidor TFTP. El binario squashfs de stich86 se flashea tal como viene — no requiere reprocesado. ¿Cuándo se necesita Docker? Solo si modificas el rootfs (extraer, cambiar archivos y reempaquetar). En macOS, mksquashfs no puede recrear device nodes sin parámetros explícitos. Para el flujo estándar con el binario de stich86, no hace falta. Via UART, en U-Boot (9601C#): inicializar flash, clonar el kernel de imagen 0 a imagen 1, y flashear el rootfs MOD: Via UART, desde Linux (tras arrancar imagen 1, credenciales admin/admin — algunos builds usan ubnt/ubnt): configurar la identidad GPON con los datos del ONT Huawei original y neutralizar el bootlimit: Con el stick en O5: en el router Ubiquiti configurar el puerto SFP+ con VLAN 3610 y PPPoE con las credenciales de Entel (20011279169002 / D4310T — probadas el 2026-04-23, pueden cambiar). 🎥 La despedida oficial del módem de Entel Los intentos fallidos, los errores de kernel panic y el diagnóstico del MC220L están documentados en detalle en ☕ Buy Me a Coffee A una chica que, sin saberlo, me empujó a seguir creando y programando en mi tiempo libre. A quien alguna vez fue mi chispa: para “YLP”, con gratitud… y con cicatrices que también enseñan. Si tienes preguntas o tu ISP usa una OLT diferente, déjalas en los comentarios. Y si ya lo has hecho con otro proveedor, cuéntame qué parámetros cambiaron. Para quien tampoco aceptó el "no se puede" como respuesta final: este post existe porque me dijeron que no lo lograría. Y porque la fibra llega al router sin pasar por ningún equipo que no sea el mío. Nadie decide eso por mí. 🖕 Fuck you, Entel. Tus devs de pacotilla no me dicen qué conectar en mi propia red. Y tú, Movistar — estate quieta. Sé que usas ZTE y lo tengo en el radar. Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Command

Copy

# macOS screen /dev/tty.usbserial-XXXXX 115200 # Linux screen /dev/ttyUSB0 115200 # Con minicom minicom -D /dev/ttyUSB0 -b 115200 -8 --noinit # macOS screen /dev/tty.usbserial-XXXXX 115200 # Linux screen /dev/ttyUSB0 115200 # Con minicom minicom -D /dev/ttyUSB0 -b 115200 -8 --noinit # macOS screen /dev/tty.usbserial-XXXXX 115200 # Linux screen /dev/ttyUSB0 115200 # Con minicom minicom -D /dev/ttyUSB0 -b 115200 -8 --noinit mtd4 → kernel0 / k0 (3MB) — Kernel imagen 0 (Ubiquiti original — respaldo) mtd5 → rootfs0 / r0 (6MB) — Rootfs imagen 0 (firmware Ubiquiti original) mtd6 → kernel1 / k1 (3MB) — Kernel imagen 1 — aquí va el clon mtd7 → rootfs1 / r1 (4.5MB) — Rootfs imagen 1 — aquí va el MOD stich86 mtd8 → europa.data — Calibración del láser ⚠️ JAMÁS TOCAR mtd4 → kernel0 / k0 (3MB) — Kernel imagen 0 (Ubiquiti original — respaldo) mtd5 → rootfs0 / r0 (6MB) — Rootfs imagen 0 (firmware Ubiquiti original) mtd6 → kernel1 / k1 (3MB) — Kernel imagen 1 — aquí va el clon mtd7 → rootfs1 / r1 (4.5MB) — Rootfs imagen 1 — aquí va el MOD stich86 mtd8 → europa.data — Calibración del láser ⚠️ JAMÁS TOCAR mtd4 → kernel0 / k0 (3MB) — Kernel imagen 0 (Ubiquiti original — respaldo) mtd5 → rootfs0 / r0 (6MB) — Rootfs imagen 0 (firmware Ubiquiti original) mtd6 → kernel1 / k1 (3MB) — Kernel imagen 1 — aquí va el clon mtd7 → rootfs1 / r1 (4.5MB) — Rootfs imagen 1 — aquí va el MOD stich86 mtd8 → europa.data — Calibración del láser ⚠️ JAMÁS TOCAR # Imagen activa nv getenv sw_active sw_commit # Cambiar a imagen 1 setenv sw_active 1 && setenv sw_commit 1 && saveenv && boot # Volver a imagen 0 (firmware original Ubiquiti) setenv sw_active 0 && setenv sw_commit 0 && saveenv && boot # Imagen activa nv getenv sw_active sw_commit # Cambiar a imagen 1 setenv sw_active 1 && setenv sw_commit 1 && saveenv && boot # Volver a imagen 0 (firmware original Ubiquiti) setenv sw_active 0 && setenv sw_commit 0 && saveenv && boot # Imagen activa nv getenv sw_active sw_commit # Cambiar a imagen 1 setenv sw_active 1 && setenv sw_commit 1 && saveenv && boot # Volver a imagen 0 (firmware original Ubiquiti) setenv sw_active 0 && setenv sw_commit 0 && saveenv && boot sf probe 0 # Clonar kernel Ubiquiti v4.4.2 de imagen 0 → imagen 1 sf read 0x81000000 0x50000 0x300000 # leer kernel0 a RAM sf erase 0x4e0000 0x300000 # borrar kernel1 (mtd6) sf write 0x81000000 0x4e0000 0x300000 # escribir en mtd6 # Flashear rootfs MOD (stich86) via TFTP tftpboot 0x81000000 [IP_HOST]:[nombre_rootfs_stich86] sf erase 0x7e0000 0x480000 # borrar rootfs1 (mtd7) sf write 0x81000000 0x7e0000 ${filesize} # Activar imagen 1 y arrancar setenv sw_active 1 setenv sw_commit 1 saveenv boot sf probe 0 # Clonar kernel Ubiquiti v4.4.2 de imagen 0 → imagen 1 sf read 0x81000000 0x50000 0x300000 # leer kernel0 a RAM sf erase 0x4e0000 0x300000 # borrar kernel1 (mtd6) sf write 0x81000000 0x4e0000 0x300000 # escribir en mtd6 # Flashear rootfs MOD (stich86) via TFTP tftpboot 0x81000000 [IP_HOST]:[nombre_rootfs_stich86] sf erase 0x7e0000 0x480000 # borrar rootfs1 (mtd7) sf write 0x81000000 0x7e0000 ${filesize} # Activar imagen 1 y arrancar setenv sw_active 1 setenv sw_commit 1 saveenv boot sf probe 0 # Clonar kernel Ubiquiti v4.4.2 de imagen 0 → imagen 1 sf read 0x81000000 0x50000 0x300000 # leer kernel0 a RAM sf erase 0x4e0000 0x300000 # borrar kernel1 (mtd6) sf write 0x81000000 0x4e0000 0x300000 # escribir en mtd6 # Flashear rootfs MOD (stich86) via TFTP tftpboot 0x81000000 [IP_HOST]:[nombre_rootfs_stich86] sf erase 0x7e0000 0x480000 # borrar rootfs1 (mtd7) sf write 0x81000000 0x7e0000 ${filesize} # Activar imagen 1 y arrancar setenv sw_active 1 setenv sw_commit 1 saveenv boot # Identidad GPON — datos del ONT Huawei de tu instalación flash set GPON_SN HWTC[XXXXXXXX] # SN del ONT: HWTC + 8 hex chars flash set PON_VENDOR_ID HWTC flash set OMCI_OLT_MODE 1 flash set OMCI_FAKE_OK 1 flash set OMCI_SW_VER1 [VERSION_SW_ONT] # Versión software del ONT flash set OMCI_SW_VER2 [VERSION_SW_ONT] flash set HW_HWVER [VERSION_HW_ONT] # Versión hardware del ONT flash set GPON_ONU_MODEL [MODELO_ONT] # Modelo del ONT flash set ELAN_MAC_ADDR [MAC_SIN_PUNTOS] # MAC del ONT sin dos puntos # Desactivar factory reset automático (bootlimit=10 por defecto) nv setenv bootcount 0 nv setenv bootlimit 0 reboot # Identidad GPON — datos del ONT Huawei de tu instalación flash set GPON_SN HWTC[XXXXXXXX] # SN del ONT: HWTC + 8 hex chars flash set PON_VENDOR_ID HWTC flash set OMCI_OLT_MODE 1 flash set OMCI_FAKE_OK 1 flash set OMCI_SW_VER1 [VERSION_SW_ONT] # Versión software del ONT flash set OMCI_SW_VER2 [VERSION_SW_ONT] flash set HW_HWVER [VERSION_HW_ONT] # Versión hardware del ONT flash set GPON_ONU_MODEL [MODELO_ONT] # Modelo del ONT flash set ELAN_MAC_ADDR [MAC_SIN_PUNTOS] # MAC del ONT sin dos puntos # Desactivar factory reset automático (bootlimit=10 por defecto) nv setenv bootcount 0 nv setenv bootlimit 0 reboot # Identidad GPON — datos del ONT Huawei de tu instalación flash set GPON_SN HWTC[XXXXXXXX] # SN del ONT: HWTC + 8 hex chars flash set PON_VENDOR_ID HWTC flash set OMCI_OLT_MODE 1 flash set OMCI_FAKE_OK 1 flash set OMCI_SW_VER1 [VERSION_SW_ONT] # Versión software del ONT flash set OMCI_SW_VER2 [VERSION_SW_ONT] flash set HW_HWVER [VERSION_HW_ONT] # Versión hardware del ONT flash set GPON_ONU_MODEL [MODELO_ONT] # Modelo del ONT flash set ELAN_MAC_ADDR [MAC_SIN_PUNTOS] # MAC del ONT sin dos puntos # Desactivar factory reset automático (bootlimit=10 por defecto) nv setenv bootcount 0 nv setenv bootlimit 0 reboot # O5 = Operation State = la OLT aceptó el stick como ONT válido diag gpon get onu-state # ONU state: Operation State(O5) # Vendor OLT correcto omcicli mib get 131 # OltVendorId: 0x48575443 ← HWTC (Huawei/Entel Chile) ✓ # VLANs provisionadas por la OLT de Entel omcicli mib get 84 # VLAN 3610 → Internet | 3620 → TV | 3630 → VoIP | 3680 → TR-069 # O5 = Operation State = la OLT aceptó el stick como ONT válido diag gpon get onu-state # ONU state: Operation State(O5) # Vendor OLT correcto omcicli mib get 131 # OltVendorId: 0x48575443 ← HWTC (Huawei/Entel Chile) ✓ # VLANs provisionadas por la OLT de Entel omcicli mib get 84 # VLAN 3610 → Internet | 3620 → TV | 3630 → VoIP | 3680 → TR-069 # O5 = Operation State = la OLT aceptó el stick como ONT válido diag gpon get onu-state # ONU state: Operation State(O5) # Vendor OLT correcto omcicli mib get 131 # OltVendorId: 0x48575443 ← HWTC (Huawei/Entel Chile) ✓ # VLANs provisionadas por la OLT de Entel omcicli mib get 84 # VLAN 3610 → Internet | 3620 → TV | 3630 → VoIP | 3680 → TR-069 - Sin experiencia con UART/U-Boot: El proceso requiere comandos en el bootloader. Un error de dirección en sf write puede brick el stick (recuperable via TFTP si U-Boot sigue respondiendo). - Con un media converter (TP-Link MC220L): El driver europa_drv hace kernel panic con ese hardware como intermediario. El UF-Instant debe ir directamente al slot SFP+ del router. - Si tu ISP valida más que el serial GPON: Algunos ISPs verifican también el PLOAM password, detalles OMCI, o tienen detección de clones activa. - Si usas TV o VoIP de Entel: Funcionan en VLANs separadas (3620 y 3630). Deberás configurarlas también en el router. - stich86/UF-Instant-Mod — MOD rootfs para UF-Instant - Anime4000/RTL960x — Firmware y documentación RTL960x - hack-gpon.org — Referencia comunitaria de hacks GPON - MA5671A Config Guide (PLOAM) — Guía de configuración PLOAM