Nested SectionVerb caused alsaucm "no use case device defined", so PipeWire never exposed the HiFi profile. Document alsaucm check and reinstall path. Made-with: Cursor
36 lines
1.4 KiB
Bash
Executable File
36 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# 将仓库内 UCM2 overlay 与 WirePlumber Lua 安装到系统路径(需 sudo)。
|
||
# 用法:在仓库根目录执行 ./scripts/install-kaisa-ucm-overlay.sh
|
||
# 安装前请先运行 ./scripts/disable-kaisa-pro-audio-wireplumber.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 "再按 OPERATION「UCM Jack 自动显示/隐藏」验收 pactl / GNOME。"
|