Leadaxe 说明新 Linux 架构适配及 launcher 下载 UPX 核心的限制
Leadaxe 在 issue #146 说明,sing-box-lx 的相关改动加入 linux-386、linux-riscv64 静态 musl/NaïveProxy 构建,以及面向小闪存路由器的 arm64、mipsle-softfloat UPX 压缩副本;产物将从相关合并后的首个发布提供。初始讨论指出 launcher 尚有架构选择与无设备信息时的下载适配问题,并提醒下载普通核心可能把压缩二进制替换为体积约 4–5 倍的文件。后续作者明确修正:lxd update 的压缩格式保留和写入前空间检查已在 9dd91577a 实现,将随 lx.21 发布;launcher 的新架构下载、界面及服务初始化适配已提交 develop 的 fdceb50a,不能视为正式版已发布。仍未解决的是 launcher 的 Download core:设备使用压缩核心时仍会下载普通归档,需要设备信息增加压缩状态才能进一步适配。
作者原文@LeadaxeВ релизах ядра появляются новые linux-сборки: Leadaxe/sing-box-lx#35 (влит 03bccf484, UPX на rc — 2e80a11eb; ассеты — с первого релиза после мержа, rc тоже).
sing-box-<ver>-linux-386.tar.gz(musl, static, NaïveProxy,GO386=sse2; OpenWrti386_pentium4)sing-box-<ver>-linux-riscv64.tar.gz(musl, static, NaïveProxy; OpenWrtriscv64_generic)- во всех релизах, включая rc:
sing-box-<ver>-linux-arm64.upx.tar.gzиsing-box-<ver>-linux-mipsle-softfloat.upx.tar.gz— тот же бинарь, упакованный UPX, для роутеров с маленьким флешемДемон новых сборок отдаёт в паспорте (
GET /admin/info)platform=linux-386/linux-riscv64, так что путь черезassetSuffixFor(…, platform)заработает сам. Что в лаунчере осталось без них:
core/core_downloader.goSingboxAssetSuffixFor— без паспорта (машина ещё не отвечает, ручная запись)linux/386иlinux/riscv64дают""→unsupported platform. Комментарий над функцией («the fork publishes no build for that platform (e.g. linux/386)») устарел. Решить: добавить две строки или оставить правило «таблицу не расширяем» и только поправить комментарий.ui/machine_add_window.go:70,ui/machine_edit_window.go:97— в выборе GOARCH нетriscv64.ui/machine_host_format.gohostArchEqual— нет нормализацииriscv64(uname и Go пишут одинаково, проверить, что сверка не ругается).UPX-копии случайно не выбираются:
findPlatformAssetищет подстрокуlinux-arm64.tar.gz, в…-linux-arm64.upx.tar.gzеё нет. Отдельно: при обновлении ядра на машине с UPX-сборкой лаунчер (как иlxd update) поставит обычный бинарь в 4–5 раз крупнее; на маленьком overlay это упрётся в место. Нужно ли что-то с этим делать — открытый вопрос, не блокер.