小智 14
相关的配置文件是/usr/share/wireplumber/main.lua.d/50-alsa-config.lua
,但不要编辑它的系统版本!
您需要将其复制到/etc/wireplumber/main.lua.d/
(全局配置)或~/.config/wireplumber/main.lua.d/
(用户配置)并进行必要的更改。
最简单的方法是将其复制到全局配置位置,以便它适用于所有用户帐户:
sudo cp -a /usr/share/wireplumber/main.lua.d/50-alsa-config.lua /etc/wireplumber/main.lua.d/50-alsa-config.lua
sudo nano /etc/wireplumber/main.lua.d/50-alsa-config.lua
Run Code Online (Sandbox Code Playgroud)
然后,您需要向下滚动到文件底部的该apply_properties
部分,并在其中添加一行:
["session.suspend-timeout-seconds"] = 0
Run Code Online (Sandbox Code Playgroud)
我做了更多的改变并为我自己的个人硬件定制了它。这是我的配置供参考,但此配置仅对我的确切设备有用。实际上,您只需要上面的行即可禁用自动挂起。将其添加到您自己的默认配置中。不要复制我的配置。我所做的其他更改是无关的。
alsa_monitor.properties = {
["alsa.jack-device"] = true,
["alsa.reserve"] = true,
["alsa.midi.monitoring"] = true
}
alsa_monitor.rules = {
{
matches = {
{
{ "device.name", "matches", "alsa_card.*" }
}
},
apply_properties = {
["api.alsa.use-acp"] = true,
["api.acp.auto-profile"] = false,
["api.acp.auto-port"] = false
}
},
{
matches = {
{
{ "node.name", "matches", "alsa_output.pci-0000_0c_00.4.iec958-ac3-surround-51" }
}
},
apply_properties = {
["api.alsa.period-size"] = 128,
["api.alsa.headroom"] = 2048,
["session.suspend-timeout-seconds"] = 0
}
},
{
matches = {
{
{ "node.name", "matches", "alsa_input.usb-BEHRINGER_UMC202HD_192k-00.analog-mono" }
}
},
apply_properties = {
["api.alsa.period-size"] = 128
}
}
}
Run Code Online (Sandbox Code Playgroud)
设置该session.suspend-timeout-seconds
属性以0
防止挂起/睡眠行为。它完全禁用了该行为,如 WirePlumber 的源代码中所示。
必须重新启动 WirePlumber 才能使更改生效:
systemctl --user restart wireplumber
Run Code Online (Sandbox Code Playgroud)