Computer >> 컴퓨터 >  >> 시스템 >> Linux

우분투(Ubuntu)에서 소리가 나지 않을 때: 단계별 해결 가이드

우분투(Ubuntu)에서 소리가 나지 않을 때: 단계별 해결 가이드

우분투를 새로 설치하거나 최신 버전으로 업그레이드한 후 많은 사용자가 겪는 대표적인 문제 중 하나가 바로 '소리가 나지 않는' 현상입니다. 원인은 다양합니다. 스피커 설정의 잘못된 구성 때문일 수도 있고, 하드웨어 자체가 우분투에서 충분히 지원되지 않는 경우일 수도 있습니다.

다행히 대부분의 경우 이 문제는 비교적 간단하게 해결됩니다. 사운드 문제의 상당수는 시스템에서 실행 중인 오디오 서비스의 이상에서 비롯되기 때문입니다. 이 글에서는 간단한 순서대로 몇 가지 해결 방법을 소개합니다. 모든 방법을 시도할 필요는 없으며, 목록 위쪽부터 차례대로 따라 해 보면서 문제가 해결되면 멈추시면 됩니다.

PulseAudio 볼륨 컨트롤(pavucontrol) 설치하기

PulseAudio는 우분투를 포함한 여러 리눅스 배포판의 기본 사운드 서비스입니다. 오픈소스 기반으로 안정성이 높으며, ALSA와 OSS 드라이버와 연동해 시스템이 생성하는 오디오 신호가 스피커까지 정상적으로 전달되도록 합니다.

우분투(Ubuntu)에서 소리가 나지 않을 때: 단계별 해결 가이드

애플리케이션과 데스크톱 환경마다 자체 볼륨 조절 기능을 제공하지만, 세부적인 제어가 어렵고 개별 재생 스트림을 따로 조정하기는 힘듭니다. pavucontrol을 사용하면 PC에 연결된 각 오디오 장치를 훨씬 세밀하게 관리할 수 있습니다. 슬라이더를 직접 움직여 스피커나 헤드폰 볼륨이 적절한 수준으로 설정되어 있는지 확인할 수 있습니다.

pavucontrol을 설치하려면 터미널을 열고 아래 명령어를 입력하세요.

pulseaudio --start
sudo apt install pavucontrol

설치가 끝나면 터미널에서 pavucontrol을 실행하거나, 데스크톱 실행 메뉴에서 "PulseAudio Volume Control"을 검색해 실행합니다. 출력 장치(Output Devices) 탭으로 이동해 기본 스피커가 올바르게 선택되어 있는지 확인하세요.

스피커 설정 확인하기

우분투에서 소리 문제가 발생했다면, 가장 먼저 헤드폰과 스피커의 물리적인 연결 상태를 점검해야 합니다. 오디오 케이블이 잘못된 포트에 꽂혀 있거나 아예 연결되지 않았을 가능성도 있습니다.

블루투스 장치를 사용 중이라면 페어링이 제대로 되어 있는지 확인하고, 장치 자체의 볼륨이 너무 낮거나 꺼져 있지 않은지도 살펴보세요. 또한 컴퓨터 쪽에서 출력 음소거가 활성화되어 있지 않은지, 올바른 출력 장치가 선택되어 있는지 반드시 확인해야 합니다.

우분투(Ubuntu)에서 소리가 나지 않을 때: 단계별 해결 가이드

ALSA 믹서 확인하기

PulseAudio는 내부적으로 ALSA(Advanced Linux Sound Architecture)를 사용합니다. ALSA는 사운드 장치를 직접 제어하는 커널 모듈입니다. ALSA 수준에서 볼륨을 더 세밀하게 조정해야 한다면 아래 절차를 따르세요.

  1. 터미널을 엽니다.
  2. alsamixer를 입력하고 Enter 키를 누릅니다. 터미널에 믹서 화면이 표시됩니다.
우분투(Ubuntu)에서 소리가 나지 않을 때: 단계별 해결 가이드
  1. F6 키를 눌러 올바른 사운드 카드를 선택합니다. 기본값으로도 대부분 잘 작동하지만, 문제가 있다면 다른 항목도 시도해 보세요.
  2. , 방향키로 볼륨 항목을 선택합니다. 현재 선택된 항목은 하단에 빨간색으로 표시됩니다.
  3. , 방향키로 각 항목의 볼륨을 높이거나 낮출 수 있습니다.
  4. 볼륨 바 아래에 "MM"이 표시되면 해당 항목이 음소거된 상태입니다. 주의할 점은 볼륨이 100%로 가득 차 있어도 음소거 상태일 수 있다는 것입니다. m 키를 누르면 음소거가 해제되며, "MM"이 "OO"로 변경됩니다.
  5. 모든 설정이 끝나면 Esc 키를 눌러 alsamixer를 종료합니다.

