• 全新单提交:清除含敏感信息的旧历史(sudo 口令、内网 IP、SSH 密钥路径、热点 SSID、设备 MAC) • 本地开发文档/测试记录/构建脚本全部移入 gitignored 的 devdocs/ 与 scripts/build/(不入库) • 保留:MeowOS 源码(launcher/watchdog/bootmenu/meow_svcd/SDK)、项目规范文档、mips-repo 增补组件:SDK 统一日志+通知 API、meow_svcd 服务管理器、mips-repo 软件仓库
mips-repo — MeowOS 板载 mipsel 软件仓库(宿主侧)
目标设备:R3 Pro II / MeowOS 固件(mipsel-linux-muslsf,静态,无 glibc 依赖)。 用途:存放针对该设备的交叉编译二进制与构建信息,便于复用到后续固件 / TF 卡 (MeowLib / MeowOpt 目录)。
仓库结构(每工具一个目录)
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 用完整版部署到 TFMeowOpt/mdnsd/mdnsd,由 meow_svcd 托管(需 root / setcapcap_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
新增一个工具的流程
mkdir -p <tool>/bin,写<tool>/build.sh(用 zig-mipsel-cc,-Os -static)。- 跑
build.sh,产出放<tool>/bin/<tool>。 - 写
<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。