OpenWrt 软件源
dae、honk 及其 LuCI 界面的 apk 软件包,适用于 OpenWrt 25.12 及以上版本。
支持的版本
| 版本 | 内核 | 状态 |
|---|---|---|
| 25.12 | 6.12 | 支持 OpenWrt 和 ImmortalWrt。 |
| 24.10 | 6.6 | 不支持:opkg 没有标签,本源会取代同名软件包;ImmortalWrt 已自带 dae。honk 需内核 6.12 以上。 |
| 23.05 及更早 | ≤ 5.15 | 不支持:内核低于两者要求(dae 需 5.17 以上)。 |
查询路由器的版本和 target:
. /etc/openwrt_release
echo $DISTRIB_RELEASE $DISTRIB_ARCH $DISTRIB_TARGET软件包架构(ImmortalWrt 只需架构相符;32 位 ARM 和 MIPS 无软件包,两种系统均不支持):
OpenWrt target 与 BTF
官方 OpenWrt 内核不含 BTF,dae 和 honk 需 vmlinux-btf,仅提供下表的 target 和版本;其他 target 不支持。内核自带 BTF 时(ImmortalWrt),由空包 vmlinux-btf-builtin 代替。
安装
导入签名公钥
shwget -O /etc/apk/keys/daeuniverse.pem \ https://openwrt.daeuniverse.org/public-key.pem添加软件源
sh. /etc/openwrt_release FEED=https://openwrt.daeuniverse.org/${DISTRIB_RELEASE%.*} cat > /etc/apk/repositories.d/daeuniverse.list <<EOF @daeuniverse $FEED/packages/$DISTRIB_ARCH/packages.adb @daeuniverse $FEED/kmods/$DISTRIB_RELEASE/$DISTRIB_TARGET/packages.adb EOF apk updatesh. /etc/openwrt_release FEED=https://openwrt.daeuniverse.org/${DISTRIB_RELEASE%.*} cat > /etc/apk/repositories.d/daeuniverse.list <<EOF @daeuniverse $FEED/packages/$DISTRIB_ARCH/packages.adb EOF apk update@daeuniverse标签指定从本源安装;不带标签时优先使用系统软件包。安装软件包
shapk add dae@daeuniverse luci-app-dae@daeuniverse \ luci-i18n-daeuniverse-zh-cn@daeuniverseshapk add honk@daeuniverse luci-app-honk@daeuniverse \ luci-i18n-daeuniverse-zh-cn@daeuniverse不使用 LuCI 时,省略
luci-开头的软件包。启用服务
在 LuCI 的服务 → daehonk 中启用,或在命令行执行:
shuci set dae.config.enabled=1 uci commit dae /etc/init.d/dae enable /etc/init.d/dae startshuci set honk.config.enabled=1 uci commit honk /etc/init.d/honk enable /etc/init.d/honk start配置文件:
/etc/dae/config.dae/etc/honk/config.dae,语法见 dae 文档honk 文档。
常见错误
UNTRUSTED signature
路由器还没有本源的公钥,无法验证软件包。执行导入签名公钥这一步,再执行apk update。
This kernel has no BTF of its own
官方 OpenWrt 没有添加 kmods 软件源,所以安装的是vmlinux-btf-builtin,而不是vmlinux-btf。按添加软件源中 OpenWrt 的写法添加两行软件源,再执行apk update && apk upgrade vmlinux-btf-builtin。如果路由器的 target 不在上面的表中,本源没有它的vmlinux-btf,dae 和 honk 无法在这台路由器上运行。
breaks: vmlinux-btf
路由器的内核不是官方 OpenWrt 正式版的内核(例如 ImmortalWrt、自行编译或快照版固件),所以无法安装vmlinux-btf。这类系统不需要 kmods 软件源:删除/etc/apk/repositories.d/daeuniverse.list中含kmods的那一行,执行apk update后重新安装。