M2.54: 字体归MeowOS/fonts+SDK跟随+多字体+全屏?(等)+boot板载+状态栏28+亮度/音量修复+mDNS固化(meow_svcd双源+meow_mdns)+hostname=meowos+文档
This commit is contained in:
1 parent
064635b3c4
commit
9b8a1e5c8b
13 files changed
+807
-35
No files matched your search
@@ -8,9 +8,11 @@
|
||||
二进制入口:`patch_v2/meow_svcd/meow_svcd`(mipsel 静态,~98KB,<200KB 固件阈值)。
|
||||
宿主编译:`patch_v2/meow_svcd/meow_svcd_host`。
|
||||
|
||||
> 本阶段范围:守护 + 宿主测试。**接入 supervisor 启动链**
|
||||
> (bootmenu/launcher fork+exec 拉起、waitpid)为后续任务——启动改固件有风险,
|
||||
> 需另行确认。接入时用 `meow_svcd -f`(前台)保证 supervisor 可 `waitpid`。
|
||||
> 本阶段(M2.54)范围:守护 + 双源 services.d + 宿主测试。**接入系统启动链**已定:
|
||||
> 固件预置 `etc/init.d/S89meow_svcd`(开机自启,`myow_svcd -f` 前台 + shell 重挂在 rcS 早期,
|
||||
> 先于 S90meow_bootmenu——因 S90 exec 引导选单后阻塞 rcS,故须排在 S90 之前)。
|
||||
> 直接由 bootmenu/launcher `fork+exec` + `waitpid` 托管的方案仍成立(改固件有风险),
|
||||
> 作为备选——用 `-f` 前台即可被 waitpid。
|
||||
|
||||
---
|
||||
|
||||
@@ -19,7 +21,8 @@
|
||||
| 用途 | 默认值 | 覆盖方式 |
|
||||
|---|---|---|
|
||||
| TF 卡挂载点 | `/usr/data/mnt/sd_0`(SPEC §1.2) | `--card` / `MEOW_SVCD_CARD` |
|
||||
| 服务配置目录 | `<card>/MeowOS/services.d/` | 随 `--card` |
|
||||
| 板载服务目录 | `/usr/data/meow/services.d`(首启预置/Data 区) | `--board` / `MEOW_SVCD_BOARD` |
|
||||
| TF 服务目录 | `<card>/MeowOS/services.d/` | 随 `--card` |
|
||||
| 控制 socket | `/tmp/meow_svcd.sock` | `--sock` / `MEOW_SVCD_SOCK` |
|
||||
| 状态文件 | `/tmp/meow_svcd.status` | `--status` / `MEOW_SVCD_STATUS` |
|
||||
| pid 文件 | `/tmp/meow_svcd.pid` | `--pidfile` |
|
||||
@@ -28,10 +31,18 @@
|
||||
> 状态文件写板载 `/tmp`(tmpfs,存活期)或可配置;svcd 日志走 stderr 便于
|
||||
> supervisor 捕获(`-f` 前台时子进程 stdout/stderr 也落到同一 sink)。
|
||||
|
||||
## 2. services.d 目录式配置
|
||||
## 2. services.d 目录式配置(**双源**:板载 + TF,板载优先)
|
||||
|
||||
卡片上 `MeowOS/services.d/<name>.conf`,一个服务一个 `.conf`。极简 `key = value`,
|
||||
`#`/`;` 注释,空行忽略;**未知键忽略**(前向兼容)。行内注释可用 `\#` 转义。
|
||||
服务配置**两处都读**,一个服务一个 `<name>.conf`:
|
||||
|
||||
- **板载** `/usr/data/meow/services.d/<name>.conf`:Data 区,恒定存在、权威优先;
|
||||
首启由固件 `S89meow_svcd` 预置(如 `mdnsd.conf`)。拔卡不丢。
|
||||
- **TF** `<card>/MeowOS/services.d/<name>.conf`:随卡存在/消失。
|
||||
|
||||
**同名遮蔽规则**:先扫板载(权威),再扫 TF;若 TF 出现与板载同名服务 → **跳过 +
|
||||
WARN**「<name> 板载与 TF 都存在,采用板载」。无双源冲突时行为不变。
|
||||
|
||||
极简 `key = value`,`#`/`;` 注释,空行忽略;**未知键忽略**(前向兼容)。行内注释可用 `\#` 转义。
|
||||
|
||||
| 字段 | 必填 | 类型 | 说明 | 默认 |
|
||||
|---|---|---|---|---|
|
||||
@@ -71,6 +82,23 @@ trigger = card-mount
|
||||
# cap = cap_net_bind_service,cap_net_raw
|
||||
```
|
||||
|
||||
**板载 mDNS 应答器示例**(固件预置 `/usr/data/meow/services.d/mdnsd.conf`,首启建):
|
||||
|
||||
```ini
|
||||
# 自研 IPv4-only mDNS 应答器(固件 /usr/bin/meow_mdns;板载服务,拔卡不丢)
|
||||
exec = /usr/bin/meow_mdns
|
||||
args =
|
||||
enabled = 1
|
||||
restart = on-fail
|
||||
backoff_ms = 2000
|
||||
max_restart = 5
|
||||
trigger = boot # 板载服务:boot 触发不依赖卡(恒定存在);cap 空=root 绑 5353/组播
|
||||
cap =
|
||||
```
|
||||
|
||||
> `trigger` 为单值枚举(`boot|card-mount|wifi-up`)。板载服务用 `boot`(恒存在即启动);
|
||||
> `wifi-up` 属扩展点(`/sys/class/net/<iface>/operstate`),当前平台无无线接口恒 0。
|
||||
|
||||
## 3. 状态机
|
||||
|
||||
```
|
||||
@@ -112,7 +140,7 @@ FAILED 崩溃且不再重启(超 max_restart / restart=never)
|
||||
优雅停所有服务**并保留 `restart_count`/`last_exit` 状态**;插卡 → `scan_and_reconcile()`
|
||||
重建并按触发拉起。
|
||||
- **`wifi-up`**:读 `/sys/class/net/<iface>/operstate`,无无线接口恒 `0`(扩展点)。
|
||||
- `boot`:配置在卡 → 随卡存在即启动(拔卡即停)。
|
||||
- `boot`:TF 配置在卡 → 随卡存在即启动(拔卡即停);**板载配置**(`src=board`)→ 恒定存在即启动(不依赖卡,拔卡保留,供 mdnsd 等常驻服务)。
|
||||
|
||||
## 6. CLI / 控制协议
|
||||
|
||||
@@ -139,7 +167,8 @@ meow_svcd pid
|
||||
|
||||
## 后续(不在本阶段)
|
||||
|
||||
- 接入 supervisor 启动链(bootmenu/launcher fork+exec、waitpid,`-f` 前台)。
|
||||
- ~~接入 supervisor 启动链~~(已改由 `etc/init.d/S89meow_svcd` 开机自启;bootmenu/launcher
|
||||
`fork+exec` + `waitpid` 托管仍为备选)。
|
||||
- `cap` 真机实装(平台是否支持 capset/pthread caps 待确认;需先探测)。
|
||||
- `wifi-up` 事件细节(是否用 `/proc/net/wireless` / 重试文件,接口判定收紧)。
|
||||
- svcd/服务日志落位到卡 `MeowOS/logs/` 的行为(当前 svcd 日志 stderr + 可选 `--log`)。
|
||||
Reference in new issue
Block a user