ILP32
简体中文

ILP32Wrt

基于 OpenWrt 25.12.6 的路由器固件,用户空间为 AArch64 ILP32(musl 1.2.5), 内核支持 ILP32。

这是什么

支持的设备

Target状态
armsr/armv8(QEMU、虚拟机)已在 QEMU 测试
mediatek/filogic(OpenWrt One)已在实机测试,包括 ILP32 与 LP64 之间互相 sysupgrade
bcm27xx/bcm2710(Raspberry Pi 3 B+)已在实机测试:启动、有线网络、Wi-Fi、LuCI(尚未测试原厂固件刷写和 sysupgrade)
其他 mediatek/filogic 路由器、Raspberry Pi 4 和 5已构建镜像,尚未在实机测试
其他 target(高通、Rockchip…)尚未构建

ILP32Wrt 多做了什么

除了 ILP32 的内核、musl 和工具链,ILP32Wrt 从下一版(v25.12.6-ilp32.3)起,会用打上我们补丁的 clang 22 编译最常用的软件包(ucode、lucihttp、json-c),其他软件包仍用 GCC 14.3。这些补丁把地址偏移合并进寻址模式, 并避免把指针运算扩展为 64 位,所以这些软件包在 ILP32 上运行得更快。

OpenWrt One,同一份源代码LP64 (GCC)ILP32 (GCC)ILP32Wrt (常用软件包用 clang)
重新加载 200 条防火墙规则2.58 秒2.84 秒 (+10%)2.63 秒 (+2%)
LuCI 20 次请求1.73 秒1.81 秒 (+5%)1.76 秒 (+2%)
用户空间内存(PSS)38.3 MB28.9 MB28.9 MB (-24.6%)

对比的是同一份源代码用 GCC 14.3 编译的 LP64 镜像,不是官方 OpenWrt 镜像。 LP64 用 clang 编译的版本尚未测量。自己编译镜像时,也可以用 clang 编译其他软件包,例如 python3。

源代码与镜像

源代码和编译说明:github.com/ilp32-a64/openwrt-ilp32。 镜像之后会以实验性的 pre-release 发布在那里;目前还没有软件源。

反馈你的设备

在你的设备上试过了吗?无论能否启动,都欢迎在仓库中使用设备反馈表单提交 issue。

ILP32Wrt 与 OpenWrt 无关联。OpenWrt 是 Software Freedom Conservancy(SFC)的注册商标, 详见 openwrt.org。