feat(powermgr): meow_powermgr 期0调研+期1骨架——功耗管理专项服务(POWER_MANAGER_DESIGN)

期0: POWER_HW_FACTS.md 真机只读取证——battery/无current_now(实时功率=derived+estimated
双轨)、无cpufreq(省电档无降频点)、背光量程0-101(非255)、rfkill可用、axp_battery为
幻影设备、无thermal zones、audiod STATE字段完备。

期1: patch_v2/meow_powermgr/ 单二进制双形态(meow_powermgr守护+meow_power CLI):
- svcd托管 trigger=boot/restart=on-fail;HibyOS只读降级(/tmp/meow_boot_mode!=meow
  只采样电池,不碰wlan0/bt/声卡,热切换)
- 权威充电链0-diff照抄svc_power(mp2731→fusb302→battery兜底)
- 电池深加工 state/cap/mV/health/续航估算(容量差分速率环 30s×240)
- 经验功耗模型(/usr/data/meow/power_model.conf 可调,内置默认全部标注待标定)
- IPC /usr/data/meow_pm.sock MSG_PM_QUERY(0x00D0)→MSG_PM_RESULT(0x00D1) JSON,
  subset位;meow_ipc.h 0x00D0-0x00D7 号段回填
- CLI status/estimate/model 落地(IPC优先+直读降级),history/top/events/policy 期2/3桩
- 宿主桩测试36+1例全过(MEOW_PS_DIR等假节点)+qemu-mipsel全过+真机对照svc_power
  battery口径一致(93%/4270mV);mipsel静态117KB(<200KB);-Wall -Wextra 0 warning
This commit is contained in:
MeowOS committed 2026-09-01 16:21:12 +08:00
1 parent 6a4d330a26
commit 250c9ae8b1
9 files changed
+1413

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
# build_powermgr.sh — meow_powermgr 交叉编译(mipsel 静态)+ 宿主编译可选。
#
# 目标:R3 Pro II / MeowOS(mipsel-linux-muslsf,静态)。powermgr 仅 POSIX + Linux 基接口
# (复用 meow_ipc.h 帧格式,无 launcher 依赖),单文件满足「固件内、不入卡」(<200KB 阈值)。
# 单一二进制双形态:/usr/bin/meow_powermgr(svcd 空参=守护)+ /usr/bin/meow_power(CLI,同一份
# 文件两次安装,argv[0] basename 分形态;fw_content.conf 两行同 src)。
#
# 用法:
# ./build_powermgr.sh # 交叉编译 → patch_v2/meow_powermgr/meow_powermgr(mipsel 静态)
# ./build_powermgr.sh host # 宿主编译 → patch_v2/meow_powermgr/meow_powermgr_host
set -e
cd "$(dirname "$0")"
ROOT="$HOME/Project/R3ProII"
CC="$ROOT/.tools/zig-mipsel-cc"
I_HDR="$ROOT/patch_v2/meow_launcherd" # meow_ipc.h(帧/MSG_PM_*/PM_SUBSET_*/m_pm_*)
if [ "$1" = "host" ]; then
HOST_CC="${CC_HOST:-cc}"
"$HOST_CC" -Os -Wall -Wextra -I"$I_HDR" meow_powermgr.c -o meow_powermgr_host
echo "== host build =="
ls -la meow_powermgr_host
file meow_powermgr_host
exit 0
fi
"$CC" -Os -Wall -Wextra -static -I"$I_HDR" meow_powermgr.c -o meow_powermgr
echo "== meow_powermgr (mipsel static) =="
ls -la meow_powermgr
md5sum meow_powermgr
file meow_powermgr