[Contribute Advice] 关于pcie独立声卡自动省电问题
Tofloor
poster avatar
ksgt0025
deepin
2025-11-29 03:53
Author

我的声卡有继电器,每次没有声音播放的时候,声卡就会进入省电模式,检测到需要有声音播放需求的软件或者有声音的网页时系统才会给声卡上电。当然这不是我的声卡自有的功能,而是linux系统省电机制问题。我用了不同的发行版,发现都有这个问题,我试着把性能模式改为高性能模式,但是也没能解决这个问题。这个问题会导致声卡的继电器来回的吸合,尤其是在晚上继电器的声音哒哒哒的声音令人烦躁。我通过DeepSeek,尝试了很多种方案,依次排除,寻得了一种较为完美的解决方案。方法就是创建一个udev的规则,并且在开机前自动运行这个规则文件。

创建udev规则:

sudo nano /etc/udev/rules.d/90-sound-power.rules

规则代码:

# 禁用声卡电源管理
SUBSYSTEM=="sound", ACTION=="add", RUN+="/bin/bash -c 'echo N > /sys/module/snd_hda_intel/parameters/power_save_controller'"
SUBSYSTEM=="sound", ACTION=="add", RUN+="/bin/bash -c 'echo 0 > /sys/module/snd_hda_intel/parameters/power_save'"
SUBSYSTEM=="sound", ACTION=="change", RUN+="/bin/bash -c 'echo N > /sys/module/snd_hda_intel/parameters/power_save_controller'"
SUBSYSTEM=="sound", ACTION=="change", RUN+="/bin/bash -c 'echo 0 > /sys/module/snd_hda_intel/parameters/power_save'"

创建脚本:

sudo nano /etc/systemd/system/udev-reload.service

创建服务规则代码:

[Unit]
Description=Reload Udev Rules with Delay
After=systemd-udevd.service multi-user.target
Wants=systemd-udevd.service

[Service]
Type=oneshot
Environment=PATH=/bin:/usr/bin:/sbin:/usr/sbin
ExecStartPre=/bin/sleep 15
ExecStart=/bin/udevadm control --reload-rules
ExecStart=/bin/udevadm trigger
RemainAfterExit=yes
TimeoutSec=60
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

启用服务后重启电脑:

sudo systemctl enable udev-reload.service
sudo systemctl start udev-reload.service

重启后敲入命令,如果分别是N和0则代表成功:

cat /sys/module/snd_hda_intel/parameters/power_save_controller
cat /sys/module/snd_hda_intel/parameters/power_save

在6.12.33内核下上面代码可用,升级系统后会有一个BUG,只要切换电源模式就会失效,需要重启,不重启没事。

希望官方能重视一下这个问题,并且以更简洁的代码去解决这个问题。比如选择高性能和平衡模式的时候声卡不进行省电,选择节能模式可以节能。

Reply Favorite View the author
All Replies
jjcui8595
deepin
Resources Team
2025-11-29 07:01
#1

like

Reply View the author
深蓝
deepin
2025-11-29 23:19
#2

待机或者休眠后,声音变小;还有平时听着听着,声音突然变小,是不是也是这个原因(声卡就会进入省电模式)导致的?

Reply View the author
ksgt0025
deepin
2025-12-01 14:56
#3
It has been deleted!
ksgt0025
deepin
2025-12-01 14:56
#4
深蓝

待机或者休眠后,声音变小;还有平时听着听着,声音突然变小,是不是也是这个原因(声卡就会进入省电模式)导致的?

很大概率是这样,你可以试一下。不过要注意其中的代码,不是每个声卡都是“snd_hda_intel”,你要看你的声卡是哪种代码,要替换。如果不是这个问题,把代码和服务删除就好了,不懂怎么删,直接把代码复制到deepseek问它怎么删,就行。我的这些代码都是deepseek告诉我的。

Reply View the author