몇 초마다 Linux Ubuntu 스피커가 터지는 현상

몇 초마다 Linux Ubuntu 스피커가 터지는 현상

저는 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보다 더 많이 사용하나요?

관련 정보