39 lines
2.6 KiB
Markdown
39 lines
2.6 KiB
Markdown
# mips-repo — MeowOS 板载 mipsel 软件仓库(宿主侧)
|
||
|
||
目标设备:R3 Pro II / MeowOS 固件(**mipsel-linux-muslsf**,静态,无 glibc 依赖)。
|
||
用途:存放针对该设备的交叉编译二进制与构建信息,便于**复用**到后续固件 / TF 卡
|
||
(MeowOpt 目录;`MeowLib` 未定义/未用——`MeowOpt` 与 `MeowOS/opt` 命名需归一:代码用 `MeowOS/opt`,文档 `MeowOpt` 指卡上外部工具目录。[源:审计 2026-08-30])。
|
||
|
||
## 仓库结构(每工具一个目录)
|
||
```
|
||
mips-repo/
|
||
README.md # 本文件
|
||
<tool>/
|
||
build.sh # 交叉编译脚本(可重复执行)
|
||
manifest.md # 元信息:来源/版本/arch/校验/产物路径/安装目标
|
||
bin/<tool> # 交叉编译产物(静态 mipsel,如存在)
|
||
```
|
||
|
||
## 当前已入库工具
|
||
- **mdnsd/**:Apple mDNSResponder-2881.0.25 交叉编译产物(`mipsel-linux-muslsf` 静态)。两种变体同在 `bin/`:
|
||
- `bin/mdnsd` = **SAResponder**(mDNSResponderPosix,单服务注册型,`-n/-f` 只发布/回指定服务)strip 后 **885.6 KB**;
|
||
- `bin/mdnsd.bin` = **完整 mdnsd** 守护进程(通用宿主响应器,回任意 `.local` 查询)strip 后 **994 KB**。
|
||
均远超固件 <200KB 阈值 → 按 mDNS 方案A 用**完整版**部署到 TF `MeowOpt/mdnsd/mdnsd`,由 meow_svcd 托管(需 root / setcap `cap_net_bind_service,cap_net_raw`)。详见 `mdnsd/manifest.md`。
|
||
|
||
## 目标架构与工具链
|
||
- 架构:`mipsel`(MIPS32r2, little-endian)
|
||
- 运行库:`musl`(静态链接,避免 libc 版本/动态加载差异)
|
||
- 交叉编译器:`~/.tools/zig-mipsel-cc`(zig 目标 mips-linux-musl)
|
||
- 目标静态库 sysroot:`~/.tools/mipsel-linux-muslsf-cross/mipsel-linux-muslsf`
|
||
|
||
## 新增一个工具的流程
|
||
1. `mkdir -p <tool>/bin`,写 `<tool>/build.sh`(用 zig-mipsel-cc,`-Os -static`)。
|
||
2. 跑 `build.sh`,产出放 `<tool>/bin/<tool>`。
|
||
3. 写 `<tool>/manifest.md`:来源(如 Apple-OSS/mDNSResponder 版本)、ARCH、`file`
|
||
输出摘要、`ls -l` 大小、构建命令、安装路径(固件 or TF MeowOpt)。
|
||
|
||
## 部署到哪里
|
||
- 体积小(约 <200KB)→ 可直接打进固件(/usr/bin 或由 supervisor 启动)。
|
||
- 体积大 → 放 TF 卡 `MeowOpt/<tool>/`,由 MeowOS 启动时从卡加载(拔卡降级不崩)。
|
||
- **按需取用**:从 `MeowOpt/<tool>/` 按需部署,不一定要全部入库;若某工具体积仍偏重(如 mdnsd 的 885~994KB),可评估更小方案(OpenWrt linkd / libmdns,或自研极简响应器——仅回 A 记录 + `_ssh` 服务)以塞进固件 <200KB。
|