A1: meow_audiod 独占音频服务(agent-244 骨架 + agent-246 真机收尾)

- meow_audiod:启动门控(/tmp/meow_boot_mode 非 meow exit 0)、IO/播放/路由三线程、
  ring ~200ms、ALSA UAPI 独占直开、切率 mute-重配-恢复、抢占(后开赢+PREEMPTED)、
  socket EOF 回收、xrun PREPARE 恢复;meow_route 轮询逻辑并入路由线程
- meow_audio CLI:status/tone/route/vol;services.d/audiod.conf(trigger=manual,on-fail)
- SDK meow_ui_audio.c 编进 meow_ui.a:懒连接/读线程分发 PREEMPTED 回调/EPIPE 标死/
  无 audiod 返回 MEOW_ERR_NOENT 不隐式直开(MEOW_AUDIO_DIRECT=1 仅调试)
- launcher:确认 MeowOS 模式后 meow_svcd start audiod(double-fork best-effort 不阻塞)
- meow_route 退役:S89 预置换 audiod.conf + 清理旧 meow_route.conf(防拉起已删二进制
  重启循环);fw_content.conf 删 meow_route、加 meow_audiod+meow_audio(md5 打包时填)
- 真机定位并修复 ALSA UAPI 两大坑(即 ncm 播放无声根因):
  ① hw_params 须全放行初始化(mask 全 1/interval [0,UINT_MAX]),memset 0 interval
     等价只能取 0 → refine 必空 → HW_PARAMS 恒 EINVAL
  ② access/format mask 先清零再单点(pmask 只 OR),全 1 被 choose 成 MMAP_INTERLEAVED
     → write() 恒 EINVAL
- 附带修复:dev_write fd<0 防日志风暴丢 PCM 限频日志;SDK state 解析 app_id 截空白;
  meow_ui.h 文档负错误码表述修正
- 验证:宿主 FILE sink 全 IPC 链+抢占+tone WAV 20/20,SDK 客户端 13/13;
  qemu-mipsel 同过;真机 tone 44.1k/96k 切率 written=played、underrun=0、日志完整
- meow_ui.a 53a3edd2 → ncm 重链 d2031829(已热更到卡);launcher a2f932a1
This commit is contained in:
MeowOS committed 2026-08-31 22:40:08 +08:00
1 parent 94874107b6
commit ade0a57353
24 files changed
+2795 -11

No files matched your search

+4 -3
View File
@@ -28,7 +28,7 @@
# ---- 用户态/服务守护二进制(usr/bin,全部 chmod 755 静态 MIPS)----
patch_v2/bootmenu/meow_bootmenu|/usr/bin/meow_bootmenu|4441822d87e76bfce2ce584604ac3830|引导选单 M2.85(sysui让位 agent-216)
patch_v2/meow_launcherd/meow_launcherd|/usr/bin/meow_launcherd|3c1bf9c04a3b0d06d2ecf8e7056f3837|主屏 launcher M2.89(开机选单期不抢屏回归修复)
patch_v2/meow_launcherd/meow_launcherd|/usr/bin/meow_launcherd|a2f932a1534ac2bb035d39a4d1bcca46|主屏 launcher(+拉起 audiod:MeowOS 模式确认后 meow_svcd start audiod agent-244)
patch_v2/meow_watchdog/meow_watchdog|/usr/bin/meow_watchdog|6373d8e5cac62a34ee468a344b267761|应用看门狗 M2.89(SIGUSR1 仅裸沉浸 App,框架 App 不误杀 agent-236)
patch_v2/meow_svcd/meow_svcd|/usr/bin/meow_svcd|605646c4cc93f2baf29071ea6bc870ea|服务管理器 M2.77(+崩溃上报 meow_crash agent-187)
mips-repo/bins/meow_mdns/bin/meow_mdns|/usr/bin/meow_mdns|d6b0151bda26768f19952dae1342610d|mDNS 应答器 M2.78(启动竞态+换IP重检 agent-194)
@@ -37,12 +37,13 @@ patch_v2/meowpkg/nyai|/usr/bin/nyai|2858c3bd8f57fb723df82cb97b488f31|nyai M2.89
patch_v2/meow_svc_power/meow_svc_power|/usr/bin/meow_svc_power|306df962d319f16169b14fb808c6a738|电源专项服务 2B(面板精确绑定)
patch_v2/meow_verify/meow_verify|/usr/bin/meow_verify|6c2e8ed24aebe5caf41e7aed391312d5|II期验签 2B(多公钥+v2签名块 agent-221)
patch_v2/meow_crash/meow_crash|/usr/bin/meow_crash|62781084445e82351bcadbdadbe4c7fc|系统级崩溃捕获 (agent-187)
patch_v2/meow_route/meow_route|/usr/bin/meow_route|fa2b80be5efebefffa032f08c6aae25c|音频输出路由自动跟随插孔 (agent-220)
patch_v2/meow_svc_perf/meow_svc_perf|/usr/bin/meow_svc_perf|7ea196de9d59ab8cbd1e26edb7762772|性能专项服务 M2.75(net_json 补 network 闭合括号,修 /api/system JSON 解析失败)
patch_v2/meow_audiod/meow_audiod|/usr/bin/meow_audiod||独占音频守护 A1(AUDIOD_DESIGN.md;独占开卡/格式归一/抢占/路由并入;md5 打包时统一填 agent-244)
patch_v2/meow_audiod/meow_audio|/usr/bin/meow_audio||audiod 用户侧 CLI(status/tone/route/vol;md5 打包时统一填 agent-244)
# ---- 开机 init 脚本(etc/init.d,数字决定启动顺序,按文件名自然序)----
patch_v2/meow_sysui/S70meow_sysui|/etc/init.d/S70meow_sysui|e435affcb56499e5229728c6ae2524b9|sysui 自启 M2.85(launcher.conf enabled=1+迁移)
patch_v2/meow_svcd/S89meow_svcd|/etc/init.d/S89meow_svcd|d293dd517953a948a0b35766d0a6ff25|svcd 自启 M2.88(+预置 meow_route.conf)
patch_v2/meow_svcd/S89meow_svcd|/etc/init.d/S89meow_svcd|77da8236453f763d9f09a02e2736b798|svcd 自启(meow_route.conf → audiod.conf + 清理旧 route conf,预置独占音频服务 agent-244/246)
patch_v2/meow_amsd/meow_amsd|/usr/bin/meow_amsd|c6c2eda2d63ac73c4b6fac29008e0c9b|活动管理器 M2.89(陈旧revents丢连接/收发超时/自动重连 agent-238)
patch_v2/meow_amsd/am|/usr/bin/am|d687d8bc87df102e625e6482b0423430|amsd 用户侧CLI(+resolve/picker)
patch_v2/bootmenu/S90meow_bootmenu|/etc/init.d/S90meow_bootmenu|e0ace111ce5ee446a1e3c6605ac1e9c9|bootmenu 自启 M2.85(注释同步)