From 3c7860c96f84145eb134436d1ef55b45fe21f40e Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 8 Apr 2026 00:19:58 +0800 Subject: [PATCH] fix(wp): force HiFi profile for Kaisa UCM so HDMI routes appear WirePlumber often kept stereo-fallback when only enabling use-ucm, hiding HDMI. Set device.profile to HiFi, disable api.acp.auto-profile, and document recovery. Made-with: Cursor --- docs/linux-hdmi/OPERATION_PipeWire_Kaisa_HDMI.md | 8 +++++++- wireplumber/main.lua.d/60-kaisa-ucm.lua | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/docs/linux-hdmi/OPERATION_PipeWire_Kaisa_HDMI.md b/docs/linux-hdmi/OPERATION_PipeWire_Kaisa_HDMI.md index c3ec7de02c..92eb746e04 100644 --- a/docs/linux-hdmi/OPERATION_PipeWire_Kaisa_HDMI.md +++ b/docs/linux-hdmi/OPERATION_PipeWire_Kaisa_HDMI.md @@ -104,7 +104,13 @@ pactl list short sinks ### UCM Jack:自动显示/隐藏(安装与验收) -**思路**:UCM2 在 **[`reference/ucm2/GoogleKaisa/sof-rt5682/HiFi.conf`](../../reference/ucm2/GoogleKaisa/sof-rt5682/HiFi.conf)** 为 **HDMI1/2/3** 配置 **`JackControl "HDMI/DP,pcm=N Jack"`** 与 **`IEC958`** 开关序列;WirePlumber 通过 **[`wireplumber/main.lua.d/60-kaisa-ucm.lua`](../../wireplumber/main.lua.d/60-kaisa-ucm.lua)** 对 **`sof-rt5682`** 启用 **`api.alsa.use-ucm`** / **`api.acp.auto-port`**,让 ACP 按端口可用性暴露路由(**Jack off 时该 HDMI 设备不应对桌面表现为随意可用**)。 +**思路**:UCM2 在 **[`reference/ucm2/GoogleKaisa/sof-rt5682/HiFi.conf`](../../reference/ucm2/GoogleKaisa/sof-rt5682/HiFi.conf)** 为 **HDMI1/2/3** 配置 **`JackControl "HDMI/DP,pcm=N Jack"`** 与 **`IEC958`** 开关序列;WirePlumber 通过 **[`wireplumber/main.lua.d/60-kaisa-ucm.lua`](../../wireplumber/main.lua.d/60-kaisa-ucm.lua)** 对 **`sof-rt5682`** 启用 **`api.alsa.use-ucm`**、**`device.profile = "HiFi"`**(并关闭 **`api.acp.auto-profile`**,避免默认抢 **stereo-fallback**),再开 **`api.acp.auto-port`**,让 ACP 按端口可用性暴露路由(**Jack off 时该 HDMI 不对桌面表现为随意可用**)。 + +**若安装后只剩模拟/耳机、HDMI 全消失**:先看 **`pactl list cards`** 里 **活动配置** 是否为 **`stereo-fallback`**。若是,说明未切到 UCM 的 **`HiFi`**。请 **`sudo cp` 更新后的 `60-kaisa-ucm.lua`** 并 **`systemctl --user restart wireplumber pipewire pipewire-pulse`**,或手动切 profile: + +```bash +pactl set-card-profile "$(pactl list cards short | awk '/cml_rt5682/ {print $2; exit}')" HiFi +``` **安装(在仓库根目录,需 sudo)**: diff --git a/wireplumber/main.lua.d/60-kaisa-ucm.lua b/wireplumber/main.lua.d/60-kaisa-ucm.lua index 5efe541e73..4b60bc83ad 100644 --- a/wireplumber/main.lua.d/60-kaisa-ucm.lua +++ b/wireplumber/main.lua.d/60-kaisa-ucm.lua @@ -1,5 +1,8 @@ -- Kaisa (sof-rt5682): enable UCM + ACP so HiFi profile / Jack-driven ports work. -- WirePlumber 0.4.x: appended after stock alsa rules. +-- +-- 若仅启用 use-ucm 而不固定 profile,栈常会默认选 stereo-fallback,界面只剩模拟/耳机,HDMI 消失。 +-- 固定为 UCM 中 SectionUseCase 名 "HiFi";并关闭 auto-profile,避免抢回 stereo-fallback。 table.insert(alsa_monitor.rules, { matches = { @@ -10,7 +13,8 @@ table.insert(alsa_monitor.rules, { apply_properties = { ["api.alsa.use-acp"] = true, ["api.alsa.use-ucm"] = true, - ["api.acp.auto-profile"] = true, + ["api.acp.auto-profile"] = false, ["api.acp.auto-port"] = true, + ["device.profile"] = "HiFi", }, })