mrkeyoor.com_
Sat 17 Oct 13:32 UTC
Self-Hostedevaluationupdated 13 Oct 2026

ponwrt review

PonWrt is an ImmortalWrt firmware fork for Airoha AN7581 and AN7583 fiber-network devices. It provides an English README and a Simplified Chinese version, while much of the issue discussion is in Chinese. Its board profiles and PON configuration support target people modifying supported optical network hardware.

+12 / 3dstars / 7d
Verdict

Our PonWrt harness installed 35 Python packages in 24 seconds and passed its build step in 10 seconds, but it supplied no evidence of a booted firmware image. Use this fork for a supported spare PON device only after preserving its stock board data and arranging recovery. Open offload reports make it a poor first experiment on your only fiber connection.

We ran it

Lab card: what happened when we ran ponwrtScreenshot of ponwrt (github.com/pbs05/ponwrt)
Install✓ · 24s35 packages · 38 MB
Build✓ · 10s
Testsn/ano test script
Known vulns0(pip-audit)
Repo3419 files~139,942 lines of source · 18.9 MB · 1 CI workflows

Answers from our run

Does ponwrt build from source?

Dependencies installed in 24 seconds (35 packages), and the build succeeded in 10 seconds. We cloned commit a57faf9 into a clean Debian container with 3 CPUs and no project-specific setup.

Does ponwrt have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does ponwrt have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use ponwrt?

Anyone changing their only fiber connection without a recovery route: the README warns about boot failure, lost board data, and failure to register with the PON network.

What are the alternatives to ponwrt?

OpenWrt, ImmortalWrt. Our PonWrt harness installed 35 Python packages in 24 seconds and passed its build step in 10 seconds, but it supplied no evidence of a booted firmware image.

Setup1/5Board backups, flash conversion, and external recovery tools required
Docs3/5English device table and build path; recovery spans related projects
Community3/5October pushes and specific hardware reports in a small specialist fork
Maturity2/5No harness tests; open offload reports and hardware validation needed

Who it’s for

Firmware developers working on a board explicitly listed in the supported-device table.
Owners of spare PON hardware who can preserve stock flash and recover through U-Boot.
Network researchers evaluating optical configuration and offload on hardware they are authorized to modify.

Who it’s NOT for

Anyone changing their only fiber connection without a recovery route: the README warns about boot failure, lost board data, and failure to register with the PON network.
Users of unlisted boards or uncertain variants: the README assigns specific profiles and different calibration or identity partitions to devices.
Nokia XG-040G-MD users who need verified QoS behavior immediately: issue 37 reports opposite-direction DSCP copying in the Airoha offload path.
People treating our Python audit as firmware clearance: it examined the sandbox environment, and no hardware operation was measured.

Setup reality

Our sandbox installed 35 Python packages in 24 seconds, using 38 MB, and its build step succeeded in 10 seconds at commit a57faf9. Tests were skipped because no script or target was found. Pip-audit reported 0 known vulnerabilities. These results do not establish that a flashable firmware image was produced or booted.

The README's firmware path needs system toolchains, package feeds, and a board configuration. Installation uses related stock-backup and U-Boot projects, then restores your own calibration and identity data. Provider registration also depends on your device and operator requirements.

The scan found 1 CI workflow, no Dockerfile, and no tests directory. Flash-layout conversion and board-data restoration need hardware checks beyond the measured Python environment, especially where open issues concern offload or registration.

PonWrt is for the optical box on your fiber line

PonWrt extends ImmortalWrt for Airoha AN7581 and AN7583 PON devices, the optical network boxes that connect a subscriber to a fiber provider. The README names board profiles and the stock partitions holding calibration or identity data. That's the reason to examine this fork: support for particular hardware and its optical configuration. If you only want different firmware for a conventional home router, start with its existing device support instead.

Our checkout contained 3,419 files and about 139,942 lines of source in 18.9 MB. The size reflects a firmware source tree, even though the sandbox identified a Python ecosystem. The English README has a Simplified Chinese companion, and much of the recent issue discussion is in Chinese. English readers can follow the main build and restoration instructions, but some hardware troubleshooting will require translation and careful attention to the exact device variant.

What happened when we ran it

Our run installed 35 Python packages in 24 seconds, occupying 38 MB, and the harness build step succeeded in 10 seconds. We cloned commit a57faf9 on 2026-10-12 in an unprivileged Debian sandbox with 3 CPUs and 8 GB of RAM, using the uv Python 3.12 Bookworm image and no secrets. Those steps passed. The supplied measurement does not identify a completed firmware image or a booted device.

