#!/usr/bin/env bash # 将仓库内 UCM2 overlay 与 WirePlumber Lua 安装到系统路径(需 sudo)。 # 用法:在仓库根目录执行 ./scripts/install-kaisa-ucm-overlay.sh # 安装前请先运行 ./scripts/disable-kaisa-pro-audio-wireplumber.sh # 卸载同路径 overlay:./scripts/remove-kaisa-ucm-overlay.sh set -euo pipefail REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" if [[ ! -f "$REPO_ROOT/reference/ucm2/conf.d/sof-rt5682/sof-rt5682.conf" ]]; then echo "未找到 UCM 文件,请在仓库根目录执行。" >&2 exit 1 fi if ! command -v sudo &>/dev/null; then echo "需要 sudo。" >&2 exit 1 fi echo ">>> 安装 UCM2 -> /usr/share/alsa/ucm2/" sudo cp -a "$REPO_ROOT/reference/ucm2/conf.d/sof-rt5682" /usr/share/alsa/ucm2/conf.d/ sudo cp -a "$REPO_ROOT/reference/ucm2/GoogleKaisa" /usr/share/alsa/ucm2/ echo ">>> 安装 WirePlumber Lua -> /usr/share/wireplumber/main.lua.d/" sudo install -D -m0644 "$REPO_ROOT/wireplumber/main.lua.d/60-kaisa-ucm.lua" \ /usr/share/wireplumber/main.lua.d/60-kaisa-ucm.lua echo ">>> 重启用户 pipewire 栈" if systemctl --user is-system-running &>/dev/null; then systemctl --user restart wireplumber pipewire pipewire-pulse else echo "(无 user 会话,请登录后执行: systemctl --user restart wireplumber pipewire pipewire-pulse)" >&2 fi echo "完成。请先验证 UCM 能解析(应列出 HiFi,不应报 parse 错误):" echo " alsaucm -c sof-rt5682 list _verbs" echo "再按 docs/linux-hdmi/OPERATION_PipeWire_Kaisa_UCM_HiFi.md 验收 pactl / GNOME。"