fix(ucm): use top-level SectionDevice in HiFi.conf for ALSA parser

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
This commit is contained in:
2026-04-08 00:22:55 +08:00
parent 3c7860c96f
commit 5c7d0aa360
3 changed files with 89 additions and 80 deletions

View File

@@ -112,6 +112,14 @@ pactl list short sinks
pactl set-card-profile "$(pactl list cards short | awk '/cml_rt5682/ {print $2; exit}')" HiFi pactl set-card-profile "$(pactl list cards short | awk '/cml_rt5682/ {print $2; exit}')" HiFi
``` ```
**若 `pactl set-card-profile … HiFi` 报「无此实体」**:多半是 **UCM 未成功加载**WirePlumber 因此注册不出 `HiFi` profile。先在终端验证 ALSA 能否解析配置:
```bash
alsaucm -c sof-rt5682 list _verbs
```
若出现 **`parse_verb_file` / `no use case device defined`** 等,说明 **`HiFi.conf` 结构不符合 UCM2 要求**(已修正为「顶层 `SectionDevice`」写法);请 **`git pull`** 后重新执行 **`./scripts/install-kaisa-ucm-overlay.sh`**,再 **`systemctl --user restart wireplumber pipewire pipewire-pulse`**。
**安装(在仓库根目录,需 sudo** **安装(在仓库根目录,需 sudo**
```bash ```bash

View File

@@ -1,8 +1,8 @@
# Google Kaisa — sof-rt5682 / Intel Kabylake HDMI # Google Kaisa — sof-rt5682 / Intel Kabylake HDMI
# HDMI 逻辑名与 ALSA deviceHDMI1=hw:0,2 HDMI2=hw:0,3 HDMI3=hw:0,4以本机 aplay -l 为准) # 本文件由 SectionUseCase."HiFi" 引用;须使用顶层 SectionDevice勿再包一层 SectionVerb
# 可用性由 JackControl 驱动IEC958 在 Enable/Disable 时切换 # 否则 alsaucm 报「no use case device defined」PipeWire 不会出现 HiFi profile
# HDMIdevice 2/3/4JackControl + IEC958 numid 与本机 amixer 对齐。
SectionVerb."HiFi" {
SectionDevice."Port1" { SectionDevice."Port1" {
Comment "Analog (Port1)" Comment "Analog (Port1)"
@@ -83,4 +83,3 @@ SectionVerb."HiFi" {
JackControl "HDMI/DP,pcm=4 Jack" JackControl "HDMI/DP,pcm=4 Jack"
} }
} }
}

View File

@@ -30,4 +30,6 @@ else
echo "(无 user 会话,请登录后执行: systemctl --user restart wireplumber pipewire pipewire-pulse" >&2 echo "(无 user 会话,请登录后执行: systemctl --user restart wireplumber pipewire pipewire-pulse" >&2
fi fi
echo "完成。请按 OPERATION「UCM Jack 自动显示/隐藏」一节验收。" echo "完成。请先验证 UCM 能解析(应列出 HiFi不应报 parse 错误):"
echo " alsaucm -c sof-rt5682 list _verbs"
echo "再按 OPERATION「UCM Jack 自动显示/隐藏」验收 pactl / GNOME。"