Tests were skipped because the harness found no test script or target, and pip-audit reported 0 known vulnerabilities. The scan found 1 CI workflow file, no Dockerfile, and no tests directory. That audit describes the Python environment it examined. It says nothing about the entire firmware's security, optical compatibility, or behavior under traffic. A successful generic build step cannot replace a hardware check on the selected board.

The documented firmware path includes feeds and a toolchain

The measured 10-second build should not be read as the time needed to produce usable PonWrt firmware. The documented firmware build path installs system tools and libraries, updates and installs package feeds, selects a target configuration, then invokes make. Its destination is a board-family directory under bin/targets/airoha/. Our supplied result doesn't say which artifact, if any, reached that directory.

With 35 packages installed in the sandbox, we have evidence for a Python dependency step, not the cost of the README's full toolchain and feeds. The root Makefile is an OpenWrt-style build entry point covering tools, packages, and the target. Before allocating a build machine, decide which profile you need and retain its configuration and feed revisions. Otherwise, a later source checkout alone won't explain exactly what went into the image you flashed.

Stock board data has to survive the conversion

The supported-device table separates FiberHome factory data from Gemtek dsd, UnionMan and ZNXT reservearea, and Nokia bosa and ri. Those names identify material the installation instructions tell you to preserve. PonWrt directs users to AN758x-Stock2UBI for a stock-flash backup and UBI layout, with boot images and Web recovery supplied by the related AN758x U-Boot project. Installation therefore crosses repository boundaries before your device is ready.

Our 38 MB installed Python environment did not validate that conversion. After installing firmware, the README tells you to restore calibration and identity data through U-Boot Web or LuCI's PON board-data screen. FiberHome backups require conversion through another utility first. I would keep the original backups outside the device and establish the correct restoration destination before changing flash layout. Losing those files can turn a software experiment into a device-specific recovery problem.

Open offload reports matter if you need dependable QoS

Issue 37's packet-marking report concerns a Nokia XG-040G-MD with Airoha flow offload. The reporter says traffic can inherit the opposite direction's DSCP marking, which can put packets in the wrong quality-of-service queue. The report identifies the relevant patches as unchanged in a57faf9. It explicitly avoids claiming general connectivity failure. That scope makes it useful evidence for a QoS decision without turning it into a claim that every supported board is broken.

The 10-second harness build did not exercise that network path. An open pull request proposes learning markings separately in each direction, but a proposal doesn't establish a delivered fix. A separate Gemtek bridge-mode report also describes the forwarding engine failing to take over traffic. If your reason for changing firmware is predictable offload or traffic prioritization, reproduce the relevant behavior on spare hardware before putting the fork on your only internet connection.

October maintenance supports experimentation on a spare device

The last push was 2026-10-09, and GitHub returned 262 stars with 12 open issues and PRs. Issue activity continued into October, including board-specific networking reports. The latest-release endpoint returned no latest release, which does not establish abandonment or exclude prereleases. Taken together, the source activity and detailed reports describe an active specialist fork whose users are still working through hardware behavior.

OpenWrt is the better starting point for a conventional device already supported upstream. ImmortalWrt is the relevant parent to compare if its existing support meets your needs without PonWrt's optical additions. Neither is an assurance that your PON box will register with your provider. Choose PonWrt for a listed board you can recover and operate with permission. If you cannot identify and preserve its stock calibration and identity partitions, stop before flashing.

Alternatives

ProjectWhat it isPick it when
OpenWrt gh↗The upstream Linux firmware project for supported network devices.pick this instead when your conventional router has upstream support and needs no PonWrt-specific optical changes.
ImmortalWrtThe OpenWrt variant from which PonWrt is derived.pick this instead when the parent project already supports your hardware and required features.

What people are saying

  1. [velocity-scout] pbs05/ponwrt

Sources

  1. PonWrt README, board data, build, and installation
  2. PonWrt repository facts
  3. Nokia DSCP and QoS report, issue 37
  4. Proposed per-direction marking fix
  5. Gemtek bridge offload report, issue 41
  6. PonWrt root Makefile
  7. OpenWrt upstream
  8. ImmortalWrt parent project

More self-hosted reviews

playport · edge-smart-doh · Comma · ProsperoEden · zulu · node_exporter · the whole board →