우분투 20.04에서 nVidia graphic 드라이버가 기본으로 설치되어 있지 않습니다. nVidia Graphic 드라이버 설치 후에 HDMI를 통해서 사운드를 송출할 수 있으나, 가끔 사운드가 드라이버가 올라가 있지 않는 경우가 있습니다. 본 포스팅은 이에 대한 해결 방법을 설명합니다.
HDMI 사운드 송출 안 되는 현상 확인
우분투의 시스템 설정의 소리 메뉴에서 출력 장치를 확인을 하면 '내장 오디오'만 설치되어 있다. 이전에 nVidia 드라이버를 설치가 되지 않은 상태라면 nVidia 드라이버를 먼저 설치하면 해결됩니다. nVidia 그래픽 드라이버를 설치한 상태에서도 HDMI 사운드가 송출되지 않는다면 nVidia Sound 커널 모듈을 비정상적으로 로딩된 상태입니다.
제 경우 (우분투 20.04와 nVidia GT720 조합)인 경우에는 1/10번 빈도로 에러가 발생합니다. 정확한 재현 경로는 확인이 어렵지만 PC가 절전 모드에 들어가면 문제가 100% 재현되는 것으로 확인하였습니다. . '추정'됩니다. nVidia 사운드는 커널 모듈형태로 설치되고 있는 것으로 보이고, supend 후 resume시 처리가 정상적으로 되지 않는 버그로 보입니다.
해결 방법 1 : alsa 드라이버 재로딩
가장 간단한 방법은 alsa force-reload 명령어로 alsa 드라이버를 다시 로딩하는 것입니다. 명령어 호출 전에 사운드 사용하는 플레이어는 모두 종료 후에 alsa를 다시 로딩해야 에러가 발생하지 않습니다.
$ sudo alsa force-reload
Alsa 란 (출처: 위키 백과)
고급 리눅스 사운드 아키텍처(Advanced Linux Sound Architecture, ALSA)는 리눅스 커널의 구성 요소 중 하나로 사운드 카드용 장치 드라이버를 위한 API를 제공하는 소프트웨어 프레임워크이다.
ALSA가 초기에 프로젝트로 시작될 당시에 내세워졌던 목적은, 사운드 카드 하드웨어의 자동 구성 및 리눅스 시스템 안에 들어가는 복수개의 사운드 장치의 원활한 제어였다. 자로슬라브 키셀라(Jaroslav Kysela(en))가 주도하는 ALSA 프로젝트는 1998년의 그레비스 울트라사운드 사운드 드라이버용 리눅스 장치 드라이버로 처음 시작하였으며 2002년에 2.5 개발 버전(2.5.4-2.5.5)] 이후부터 리눅스 커널로부터 갈라져 나온 뒤에 계속 개발되고 있다. 2.6 버전부터 이전 시스템인 오픈 사운드 시스템(OSS)을 기본으로 대체하고 있다. 펄스 오디오 및 JACK 등의 사운드 서버, OpenAL, SDL Audio 등의 고수준 추상화 API가 ALSA를 바탕으로 작동되어 사운드 카드의 장치 드라이버를 구현한다.
ALSA는 GPL 및 LGPL 라이선스 하에 배포된다
해결 방법 2 : pavucontrol 설정 조정
PulseAudio Volume control (pavucontrol)를 설치하여 출력 장치를 HDMI로 설정합니다. PulseAudio Volume control에서는 현재 지원하고 있는 오디오 디바이스를 보여주고, 각 스트림을 볼륨 조절이 가능합니다.
$ sudo apt install pavucontrol
PulseAudio 란 (출처: 링크)
PulseAudio는 거의 모든 Linux 배포판을 위한 사실상의 표준 사운드 서버다. PulseAudio는 거의 모든 오디오 관련 시나리오를 처리할 수 있다. 일반적인 소스/싱크 접근 방식을 사용하여 설계를 이해하기 쉽고 또 확장할 수 있다. 따라서 PulseAudio는 대부분의 사용자에게 가장 적합한 솔루션이 된다 (PulseAudio의 풍부한 기능은 오디오 지연 시간이 길어 지므로 지연 시간이 짧은 오디오를 요구하는 전문가에게는 적절하지 않을 수 있음).
참고 내용: nVidia 드라이버 설치
nVidia Graphic 드라이버는 ubuntu-drivers autoinstall 명령어를 사용해서 PC에 설치된 그래픽 하드웨어 맞게 설치 가능합니다.
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
$ sudo ubuntu-drivers autoinstall
$ sudo reboot
#nvdia 설치 확인
$ nvidia-settings
관련 글
[개발환경/우분투] - CentOS 7에서 SW 개발용 패키지 설치 명령어
[개발환경/우분투] - 21:9 모니터 사용 시 화면 분할 기능 사용하기 (우분투, 윈도우10)
[개발환경/Web Server] - Website 전체 백업 방법: HTTrack (티스토리 백업에 활용)
[개발환경/Tips] - Spotify 한국에서 사용하는 방법
[개발환경/우분투] - Docker 개념과 명령어 사용 방법 및 예제
[개발환경/우분투] - 우분투 20.04에서 Grub 편집: grub-customizer 와 Grub theme 설정
[개발환경/Web Server] - 우분투 20.04에서 Flask를 서비스 등록: 부팅 시 자동 실행
[개발환경/Web Server] - 우분투 20.04에서 lighttpd의 fastcgi 개념 및 사용법
[개발환경/Web Server] - 우분투 20.04에서 lighttpd CGI 설정 방법 및 C와 Python 예제 코드
[개발환경/우분투] - 우분투에서 7zip command line 사용하기 (p7zip과 7za추천)
[개발환경/우분투] - 우분투 작업 스케줄러 Crontab 사용법, 디버깅, 주의 사항
[개발환경/Web Server] - 우분투 20.04에서 Web 서버 설치 방법 (apache2, tomcat9)
댓글