Xubuntu 14.04를 Xubuntu 16.04로 업그레이드 할 때도이 문제가 발생했습니다 (헤드폰은 소리는 들리지만 스피커는 들리지 않음). Realtek ALC259 칩이 장착 된 HD Intel 사운드 카드가 있습니다. 3.13.X에서 4.10.X까지 다양한 커널로 부팅 할 때 문제가 지속되었습니다.
그러나 나는 고쳤습니다. 방법은 다음과 같습니다.
Pulseaudio (PA)는 Ubuntu의 기본 사운드 제어 시스템이며 대부분의 변형 제품이라는 것을 이해해야합니다. PA는 기본적으로 핵심 ALSA 사운드 시스템 위에 오버레이됩니다. 따라서 PA에서 수행되는 모든 작업에 대해 ALSA 내에서 후속 반응이 발생합니다. PA 내에 정의 된 각 출력 (일명 포트)에 대해 ALSA 시스템에 정의 된 조정이 있습니다. 이 조정을 "믹싱 경로"라고합니다.
!!! 중요!
계속하기 전에 이제 이것이 실제로 문제이며 스피커가 작동하지 않는 다른 이유가 없는지 확인해야합니다. 다음 테스트를 수행하면 매우 쉽게 수행 할 수 있습니다. 사운드 시스템을 사용하고 있다면 테스트하기 전에 기본값으로 되돌릴 수 있습니다.
- 작동하지 않는 스피커를 제외한 모든 헤드폰 또는 기타 사운드 장치를 분리하십시오.
- 현재는 아니지만 스피커에서 정상적으로 사운드를 생성하는 오디오 파일 재생을 시작하십시오. 그때,
터미널을 열고 다음 명령을 실행하십시오 :
alsamixer
다음이 표시되어야합니다.
사운드 카드의 차이로 인해 장치는 이미지의 장치와 약간 다릅니다. 제 경우에는 문제를 해결하기 전에 alsamixer가 위 이미지와 같이 보였습니다.
- 현재 음소거 된 장치를 음소거 해제하십시오 ( 'm'키를 사용하여 음소거를 전환하십시오). 그런 다음 100 %가 아닌 모든 장치에서 볼륨 슬라이더를 올리십시오.
스피커에서 소리가 들리면이 수정 프로그램이 적합합니다.
소리가 들리지 않으면 "Google"로 돌아가서 계속 검색하십시오. 이 방법은 도움이되지 않습니다.
위의 테스트에서 성공적으로 소리가 나면 이제 알자 믹서 설정을 사용하여 다음을 결정해야합니다.
- 스피커의 볼륨을 실제로 제어하는 장치의 볼륨 컨트롤
- 스피커가 작동하려면 어떤 장치를 음소거 해제해야합니까? 여러 장치를 음소거 해제해야 할 수도 있습니다.
스피커가 작동하는 ALSA 설정을 알고 나면이 정보를 사용하여 PA 믹서 경로를 필요한대로 변경할 수 있습니다.
필자의 경우 헤드폰과 스피커가 다음과 같은 방식으로 ALSA 내에 연결되어 있음을 발견했습니다.
- 내 헤드폰 볼륨은 "헤드폰"장치로 제어됩니다.
- 헤드폰에서 소리를 들으려면 "마스터"및 "헤드폰"장치를 음소거 해제해야합니다.
- 내 스피커 볼륨은 "헤드폰"장치로 제어됩니다. ALSA 스피커 볼륨 설정은 스피커 볼륨에 영향을주지 않습니다.
- 스피커에서 소리를 내려면 "마스터"및 "스피커"장치를 음소거 해제해야합니다.
PulseAudio (PA) 내의 스피커의 기본 믹서 경로는 스피커가 내 헤드폰과 무관하다고 가정했습니다. 관찰 3에 의해 상기 입증 된 바와 같이, 그렇지 않았다. 그 결과 PA 내 스피커 출력이 PA 내에서 선택 될 때마다 내 스피커의 PA 내 기본 믹서 경로가 ALSA 내에서 다음과 같은 문제가있었습니다.
- 헤드폰 볼륨을 0으로 떨어 뜨 렸습니다.
- 스피커 장치를 볼륨 컨트롤로 설정하십시오.
앞에서 설명한대로 ALSA와 스피커 및 헤드폰의 연결을 어떻게 관찰했는지 알면 이러한 ALSA 변경으로 인해 스피커에서 사운드가 나오지 않을 수 있습니다.
따라서이 문제에 대한 해결책은 스피커의 믹서 경로를 수정하여 얻을 수 있습니다.
PA 믹서 경로 파일은 다음 위치에 있습니다.
/ usr / share / pulseaudio / alsa-mixer / paths /
스피커를 제어하는 믹서 경로 파일을 결정하려면 다음을 수행해야합니다.
PA 내에서 스피커 출력이 선택되어 있는지 확인하십시오 (예 : 헤드폰이 아님).
터미널을 열고 다음 명령을 실행하십시오.
pactl list | grep 'Active Port.*output.*'
다음과 같은 것을 출력해야합니다.
활성 포트 : audiotype -output- 장치
즉
"활성 포트"는 현재 ALSA 설정을 제어하는 PA 포트입니다. 이미 PA의 출력으로 스피커를 선택하기 때문에, 터미널 명령이 출력은 믹서 경로 파일을 편집 할 필요가 있음을 알려줍니다 audiotype -output- 장치 의 .conf를. 필자의 경우 믹서 경로 파일은 analog-output-speaker.conf입니다.
이제 올바른 믹서 경로 파일을 만들었으므로 변경해야합니다.
참고 :이 믹서 경로 폴더에는 'analog-output.conf.common'이라는 파일이 있습니다. 이 파일의 내용은 믹서 경로 파일을 해석하는 방법을 설명합니다. 다음 변경 사항을 이해하려면 믹서 경로를 편집하기 전에이 파일을 확인하는 것이 좋습니다.
각 믹서 경로 파일에는 수많은 "요소"가 포함되어 있습니다. 이상적으로는 각 파일 내에서 컴퓨터의 각 ALSA 장치를 나타내는 요소가 있습니다. 아마도 당신이 가지고 있지 않은 요소가있을 것입니다. 이것은 정상입니다.
필자의 경우 다음과 같은 방법으로 analog-output-speaker.conf의 믹서 경로에서 헤드폰 및 스피커 요소를 변경해야했습니다.
- PA 볼륨이 헤드폰 ALSA 볼륨을 조정하도록합니다.
기발한:
[Element Headphone]
switch = off
volume = off
편집 :
[Element Headphone]
switch = off
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
- (선택 사항) 스피커 볼륨을 끄고 PA 볼륨이 ALSA 볼륨에 영향을 미치지 않도록하십시오. 이렇게하지 않으면 사운드는 계속 작동하지만 ALSA의 스피커 설정은 불필요하게 바운스됩니다.
기발한:
[Element Speaker]
required-any = any
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
편집 :
[Element Speaker]
required-any = any
switch = mute
volume = off
그런 다음 다음을 실행하여 PA를 다시 시작하십시오.
pulseaudio -k && pulseaudio --start
oil!