참고: 특정 항목의 음소거를 변경하면 PulseAudio가 이를 감지해 다른 항목들도 함께 음소거하거나 해제할 수 있습니다. 종료 전에 관련 항목과 마스터(Master) 항목이 모두 음소거 해제 상태인지 꼭 확인하세요.

ALSA 다시 로드하기

위 방법으로도 소리가 나지 않는다면 ALSA를 다시 로드해 보세요. 터미널에서 아래 명령어를 입력합니다.

sudo alsa force-reload

명령이 실행되면 다음 이미지처럼 결과가 출력됩니다.

우분투(Ubuntu)에서 소리가 나지 않을 때: 단계별 해결 가이드

재로드 후에도 소리 문제가 계속된다면, 아래 명령어로 PulseAudio를 재시작해 보세요.

pulseaudio -k && pulseaudio -D

ALSA를 다시 로드했는데도 PulseAudio가 모듈 재로드를 인식하지 못하면 문제가 발생할 수 있습니다.

그래도 소리가 들리지 않는다면 아래 명령어로 ALSA 설정을 직접 복원해 보세요.

alsactl restore

ALSA와 PulseAudio 재설치하기

위의 방법들로도 문제가 해결되지 않았다면 ALSA와 PulseAudio를 재설치해 보세요. 터미널을 열고 다음 명령어를 순서대로 입력합니다.

sudo apt remove --purge alsa-base pulseaudio
sudo apt install alsa-base pulseaudio

설치가 완료되면 ALSA를 다시 로드하고 컴퓨터를 재부팅합니다.

고급 문제 해결 방법

여기까지의 방법으로도 해결되지 않았다면, 조금 더 깊이 들어가 고급 트러블슈팅을 시도해야 할 차례입니다.

출력 장치가 ALSA에는 반응하지만 PulseAudio에는 반응하지 않는 경우

PulseAudio가 출력을 음소거한 상태라면 ALSA가 어떤 값을 보고하든 무의미합니다. 오디오 신호가 ALSA를 통해 처리되더라도 PulseAudio가 장치에 전달하지 않으면 소리는 나오지 않습니다.

이 경우 마스터 볼륨이 변경될 때마다 ALSA가 PulseAudio와 동기화되도록 강제해야 합니다.

amixer -D pulse sset Master toggle

이렇게 하면 어떤 이유로 ALSA와만 통신하던 장치도 PulseAudio와 함께 작동하게 됩니다.

특정 애플리케이션만 문제일 가능성은 없나요?

오작동하는 애플리케이션 하나가 생각보다 다양한 방식으로 사운드 시스템을 망가뜨릴 수 있습니다. 심지어 사용자가 직접 열지 않은 백그라운드 프로세스가 원인일 수도 있습니다.

현재 오디오를 사용 중인 모든 항목을 확인하려면 다음 명령어를 입력하세요.

pacmd list-sink-inputs

결과를 좁혀 보고 싶다면 아래처럼 grep을 활용할 수 있습니다.

pacmd list-sink-inputs | grep application.name
우분투(Ubuntu)에서 소리가 나지 않을 때: 단계별 해결 가이드

예를 들어 위 이미지처럼 Firefox만 소리를 출력하고 있는 경우, grep으로 필터링했다면 원래 명령어를 다시 실행해 "muted:", "index:", "volume:" 값을 확인해야 합니다.

애플리케이션 자체의 볼륨이 켜져 있어도 PulseAudio 측에서 음소거되었거나 볼륨이 0일 수 있습니다.

음소거된 애플리케이션을 복구하려면 다음 명령어를 입력하세요(application_index는 "index:"에서 확인한 번호로 교체).

pacmd set-sink-input-mute application_index false

비정상적으로 볼륨이 낮은 애플리케이션은 아래 명령어로 수정할 수 있습니다.

pacmd set-sink-input-volume application_index 0x10000

절전 모드 복귀 후 소리가 나지 않는 경우

때때로 PulseAudio가 컴퓨터가 절전 모드에서 깨어날 때 함께 깨어나지 못하는 경우가 있습니다. 이럴 때 아래 명령어를 실행하면

pasuspender /bin/true

