Gle*_*len 18 audio linux speakers ubuntu-18.04
你好超级用户社区,
我是 Linux Ubuntu 的新手,长期的 Windows 用户,很高兴我正在转换。在设置我的台式 PC 时,我每 2 秒就会听到一次烦人且重复的扬声器“砰”声。无论音量大小,都会发生此爆音。如果我将音频插孔从扬声器上拔下,它会停止,只需使用主板内置的扬声器即可。如果我播放声音,则在播放声音时会停止爆音,并在大约 5 秒后恢复。
我正在运行 Linux Ubuntu 18.04.3 LTS。系统信息报告了两个音频适配器,HDA-Intel - HDA ATI SB 和 HDA-Intel - HDA NVidia
我最终找到了这个问题的解决方案,但我没有足够的声望点来发布问答。
Gle*_*len 28
操作系统的默认行为是通过在 10 秒后关闭音频适配器来节省电量。此节电功能会导致爆音,并且可以禁用。
在终端输入sudo nano /sys/module/snd_hda_intel/parameters/power_save
并将值从 1 更改为 0。
然后键入sudo nano /sys/module/snd_hda_intel/parameters/power_save_controller
并将值从 Y 更改为 N。
在我的系统上,这立即解决了音频爆裂问题。但是在重新启动时,问题又回来了,我发现这些值已被重置。为了保持这些值的持久性,我不得不/etc/modprobe.d/alsa-base.conf
在文件的最后一行代码之后添加一行代码,options snd-hda-intel power_save=0 power_save_controller=N
保存文件,你就可以开始了!
我的大部分信息都来自这个视频:https : //www.youtube.com/watch?v=Pdmy8dMWitg
我不得不拼凑“重启后的持久性”部分,即使我没有安装 TLP,我的设置也确实重置了。请注意,视频另有说法。
在我弄清楚这一点之前,我对 Ubuntu 感到非常沮丧。我希望这可以帮助很多人解决他们的音频问题!
作为@Glen 回答的后续,这是一个执行任务的脚本:
fix_ubuntu_18_04_sound_pop_issue(){
__heredoc__="""
Script that fixes a popping sound due to a power saving feature
References:
https://superuser.com/questions/1493096/linux-ubuntu-speakers-popping-every-few-seconds
https://www.youtube.com/watch?v=Pdmy8dMWitg
"""
sudo echo "obtaining sudo"
# First, there are two system files that need modification
# Changing the values here should fix the issue in your current session.
cat /sys/module/snd_hda_intel/parameters/power_save
cat /sys/module/snd_hda_intel/parameters/power_save_controller
# Flip the 1 to a 0
sudo sh -c "echo 0 > /sys/module/snd_hda_intel/parameters/power_save"
# Flip the Y to a N
sudo sh -c "echo N > /sys/module/snd_hda_intel/parameters/power_save_controller"
# To make this change persistant we must modify a config file
if [ -f "/etc/default/tlp" ]; then
# Some systems (usually laptops) have this controlled via TLP
sudo sed -i 's/SOUND_POWER_SAVE_ON_BAT=1/SOUND_POWER_SAVE_ON_BAT=0/' /etc/default/tlp
# This line contained a typo, addressed on 2020-10-11 11:11 Bcn time
sudo sed -i 's/SOUND_POWER_SAVE_CONTROLLER=Y/SOUND_POWER_SAVE_CONTROLLER=N/' /etc/default/tlp
elif [ -f "/etc/modprobe.d/alsa-base.conf" ]; then
# Append this line to the end of the file
text="options snd-hda-intel power_save=0 power_save_controller=N"
fpath="/etc/modprobe.d/alsa-base.conf"
# Apppend the text only if it doesn't exist
found="$(grep -F "$text" "$fpath")"
if [ "$found" == "" ]; then
sudo sh -c "echo \"$text\" >> $fpath"
fi
cat "$fpath"
else
echo "Error!, unknown system audio configuration" 1>&2
exit 1
fi
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12342 次 |
最近记录: |