ILP32Wrt
Router-Firmware auf Basis von OpenWrt 25.12.6 mit AArch64-ILP32-Userland (musl 1.2.5) und ILP32-fähigem Kernel.
Was es ist
- Nur der Userspace ist ILP32; Kernel, TF-A, U-Boot und GRUB bleiben 64-bittig.
- Pakete bekommen das Architektur-Suffix
_ilp32(zum Beispielaarch64_cortex-a53_ilp32), damit sich ILP32- und LP64-Pakete nie vermischen. - Pointer Authentication, BTI und SVE können aktiv bleiben, wo das Target sie einschaltet.
Geräte
| Target | Stand |
|---|---|
armsr/armv8 (QEMU, virtuelle Maschinen) | in QEMU getestet |
mediatek/filogic (OpenWrt One) | auf Hardware getestet, einschließlich sysupgrade zwischen ILP32 und LP64 |
bcm27xx/bcm2710 (Raspberry Pi 3 B+) | auf Hardware getestet: Boot, Ethernet, WLAN, LuCI (Erstinstallation über die Hersteller-Firmware und sysupgrade nicht getestet) |
weitere mediatek/filogic-Router, Raspberry Pi 4 und 5 | Images gebaut, nicht auf Hardware getestet |
| weitere Targets (Qualcomm, Rockchip, …) | noch nicht gebaut |
Was ILP32Wrt zusätzlich macht
Neben ILP32-Kernel, musl und Toolchain baut ILP32Wrt ab dem nächsten Release (v25.12.6-ilp32.3) die meistgenutzten Pakete (ucode, lucihttp, json-c) mit clang 22 und unseren Patches; alles andere bleibt bei GCC 14.3. Die Patches rechnen Adress-Offsets in die Adressierungsarten ein und verhindern, dass Zeigerarithmetik auf 64 Bit erweitert wird, daher laufen diese Pakete auf ILP32 schneller.
| OpenWrt One, gleicher Quellbaum | LP64 (GCC) | ILP32 (GCC) | ILP32Wrt (meistgenutzte Pakete mit clang) |
|---|---|---|---|
| Firewall neu laden, 200 Regeln | 2.58 s | 2.84 s (+10%) | 2.63 s (+2%) |
| 20 LuCI-Anfragen | 1.73 s | 1.81 s (+5%) | 1.76 s (+2%) |
| Userspace-Speicher (PSS) | 38.3 MB | 28.9 MB | 28.9 MB (-24.6%) |
Verglichen mit demselben Quellbaum, für LP64 mit GCC 14.3 gebaut, nicht mit dem offiziellen OpenWrt-Image. LP64 mit clang wurde nicht gemessen. Wer die Images selbst baut, kann auch weitere Pakete mit clang bauen, zum Beispiel python3.
Quellen und Images
Quellcode und Bauanleitung: github.com/ilp32-a64/openwrt-ilp32. Images werden dort als experimentelle Pre-Releases veröffentlicht; einen Paket-Feed gibt es noch nicht.
Gerät melden
Auf deinem Gerät ausprobiert? Bitte eröffne im Repository ein Issue mit dem Geräteformular, egal ob es startet oder nicht.
ILP32Wrt steht in keiner Verbindung zu OpenWrt. OpenWrt ist eine eingetragene Marke der Software Freedom Conservancy (SFC); siehe openwrt.org.