저는 Linux Ubuntu를 처음 사용하고 오랫동안 Windows를 사용해 왔으며 전환하게 되어 기쁩니다. 데스크탑 PC를 설정할 때 약 2초마다 짜증나고 반복적인 스피커 '팝' 소리가 들립니다. 이 팝은 볼륨 레벨에 관계없이 발생합니다. 오디오 잭을 스피커에서 분리하고 마더보드에 내장된 스피커를 사용하면 작동이 중지됩니다. 소리를 재생하면 소리가 재생되는 동안 팝핑이 멈추고 약 5초 후에 다시 시작됩니다.
저는 Linux Ubuntu 18.04.3 LTS를 실행하고 있습니다. 시스템 정보에 두 개의 오디오 어댑터(HDA-Intel - HDA ATI SB 및 HDA-Intel - HDA NVidia)가 보고됩니다.
결국 이 문제에 대한 해결책을 찾았지만 Q&A를 함께 올릴 만큼 평판 포인트가 부족합니다.
답변1
운영 체제의 기본 동작은 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가 설치되어 있지 않은데도 설정이 재설정되었습니다. 동영상에서는 그렇지 않다고 주장합니다.
나는 이것을 알아내기 전까지 우분투에 상당히 좌절했습니다. 많은 분들의 오디오 문제 해결에 도움이 되었으면 좋겠습니다!
답변2
@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
}
답변3
Glen의 답변에 대한 부록으로 보안상의 sudoedit
이유로 sudo nano
. 환경 변수 도 설정해야 합니다 EDITOR
.
따라서 대신:
sudo nano /sys/module/snd_hda_intel/parameters/power_save
사용
EDITOR=nano sudoedit /sys/module/snd_hda_intel/parameters/power_save
그리고 대신에
sudo nano /sys/module/snd_hda_intel/parameters/power_save_controller
사용
EDITOR=nano sudoedit /sys/module/snd_hda_intel/parameters/power_save_controller
더 나은 이유는 sudoedit
이 슈퍼유저 질문에 완전히 설명되어 있습니다.sudoedit: 왜 sudo vi보다 더 많이 사용하나요?