소리가 즉시 돌아옵니다. 다만 이 방법은 임시방편일 뿐, 재부팅이나 다음 절전 모드 진입 후에는 문제가 재발합니다. 영구적으로 해결하려면 아래 미니 가이드를 따르세요.

  1. 터미널에 다음을 입력해 systemd 서비스 파일을 생성합니다.
sudo touch /etc/systemd/system/pulseaudio-sleep-fix@.service
  1. 생성한 파일을 편집기로 엽니다.
sudo nano /etc/systemd/system/pulseaudio-sleep-fix.service

아래 내용을 붙여넣습니다(터미널 붙여넣기는 Ctrl + Shift + V).

[Unit]
Description=Fix PulseAudio after resume from suspend
After=suspend.target
 
[Service]
User=%I
Type=oneshot
Environment="XDG_RUNTIME_DIR=/run/user/%U"
ExecStart=/usr/bin/pasuspender /bin/true
 
[Install]
WantedBy=suspend.target
  1. Ctrl + X로 편집기를 종료하고, 저장 여부를 묻는 메시지가 나오면 Y를 누릅니다.
  2. 다음 명령어로 systemd 서비스를 등록합니다.
sudo systemctl enable pulseaudio-sleep-fix@your_username.service

your_username 부분은 실제 사용자 이름으로 바꿔야 한다는 점을 잊지 마세요. 등록된 서비스는 절전 모드 복귀 시에만 실행되고 작업을 마치면 곧바로 종료되므로 시스템에 불필요한 부담을 주지 않습니다.

Timidity를 실행 중인가요?

우분투에서 timidity 패키지를 사용 중이라면(apt search timidity를 실행해 해당 항목 끝에 [installed] 표시가 있는지 확인), 특유의 오디오 처리 방식 때문에 PulseAudio와 충돌할 수 있습니다.

timidity를 정상적으로 사용하려면 먼저 자동 시작 프로그램(GNOME 등에서는 'Startup Applications')에 등록하고, 실행 명령을 아래처럼 수정하세요.

timidity -iA -Os

추가로 root 사용자를 pulse-access 그룹에 추가합니다.

sudo usermod -a -G pulse-access root

재부팅 후에는 소리가 정상적으로 작동해야 합니다. 그래도 문제가 지속된다면 현실적인 마지막 방법은 timidity를 우분투에서 제거하는 것입니다.

자주 묻는 질문

1. ALSA를 제거하고 PulseAudio만 유지할 수 있나요?

매우 신중하게 접근해야 합니다. PulseAudio는 작동을 위해 커널 수준의 오디오 모듈이 필요합니다. ALSA를 Open Sound System 같은 다른 커널 기반 오디오 시스템으로 교체할 계획이라면 시도해 볼 수 있지만, 과정이 일반적인 커널 모듈 교체보다 훨씬 복잡하며 문제를 해결하는 데 오랜 시간이 걸릴 수 있습니다.

2. PulseAudio의 대안이 있나요?

네, 있습니다. 가장 인기 있고 실용적인 대안은 PipeWire입니다. 블루투스 장치 지원이 더 잘 통합되어 있고, PulseAudio의 다소 불안정했던 샘플링 및 후처리 처리 방식을 개선했습니다. 요즘은 많은 배포판의 공식 저장소에서 제공되며, 최근 몇 년간 안정성도 크게 향상되었습니다.

보다 전문적인 오디오 환경을 구성하고 싶다면 JACK을 선택하는 것도 좋은 방법입니다.

3. PulseAudio를 다른 사운드 서비스와 함께 실행할 수 있나요?

일부 서비스는 PulseAudio와 함께 작동할 수 있는 라이브러리와 설정 옵션을 제공하지만, 시스템에서는 한 번에 하나의 사운드 서비스만 사용하는 것이 좋습니다. 대부분의 서비스는 PulseAudio와 애플리케이션을 두고 경쟁하며 예측 불가능한 동작을 유발할 수 있습니다. 어떤 서비스는 PulseAudio를 완전히 제거하지 않으면 아예 작동하지 않습니다(PipeWire는 pulseaudio를 대체하는 pipewire-pulse 서비스를 사용합니다).

이 가이드가 우분투의 소리 문제를 해결하고 운영체제를 다시 즐길 수 있도록 도와주기를 바랍니다. 리눅스에서 웹사이트를 앱으로 만들어 보셨나요? 안드로이드 폰 화면을 리눅스로 미러링하는 방법도 함께 확인해 보세요.