mrkeyoor.com_
Thu 03 Sept 14:33 UTC
Self-Hostedevaluationupdated 03 Sept 2026

lede review

LEDE is a Chinese-first source tree for building customized OpenWrt router firmware; separate English and Japanese README files exist. It bundles the build system, target definitions, kernel work, packages, and web interface needed to turn a chosen configuration into firmware for supported network hardware.

trackingstars / 7d
Verdict

Our LEDE checkout installed 35 Python packages in 37 seconds, then the build exited with code 1 after 11 seconds, so this is a source tree to prove on your exact target before trusting it. Use it when Lean's hardware and package work solves a specific gap and you can work in the Chinese-first community. Start with upstream OpenWrt if you need English-first documentation, a clearer general baseline, or less fork-specific debugging.

We ran it

Lab card: what happened when we ran ledeScreenshot of lede (github.com/coolsnowwolf/lede)
Install✓ · 37s35 packages · 37 MB
Build✗ · 11s
Testsn/ano test script
Known vulns0(pip-audit)
Repo5666 files~1,658,998 lines of source · 112.2 MB · 1 CI workflows

Answers from our run

Does lede build from source?

Dependencies installed in 37 seconds (35 packages), and the build failed. We cloned commit 16b091e into a clean Debian container with 3 CPUs and no project-specific setup.

Does lede have tests you can run?

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

Does lede have known vulnerabilities in its dependencies?

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

Who should not use lede?

English-only teams that require documentation parity: the English README says R23 while the Chinese README says R24, and their featured hardware sections differ.

What are the alternatives to lede?

OpenWrt, ImmortalWrt. Our LEDE checkout installed 35 Python packages in 37 seconds, then the build exited with code 1 after 11 seconds, so this is a source tree to prove on your exact target before trusting it.

Setup2/537-second Python setup passed, but the 11-second build failed
Docs3/5Detailed build steps, though English and Chinese pages have drifted
Community4/5Pushed September 2026 with 873 open issues and pull requests
Maturity3/5Broad firmware tree, but current target-specific failures remain

Who it’s for

OpenWrt users who need Lean's package selection or support for hardware covered by this tree.
Router builders comfortable choosing a target in menuconfig and debugging cross-compilation.
Chinese-speaking developers who can follow the primary README and issue discussions.
Experienced operators who can test a generated image on spare hardware before any production rollout.

Who it’s NOT for

English-only teams that require documentation parity: the English README says R23 while the Chinese README says R24, and their featured hardware sections differ.
Builders who need the current master branch to compile across every listed target: issue 14131 reports an ACRH17 failure, while issue 14117 reports an R2S package dependency failure.
Anyone planning to compile as root: the README explicitly tells users never to do that.
WSL users building on a case-insensitive directory: the README says OpenWrt rejects that filesystem setup and requires case sensitivity before cloning.
Teams expecting a small, ordinary application build: our checkout held 5,666 files and about 1,658,998 source lines, and the documented setup installs a full native toolchain.

Setup reality

Our sandbox installed 35 Python packages in 37 seconds and used 37 MB, but the build failed with exit code 1 after 11 seconds. The supplied result includes no error tail, so it does not identify the failing command or cause. No test script or target was found; pip-audit reported 0 known vulnerabilities.

The README calls for Debian or Ubuntu, a long list of system packages, feed updates, menuconfig, source downloads, and a firmware build. No credentials are required, though mainland-China users are warned to arrange access to outside download sources.

Do not compile as root. WSL needs a case-sensitive directory and a cleaned PATH, while macOS needs Xcode, Homebrew, GNU utilities, and GCC 11. The chosen hardware target, kernel, feeds, and packages can each change the result.

The 5,666-file tree is a firmware distribution, not an app

LEDE is Lean's modified OpenWrt source tree for routers, gateways, and small network computers. Our checkout contained 5,666 files and roughly 1,658,998 lines of source before dependencies, which explains the repository's mix of kernel code, target definitions, toolchains, packages, feeds, and Lua web-interface components. You do not install this on a router like a normal package. You select a hardware profile and features, cross-compile an image, then accept the risk of flashing and testing that image on the device.

The primary Chinese README says the tree includes R24 sources and adds Loongson loongarch64 and Phytium D2000 support. It also presents Radxa network-computer models spanning gigabit and 2.5G Ethernet. The separate English page is less current: it still refers to R23 and promotes an ArmSoM board series instead. English instructions are available, but readers should compare them with the Chinese page and current commits before treating either hardware description as the final support matrix.

Ubuntu 22 or 24 is only the start of the documented build

The README recommends Debian or Ubuntu LTS 22 or 24, followed by a long apt command that installs compilers, multilib support, build generators, archive tools, emulators, development headers, and Python utilities. After cloning, you update and install all feeds, open make menuconfig, download source archives, and run the build. The README recommends one thread for the first compile. That sequence assumes you already know which target, subtarget, device profile, kernel, and packages belong in the image.

