不知道这个问题,到时官方能不能修复。
我也遇到了,重启、注销,无效。
平台:i5 12400+A380 index ,音频联显示器【HDMI】。
以下是deepseek方案。
收到!这是典型的 PipeWire 省电机制(Sink Suspend) 在闲置后自动将音频设备挂起,导致声音无声。您当前加载的 my_analog sink 可能被挂起,或者默认 sink 被系统重置回 HDMI 或数字输出。
🔍 第一步:诊断当前状态
请执行以下命令,并将输出发给我:
pactl list sinks short
pactl get-default-sink
这会显示所有 sink 及其状态(是否 SUSPENDED),以及当前默认 sink 是哪个。
💡 临时解决:手动唤醒并重新设置默认
如果发现 my_analog 存在但状态为 SUSPENDED,您只需唤醒它:
pactl set-sink-suspend my_analog 0 # 0=唤醒,1=挂起
pactl set-default-sink my_analog
然后播放音频(如 speaker-test),应该会恢复声音。
🔧 永久解决:调整 PipeWire 省电策略
方法一:在自动启动脚本中加入唤醒命令(推荐,安全)
修改我们之前创建的 setup_audio.desktop,让它不仅加载 sink,还额外设置禁用挂起:
cat > ~/.config/autostart/setup_audio.desktop << 'EOF'
[Desktop Entry]
Type=Application
Name=Setup Analog Sink
Exec=bash -c "sleep 3 && pactl load-module module-alsa-sink device=hw:0,0 sink_name=my_analog && pactl set-default-sink my_analog && pactl set-sink-suspend my_analog 0"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
EOF
重启后,每次登录都会唤醒 sink 并设为默认。
方法二:全局禁用 PipeWire 设备挂起(更彻底,但需注意配置文件)
既然您曾因配置文件出错导致服务启动失败,我推荐使用环境变量或用户配置方式来禁用挂起,避免语法错误。
创建用户级 PipeWire 配置(禁用挂起)
创建一个只包含 suspend 设置的配置文件,不涉及模块加载(避免语法风险):
mkdir -p ~/.config/pipewire/pipewire.conf.d
cat > ~/.config/pipewire/pipewire.conf.d/99-disable-suspend.conf << 'EOF'
context.properties = {
# 禁用所有声卡的自动挂起(超时设为0表示永不挂起)
default.clock.quantum-limit = 8192
}
alsa.properties = {
# 针对 ALSA 设备,设置挂起超时为 0(禁用)
suspend-timeout = 0
}
EOF
注意:这个文件只包含 context.properties 和 alsa.properties,不涉及模块加载,语法风险极低。但为了安全,请先测试:保存后执行 systemctl --user restart pipewire,如果服务正常启动,则永久生效。
如果担心,可以先用下面的方法三。
方法三:使用 pactl 定期唤醒(脚本循环)
在后台启动一个脚本,每隔几分钟检查并唤醒 sink。您可以将其加入自动启动,但稍显复杂,暂不推荐。
🚨 如果 my_analog sink 在闲置后消失
有时 PipeWire 在挂起后可能完全卸载动态加载的模块。这种情况下,我们可以在自动启动脚本中每次都重新加载(因为加载模块是幂等的,如果已存在会报错但无妨),所以我们的脚本其实已经包含了加载命令,它会在每次登录时重新加载一次,但如果系统在运行中卸载了模块,就无法自动恢复。
您可以考虑定时检测,将脚本放在 crontab 中每分钟检测一次,但较耗资源,不推荐。
✅ 最终建议
- 先执行第一步的诊断命令,告诉我当前状态。
- 根据状态,我们可以选用上述方法一(修改自动启动脚本)或方法二(禁用挂起)。
- 无论哪种,您都可以立即手动唤醒并恢复声音。
最稳妥的做法:修改自动启动脚本,加入唤醒命令,这样每次登录都正常,并且闲置后若再次挂起,您只需再次执行 pactl set-sink-suspend my_analog 0 即可(可以通过快捷键或点击一个桌面图标实现)。
如果您希望彻底禁用挂起,我可以帮您安全地创建配置文件(方法二),您只需复制粘贴,风险极小。
请先提供 pactl list sinks short 的输出,我会进一步为您定制解决方案。😊
我也遇到了,重启、注销,无效。
平台:i5 12400+A380 index ,音频联显示器【HDMI】。
以下是deepseek方案。
收到!这是典型的 PipeWire 省电机制(Sink Suspend) 在闲置后自动将音频设备挂起,导致声音无声。您当前加载的 my_analog sink 可能被挂起,或者默认 sink 被系统重置回 HDMI 或数字输出。
🔍 第一步:诊断当前状态
请执行以下命令,并将输出发给我:
pactl list sinks short
pactl get-default-sink
这会显示所有 sink 及其状态(是否 SUSPENDED),以及当前默认 sink 是哪个。
💡 临时解决:手动唤醒并重新设置默认
如果发现 my_analog 存在但状态为 SUSPENDED,您只需唤醒它:
pactl set-sink-suspend my_analog 0 # 0=唤醒,1=挂起
pactl set-default-sink my_analog
然后播放音频(如 speaker-test),应该会恢复声音。
🔧 永久解决:调整 PipeWire 省电策略
方法一:在自动启动脚本中加入唤醒命令(推荐,安全)
修改我们之前创建的 setup_audio.desktop,让它不仅加载 sink,还额外设置禁用挂起:
cat > ~/.config/autostart/setup_audio.desktop << 'EOF'
[Desktop Entry]
Type=Application
Name=Setup Analog Sink
Exec=bash -c "sleep 3 && pactl load-module module-alsa-sink device=hw:0,0 sink_name=my_analog && pactl set-default-sink my_analog && pactl set-sink-suspend my_analog 0"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
EOF
重启后,每次登录都会唤醒 sink 并设为默认。
方法二:全局禁用 PipeWire 设备挂起(更彻底,但需注意配置文件)
既然您曾因配置文件出错导致服务启动失败,我推荐使用环境变量或用户配置方式来禁用挂起,避免语法错误。
创建用户级 PipeWire 配置(禁用挂起)
创建一个只包含 suspend 设置的配置文件,不涉及模块加载(避免语法风险):
mkdir -p ~/.config/pipewire/pipewire.conf.d
cat > ~/.config/pipewire/pipewire.conf.d/99-disable-suspend.conf << 'EOF'
context.properties = {
# 禁用所有声卡的自动挂起(超时设为0表示永不挂起)
default.clock.quantum-limit = 8192
}
alsa.properties = {
# 针对 ALSA 设备,设置挂起超时为 0(禁用)
suspend-timeout = 0
}
EOF
注意:这个文件只包含 context.properties 和 alsa.properties,不涉及模块加载,语法风险极低。但为了安全,请先测试:保存后执行 systemctl --user restart pipewire,如果服务正常启动,则永久生效。
如果担心,可以先用下面的方法三。
方法三:使用 pactl 定期唤醒(脚本循环)
在后台启动一个脚本,每隔几分钟检查并唤醒 sink。您可以将其加入自动启动,但稍显复杂,暂不推荐。
🚨 如果 my_analog sink 在闲置后消失
有时 PipeWire 在挂起后可能完全卸载动态加载的模块。这种情况下,我们可以在自动启动脚本中每次都重新加载(因为加载模块是幂等的,如果已存在会报错但无妨),所以我们的脚本其实已经包含了加载命令,它会在每次登录时重新加载一次,但如果系统在运行中卸载了模块,就无法自动恢复。
您可以考虑定时检测,将脚本放在 crontab 中每分钟检测一次,但较耗资源,不推荐。
✅ 最终建议
- 先执行第一步的诊断命令,告诉我当前状态。
- 根据状态,我们可以选用上述方法一(修改自动启动脚本)或方法二(禁用挂起)。
- 无论哪种,您都可以立即手动唤醒并恢复声音。
最稳妥的做法:修改自动启动脚本,加入唤醒命令,这样每次登录都正常,并且闲置后若再次挂起,您只需再次执行 pactl set-sink-suspend my_analog 0 即可(可以通过快捷键或点击一个桌面图标实现)。
如果您希望彻底禁用挂起,我可以帮您安全地创建配置文件(方法二),您只需复制粘贴,风险极小。
请先提供 pactl list sinks short 的输出,我会进一步为您定制解决方案。😊
下面是glm-5.3给的答案
为什么不适合
| 对比项 | 评论里的情况(剑风澜) | 你的情况 |
|---|---|---|
| 硬件 | Intel i5-12400 +A380 显卡 + HDMI | RX 6600 XT + DP 连接 |
| 故障性质 | PipeWire 省电挂起(软件层:sink 闲置后 SUSPENDED) | DP 链路音频通道损坏(驱动/硬件协商层) |
| 触发条件 | 音频闲置一段时间后无声 | 显示器休眠唤醒后无声(与闲置无关) |
| 重启能否恢复 | 他重启/注销也无效 | 你重启/注销能恢复(我们验证过) |
他的 my_analog |
自己 module-alsa-sink 加载的板载声卡自定义 sink |
你的 HDMI sink 是系统自动管理的,根本没有这个 sink |
当时的诊断早已排除这个方向
9 月 5 日排查时我们确认过你的软件层完全正常:
- sink 状态正常、Firefox 流正在播放、音量 80%、无 SUSPENDED
- 裸 ALSA
aplay也能"成功播放”(但无声) - 问题出在 GPU 音频控制器与显示器的 DP 协商层——所以
pactl set-sink-suspend唤醒、PipeWire 配置这些都够不到故障层
下面是glm-5.3给的答案
为什么不适合
| 对比项 | 评论里的情况(剑风澜) | 你的情况 |
|---|---|---|
| 硬件 | Intel i5-12400 +A380 显卡 + HDMI | RX 6600 XT + DP 连接 |
| 故障性质 | PipeWire 省电挂起(软件层:sink 闲置后 SUSPENDED) | DP 链路音频通道损坏(驱动/硬件协商层) |
| 触发条件 | 音频闲置一段时间后无声 | 显示器休眠唤醒后无声(与闲置无关) |
| 重启能否恢复 | 他重启/注销也无效 | 你重启/注销能恢复(我们验证过) |
他的 my_analog |
自己 module-alsa-sink 加载的板载声卡自定义 sink |
你的 HDMI sink 是系统自动管理的,根本没有这个 sink |
当时的诊断早已排除这个方向
9 月 5 日排查时我们确认过你的软件层完全正常:
- sink 状态正常、Firefox 流正在播放、音量 80%、无 SUSPENDED
- 裸 ALSA
aplay也能"成功播放”(但无声) - 问题出在 GPU 音频控制器与显示器的 DP 协商层——所以
pactl set-sink-suspend唤醒、PipeWire 配置这些都够不到故障层
那不知道......排查了很久的。
这是最后一版,才搞定了,现在用着正常了。
这个症状是最近出现的吗?之前只在国产的部分硬件上遇到过休眠唤醒后没有声音的问题
这个症状是最近出现的吗?之前只在国产的部分硬件上遇到过休眠唤醒后没有声音的问题
在我的电脑上这个癌症就一直没有好过。不管是在x11还 是treeland下都会随时出现。而且不闲眠也会一不小就出现。特别是声音切换容易出现。
我也遇到了,重启、注销,无效。
平台:i5 12400+A380 index ,音频联显示器【HDMI】。
以下是deepseek方案。
收到!这是典型的 PipeWire 省电机制(Sink Suspend) 在闲置后自动将音频设备挂起,导致声音无声。您当前加载的 my_analog sink 可能被挂起,或者默认 sink 被系统重置回 HDMI 或数字输出。
🔍 第一步:诊断当前状态
请执行以下命令,并将输出发给我:
pactl list sinks short
pactl get-default-sink
这会显示所有 sink 及其状态(是否 SUSPENDED),以及当前默认 sink 是哪个。
💡 临时解决:手动唤醒并重新设置默认
如果发现 my_analog 存在但状态为 SUSPENDED,您只需唤醒它:
pactl set-sink-suspend my_analog 0 # 0=唤醒,1=挂起
pactl set-default-sink my_analog
然后播放音频(如 speaker-test),应该会恢复声音。
🔧 永久解决:调整 PipeWire 省电策略
方法一:在自动启动脚本中加入唤醒命令(推荐,安全)
修改我们之前创建的 setup_audio.desktop,让它不仅加载 sink,还额外设置禁用挂起:
cat > ~/.config/autostart/setup_audio.desktop << 'EOF'
[Desktop Entry]
Type=Application
Name=Setup Analog Sink
Exec=bash -c "sleep 3 && pactl load-module module-alsa-sink device=hw:0,0 sink_name=my_analog && pactl set-default-sink my_analog && pactl set-sink-suspend my_analog 0"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
EOF
重启后,每次登录都会唤醒 sink 并设为默认。
方法二:全局禁用 PipeWire 设备挂起(更彻底,但需注意配置文件)
既然您曾因配置文件出错导致服务启动失败,我推荐使用环境变量或用户配置方式来禁用挂起,避免语法错误。
创建用户级 PipeWire 配置(禁用挂起)
创建一个只包含 suspend 设置的配置文件,不涉及模块加载(避免语法风险):
mkdir -p ~/.config/pipewire/pipewire.conf.d
cat > ~/.config/pipewire/pipewire.conf.d/99-disable-suspend.conf << 'EOF'
context.properties = {
# 禁用所有声卡的自动挂起(超时设为0表示永不挂起)
default.clock.quantum-limit = 8192
}
alsa.properties = {
# 针对 ALSA 设备,设置挂起超时为 0(禁用)
suspend-timeout = 0
}
EOF
注意:这个文件只包含 context.properties 和 alsa.properties,不涉及模块加载,语法风险极低。但为了安全,请先测试:保存后执行 systemctl --user restart pipewire,如果服务正常启动,则永久生效。
如果担心,可以先用下面的方法三。
方法三:使用 pactl 定期唤醒(脚本循环)
在后台启动一个脚本,每隔几分钟检查并唤醒 sink。您可以将其加入自动启动,但稍显复杂,暂不推荐。
🚨 如果 my_analog sink 在闲置后消失
有时 PipeWire 在挂起后可能完全卸载动态加载的模块。这种情况下,我们可以在自动启动脚本中每次都重新加载(因为加载模块是幂等的,如果已存在会报错但无妨),所以我们的脚本其实已经包含了加载命令,它会在每次登录时重新加载一次,但如果系统在运行中卸载了模块,就无法自动恢复。
您可以考虑定时检测,将脚本放在 crontab 中每分钟检测一次,但较耗资源,不推荐。
✅ 最终建议
- 先执行第一步的诊断命令,告诉我当前状态。
- 根据状态,我们可以选用上述方法一(修改自动启动脚本)或方法二(禁用挂起)。
- 无论哪种,您都可以立即手动唤醒并恢复声音。
最稳妥的做法:修改自动启动脚本,加入唤醒命令,这样每次登录都正常,并且闲置后若再次挂起,您只需再次执行 pactl set-sink-suspend my_analog 0 即可(可以通过快捷键或点击一个桌面图标实现)。
如果您希望彻底禁用挂起,我可以帮您安全地创建配置文件(方法二),您只需复制粘贴,风险极小。
请先提供 pactl list sinks short 的输出,我会进一步为您定制解决方案。😊
pipewire对所有的设备都会在暂停播放或者没有声音后进入挂起状态,这个是正常的。但是下次播放它又会进入到running状态。可以试试用系统音乐播放器,这个因为接口特性不会在暂停播放时进入suspend
pipewire对所有的设备都会在暂停播放或者没有声音后进入挂起状态,这个是正常的。但是下次播放它又会进入到running状态。可以试试用系统音乐播放器,这个因为接口特性不会在暂停播放时进入suspend
问题是不会running啊,现在只能每次跑脚本唤醒
HDMI也一样的。
问题是不会running啊,现在只能每次跑脚本唤醒
HDMI也一样的。
我也是,只要没有声音了就运行脚本,暂时也只能这样。
我也是,只要没有声音了就运行脚本,暂时也只能这样。

Popular Ranking
ChangePopular Events
More

中文 


在deepin下用hdmi做音频输出时,会遇到突然没有声音的情况。
以前都要注销系统或重启。这样会比较麻烦,后来就用ai写了一个脚本。
如果遇到突然没有声音了就运行一下脚本。
这样就不会关闭打开或退出已经打开的文件或程序,只是电脑屏幕会闪两下,这样声音就正常了。下面是脚本代码。
可以用ai根据自己的实际情况进行完善。