发 v1.0.11:arm64(Debian 13)适配的产物重打
上一版把 arm64 适配的代码推了上去,但没有重打产物 —— Release 上挂的
三件套仍是旧的,不含那次修复。这一版把产物补齐,并首次发布 arm64 的两份。
改的就一件事:版本号 1.0.10 → 1.0.11(packaging/VERSION 是唯一真源,
同步 backend/drouter-web.py 的 VERSION_FALLBACK 与 drouter-update.py 的兜底值)。
⚠️ 全仓 grep '1.0.10' 会命中几十处,绝大多数是「1.0.10 修 / 1.0.10 起」这类
历史注释,指的是那个版本做过的事,**一个都没动** —— 改了等于篡改历史。
README 更新日志补 v1.0.11 段,写明这次适配的实测机型与分架构产物清单:
本体 drouter_1.0.11_all.deb Architecture: all,各 CPU 通用
离线包 drouter-1.0.11-offline-amd64.tar.gz / -arm64.tar.gz
镜像 drouter-1.0.11-docker.tar / drouter-1.0.11-arm64-docker.tar
关于「amd64 有没有实质更新」:代码逻辑上没有 ——
· _read_bios() 新增的设备树分支在 x86 上不触发(有 EFI/DMI 时走原分支,
结果与改动前逐字节一致,只是多返回 fw_type / is_dt / compat 三个字段);
· _deb_arch() 在 amd64 上返回 amd64,拼出的离线包名与原写死的完全相同。
但「只重打 arm」这条路走不通,两个硬约束:
1. deb 是 Architecture: all 的**单包**,不存在「arm 版 deb」;
2. 离线包里内含本体 deb,本体一变,amd64 那份离线包装出来的就是旧 deb。
所以这次是全量重打(deb 1 + 离线包 2 + 镜像 2)。
This commit is contained in:
1 parent
6df3a94b90
commit
d2291aeb96
4 files changed
+45
-3
No files matched your search
@@ -1003,6 +1003,48 @@ sudo apt purge drouter # 连配置一起删
|
||||
|
||||
## 📝 更新日志
|
||||
|
||||
|
||||
### v1.0.11 — arm64(Debian 13)适配
|
||||
|
||||
**不改动配置存储格式**(老配置直接可用)。
|
||||
|
||||
这一版是为 ARM 开发板做的架构适配。实测机型:
|
||||
**Armbian 26.8.1 trixie(Debian 13.6)/ aarch64 / 内核 6.18.35-ophub**(Amlogic S912 板)。
|
||||
|
||||
#### 1. 修掉 ARM 板被误报成「传统 BIOS」
|
||||
|
||||
`_read_bios()` 原先只看两件事:`/sys/firmware/efi` 在不在、`/sys/class/dmi` 下的字段读不读得到。
|
||||
x86 上这样够用(UEFI 与传统 BIOS 二分),但 **ARM 板两个都没有** —— 它走 U-Boot + 设备树启动,
|
||||
从来没有 SMBIOS/DMI。于是这类机器一律落到 else 分支,系统概览显示「传统 BIOS」,
|
||||
厂商 / 版本 / 日期还全是空白。**ARM 开发板上根本没有 BIOS 这个东西,这一行是错的。**
|
||||
|
||||
新增设备树分支,判据顺序 **EFI → 设备树 → BIOS**(顺序不能换:树莓派 4 这类既能以 EFI
|
||||
也能以设备树启动的机器,应当优先认 EFI);`compatible` 属性按 NUL 切开取第一条
|
||||
(原样返回会把一整串匹配标识连着空字符一起塞给前端);没有 DMI 厂商时拿设备树板名兜底。
|
||||
|
||||
#### 2. 更新模块不再给 arm64 下发 x86 离线包
|
||||
|
||||
离线包是分架构发布的(包里几百个 .deb 全是某一个 CPU 的二进制),但资源名原先写死
|
||||
`-offline-amd64`。arm64 机器上点「查看更新内容并升级」会列出并下载一份 x86 离线包,
|
||||
**白白传几十 MB,然后在装包阶段炸依赖校验**。改为按 `dpkg --print-architecture` 拼名,
|
||||
并对带架构后缀的附件在**下载前**先拿官方 SHA256SUMS 核对存在性 —— 没有就明确报错,
|
||||
提示改用各 CPU 通用的 deb 包。
|
||||
|
||||
#### 3. 产物开始分架构发布
|
||||
|
||||
| 附件 | 适用 |
|
||||
|---|---|
|
||||
| `drouter_1.0.11_all.deb` | 本体,`Architecture: all`,**各 CPU 通用** |
|
||||
| `drouter-1.0.11-offline-amd64.tar.gz` | x86_64 离线包(断网可装) |
|
||||
| `drouter-1.0.11-offline-arm64.tar.gz` | aarch64 离线包(断网可装) |
|
||||
| `drouter-1.0.11-docker.tar` | amd64 镜像 |
|
||||
| `drouter-1.0.11-arm64-docker.tar` | arm64 镜像 |
|
||||
|
||||
验证范围、实测数据与已知差异全部写在 `docs/07-arm64-适配说明.md`。
|
||||
想在自己的板子上复验,可以跑 `python3 devtools/verify-arm64.py`(只读,不改系统)。
|
||||
|
||||
> ⚠️ **只对一个发行版做过实测。** 别的 arm64 Debian 衍生版(Ubuntu / Raspberry Pi OS /
|
||||
> 其他 Armbian 板型)未验证,请先按说明文档自检再上生产。
|
||||
### v1.0.10 — 全站中英双语 + 修掉「文字被压成竖排」的排版缺陷
|
||||
|
||||
**不改动配置存储格式**(老配置直接可用)。
|
||||
|
||||
@@ -170,7 +170,7 @@ def app_version():
|
||||
return v
|
||||
except Exception:
|
||||
pass
|
||||
return '1.0.10'
|
||||
return '1.0.11'
|
||||
|
||||
|
||||
def parse_ver(v):
|
||||
|
||||
@@ -74,7 +74,7 @@ BUILD_FLAG = '/etc/drouter/BUILD_MODE'
|
||||
# 早先版本号在 openapi 里硬编码,于是「页面显示什么版本」和「包管理器认为
|
||||
# 是哪个版本」是两条互不相干的线,只能靠人手记着同步 —— 漏一次就是一个
|
||||
# 改不掉的 bug(apt 按 control 认版本,文件名是 1.0.9 它就当 1.0.8)。
|
||||
VERSION_FALLBACK = '1.0.10'
|
||||
VERSION_FALLBACK = '1.0.11'
|
||||
_VERSION_READ = [False]
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
1.0.10
|
||||
1.0.11
|
||||
Reference in new issue
Block a user