Configuration is where LEDE changes from a download into a maintenance commitment. A feed update can alter packages independently of the core tree, while menuconfig can produce combinations that few other users exercise. The README puts finished artifacts under bin/targets and gives a shorter rebuild path using make defconfig. It does not provide a target-by-target acceptance table for the current commit. For production hardware, keep the exact .config, commit, feed revisions, and recovery method alongside every image you deploy.

What happened when we ran it

Our run used commit 16b091e in a fresh unprivileged Debian container with 3 CPUs and 8 GB of RAM. The repository occupied 112.2 MB before setup. Its Python install succeeded in 37 seconds, adding 35 packages and using 37 MB on disk. Pip-audit found 0 known vulnerabilities in those installed Python packages. That clean audit result applies only to the measured Python environment, not to every package, kernel component, or binary that a firmware image could contain.

The build failed with exit code 1 after 11 seconds. The measurement supplied for this review does not include the failing log lines, so it cannot support a claim about which dependency or build stage stopped. Tests were skipped because the harness found no test script or target. The scan also found one CI workflow, no Dockerfile, and no tests directory. A failed build without its error tail is still useful evidence: commit 16b091e did not complete under the stated sandbox recipe.

WSL needs a case-sensitive directory before the clone

The README warns against compiling as root and spells out two WSL traps. Windows paths containing spaces can pollute PATH, so the documented workaround replaces it with Unix system locations. NTFS-mounted directories are commonly case-insensitive, and the OpenWrt build check rejects that arrangement. The page says case sensitivity must be enabled on a new directory before cloning because changing an existing checkout is ineffective. The default firmware login is also documented as 192.168.1.1 with password password, which should never survive first boot on an exposed network.

macOS has a separate route using Xcode, Homebrew, GNU command variants, and GCC 11, plus manual PATH changes. That list is a warning about host-tool assumptions as much as an installation guide. A container image could make the toolchain more repeatable, yet our repository scan found no Dockerfile. Teams can build their own image, but they then own the base image, package pins, cache, disk allocation, and device-specific flashing workflow.

September activity coexists with 873 open issues and pull requests

The last push was September 3, 2026, and GitHub listed 873 combined open issues and pull requests. Several build reports were updated the same day. Issue 14131 shows an implicit-function compile error for an ACRH17 target, and issue 14104 reports a Perl host-build type error for N1. Recent closures also matter: multiple build failures filed on September 1 were closed that day, while a containerd toolchain report from August was closed within two days. This is active maintenance with a large support surface.

The latest tagged release is R25.10.1, published September 30, 2025. Its notes list kernel updates across several branches, device additions, package work, and build fixes. The older release date does not make the project dormant because master moved on September 3, 2026 and issue handling continued. It does mean release users and master builders are choosing different risk profiles. A tag gives a fixed starting point; master carries newer hardware work and the freshest regressions.

Exact device and package choices decide whether LEDE fits

LEDE makes sense when this tree supports a board or package set that upstream OpenWrt does not serve as well. The choice should start with a device-specific check, not the repository's overall popularity. Issue 14117 reports that selecting sqlite3-cli on R2S reached a package-install failure because the available package did not match the configured architecture. Issue 14073 says a ZYXEL NGB7815 image from newer master could not reliably open its management page, while the reporter's 20251001 source worked.

Those reports make a spare-device trial mandatory. Build commit 16b091e with the intended .config, boot it without overwriting the known-good image, confirm networking and the LuCI page, then exercise upgrades, DNS, firewall, VPN, storage, and recovery. Our 11-second build failure prevents a recommendation based on repository setup alone. LEDE is worth the effort for builders who need its specific changes and can diagnose firmware failures; it is a poor default for anyone who simply wants a supported router image.

Alternatives

ProjectWhat it isPick it when
OpenWrt gh↗The upstream Linux distribution and build tree for embedded network devices.pick this instead when upstream device support, release documentation, and the main OpenWrt community matter more than Lean's package mix.
ImmortalWrtAnother OpenWrt-derived source tree aimed at additional packages and device support.pick this instead when its target list and package choices fit your router better, after checking that target's current build reports.

What people are saying

  1. [velocity-scout] coolsnowwolf/lede

Sources

  1. LEDE repository
  2. LEDE Chinese README
  3. LEDE English README
  4. LEDE R25.10.1 release
  5. ACRH17 build failure report
  6. N1 Perl host build failure report
  7. R2S sqlite3 package failure report
  8. ZYXEL management page report

More self-hosted reviews

kopia · openreplay · MicYou · NetAlertX · Tasmota · bitchat · the whole board →