이 문제의 원인이 무엇인지는 잘 모르겠지만 문제를 해결했을 때(또는 해결했을 때) 시간을 절약하고 나중에 참조할 수 있도록 제가 찾은 결과를 공유하기로 결정했습니다.
그래서 이야기는 다음과 같습니다.
새로운 Gigabyte X570 Aorus Master 마더보드를 구입하고 여기에 Arch Linux를 설치했습니다. 후면 3.5mm 소켓에서 오디오가 출력되지 않는 문제가 있습니다.
해결 방법을 찾는 과정은 아래 답변에 설명되어 있습니다. 동일한 상황에 처해 있는 경우 해당 세부정보를 통해 알려드릴 수 있습니다.
또한, 디지털 출력을 희생하면서 문제를 해결하는 것보다 근본적인 문제를 해결할 수 있는 더 나은 솔루션이 있다면 자유롭게 답변을 게시해 주세요! 누군가가 더 나은 답변을 생각해 낼 수 있기를 바라면서 내 답변을 받아들이지 않을 것입니다.
답변1
설치 후 pavucontrol
구성 탭에서 내 오디오 컨트롤러에 아날로그 출력 프로필을 사용할 수 없다는 것을 발견했습니다. 사용할 수 있는 유일한 프로필은 디지털 프로필입니다.
Analog Stereo Output (unplugged) (unavailable)
그러다가 또 다른 사실을 발견했습니다. 이 프로필을 강제로 선택 하고 Output Devices
탭 에서 Line Out (unplugged)
포트를 선택하면 사운드가 스피커로 출력된다는 것입니다.스피커가 실제로 라인아웃 소켓에 연결되어 있지 않더라도.
여기에 뭔가 문제가 있습니다. 하지만 이제 우리는 적어도 뭔가를 갖게 되었습니다. 문제는 시스템이 장치의 플러그가 뽑혀 있고 사용할 수 없다고 생각하기 때문에 재부팅하거나 헤드폰을 연결 및 연결 해제한 후에 이 설정이 기본값으로 재설정(작동하지 않는) 이유입니다.
hdajackretask
구조하러 오세요. Arch Linux에서는 이 도구가 소프트웨어 패키지로 제공됩니다 alsa-tools
. 기본적으로 우리가 똥을 다시 매핑할 수 있게 해주며 예상대로 작동합니다.
- 열려 있는
hdajackretask
. Realtek ALC1220
코덱을 선택하세요 .- 옵션을 선택하세요
Advanced override
. - PIN 재정의
SPDIF Out, Rear side
(에만 적용됨pavucontrol
) - 아래 스크린샷을 따라 설정하세요. "장치" 이외의 다른 것이 중요한지 잘 모르겠습니다.
기본적으로 그것을 커버하면 스피커가 됩니다.
- 이제 을 클릭한
Apply now
다음 을 클릭하고 프로필과 포트가 선택 되었는지Install boot override
확인한 다음 재부팅하십시오.pavucontrol
Analog output
Speaker
오디오는 작동해야 하며 헤드폰을 연결/분리해도 문제가 발생하지 않으므로(예상대로 작동함) 대부분의 사람들에게 충분한 솔루션이 될 것입니다. 내가 아는 한 유일한 단점은 사용할 수 없다는 점 Digital output
이므로 필요한 경우 더 많이 사용해야 할 수도 있습니다. 이제 너무 피곤해서 다른 구성을 확인할 수 없습니다. 행운을 빌어요!
편집하다:
모든 라인 출력 핀을 "스피커" 장치로 재정의할 수 있는 것처럼 보이며 그러면 아날로그 출력이 복원됩니다. 또한 여기에 버그 보고서를 게시했습니다.https://bugzilla.kernel.org/show_bug.cgi?id=205275.
2020년 11월 29일에 수정됨:
"Line Out" 포트는 현재 최신 Linux 커널 버전에서 제대로 작동하는 것으로 보이지만 Windows에서 이중 부팅 설정을 수행할 때 여전히 문제가 있을 수 있습니다. 이 경우 Windows용 Realtek 드라이버가 제대로 작동하지 않는 것 같습니다. 재부팅 후 장치가 이상한 상태가 되어 Linux에서 사용할 수 없게 됩니다. 여기서 해결 방법은 전용 Realtek 드라이버를 사용하는 것이 아니라 Windows 기본 드라이버를 사용하는 것입니다. 이 문제를 해결하려면 Windows에서 Realtek 드라이버를 제거하고 콜드 부팅을 수행해야 합니다. Windows의 기본 드라이버가 제대로 작동할 것입니다.
답변2
나는 이 문제와 약간 다른(아마도 관련이 있는) 버전에 직면했습니다. Aorus Matster에서 오디오를 설정하는 동안 내 스피커에서는 오디오가 생성되지 않는 반면 내 서브우퍼(C.Sub 잭에 연결됨)에서는 오디오가 생성되는 것을 발견했습니다. 이상하게도 스피커를 뽑으면 서브우퍼도 멈춥니다.
제 경우에는 hdajackretask
SPDIF 출력 설정을 변경해도 소용이 없었고 대신 모든 서라운드 출력 핀(녹색, 주황색, 검정색)을 살펴보고 라인 출력에서 스피커로 변경하여 문제를 해결했습니다. 모두 같은 그룹에 넣어야 합니다.
주목할 만한 점: 오디오 믹서의 출력 패널에서 이 변경을 수행하기 전에는 포트 선택이 "스피커(사용할 수 없음)" 및 "라인 출력"이었지만, 이 변경을 수행한 후에는 포트가 이제 "아날로그 출력"입니다.
마지막으로, 설정을 적용하려고 시도했는데 hdajackretask
장치 또는 리소스가 사용 중이라는 오류가 발생하는 경우 해당 장치를 루트로 실행하고 있는지 확인하고 사용자 계정의 모든 오디오 프로그램도 중지했는지 확인하세요. 다음을 사용하여 사용자의 pulseaudio 사본을 중지해야 할 수도 있습니다.
systemctl --user stop pulseaudio.socket
systemctl --user stop pulseaudio.service
그런 다음 이를 적용하고 사용자 계정에서 pulseaudio를 시작하고(중지 대신 시작) 시작 재정의에 설치하기 전에 테스트할 수 있습니다. 이전에 VLC를 중지했지만 열어 둔 경우 pulseaudio를 다시 시작해도 오디오가 재생되지 않으므로 완전히 종료한 후 다시 시작하여 테스트해야 합니다.
답변3
나도 한동안 이 문제를 다루어 왔습니다. 사실 너무 오래되었습니다. i3를 사용하고 있어서 구성이 매우 간단합니다.
level1 포럼에서 읽기Gigabyte X570 Aorus Master Linux 불만 사항 및 스레드 연마: alsamixer의 자동 음소거 옵션에 대한 게시물이 있습니다. 저에게는 모든 것이 활성화되어 있습니다. 이를 비활성화하고 헤드폰을 후면 라인 출력 포트에 다시 연결하면 현재 잘 작동합니다! 에서 선택되어 있는지 확인하세요 pavucontrol
.
답변4
커널에 의해 감지됩니까?
# dmesg | grep 'ALC1220'
[ 85.701194] snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC1220: line_outs=3 (0x1b/0x15/0x16/0x0/0x0) type:line
어떤 카드번호인가요?
# grep -l ALC1220 /proc/asound/card*/codec*
/proc/asound/card1/codec#0
그러므로 카드 1.
~/.asoundrc
카드 1을 기본값으로 만들기 위해 생성 :
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
설치하다 alsa-utils
:
# pacman -S alsa-utils
~/.asoundrc
다음을 실행하여 유효한지 확인하십시오.
# alsamixer
왼쪽 상단에 "Chip: Realtek ALC1220"이라고 표시되어 있습니다. 간단히 ESC 키를 눌러 명령줄에서 음소거를 해제할 수 있습니다.
# amixer -- sset Master playback -6dB unmute
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 87
Mono: Playback 79 [91%] [-6.00dB] [on]
실제로 여기서 "모노"라고 표시된 이유는 잘 모르겠지만 왼쪽과 오른쪽 채널의 볼륨을 독립적으로 변경할 수 없기 때문인 것 같습니다. 내 다른 리눅스 박스에서도 같은 출력이 나옵니다. (듣고 있는 동안)스테레오음악이 있습니다.)
스피커 테스트를 실행합니다.
# speaker-test -c 2
speaker-test 1.2.2
Playback device is default
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 64 to 8544000
Period size range from 32 to 4272000
Using max buffer size 8544000
Periods = 4
Unable to set hw params for playback: Cannot allocate memory
Setting of hwparams failed: Cannot allocate memory
아 이거그것은 밝혀커널 5.6에서 깨졌습니다. 5.7-rc2 이상에서는 수정될 수 있습니다(테스트해 보지 않았습니다. 언제 수정될지 아는 사람이 있으면 댓글을 추가해 주세요). 편집: 현재 5.6.13에서 다시 작동합니다.
대신에 나는 aplay
약간의 wav를 실행했습니다. 효과가 있었습니다. 아니면 그렇지 않습니다.
나는 가지고있다:
# aplay Checkmate.wav
Playing WAVE 'Checkmate.wav' : Unsigned 8 bit, Rate 48000 Hz, Stereo
aplay: set_params:1343: Sample format non available
Available formats:
- S16_LE
- S32_LE
나는 이것이 만족스럽지 않지만 그 동안 내 것을 다음 ~/.asoundrc
과 같이 변경합니다.
pcm.!default {
type plug
slave {
pcm "hw:1,0"
}
}
ctl.!default {
type hw
card 1
}
그런 다음 작동했습니다.
편집: 현재 다음을 사용하고 있습니다 ~/.asoundrc
.
# Convert alsa API over jack API.
# For use with for example,
# aplay foo.wav
# or running flash.
# Use this as default.
pcm.!default {
type plug
slave { pcm "jack" }
}
ctl.mixer0 {
type hw
card 1
}
# pcm type jack
pcm.jack {
type jack
playback_ports {
0 system:playback_1
1 system:playback_2
}
capture_ports {
0 system:capture_1
1 system:capture_2
}
}
이는 JACK을 사용하여 ALSA에 연결할 때 사용하려는 것입니다. 이로 인해 일반적으로 ALSA에 연결하는 다른 애플리케이션이 대신 JACK에 연결됩니다. 그러나 JACK을 사용하는 것은 완전히 새로운 벌레 중의 하나이므로 펄스오디오만으로 모든 것이 좋아질 때까지 사용하지 마십시오.
--편집 끝
실행해 보면 5.6.10-arch1-1
Christian의 패치가 내 커널에 들어간 것 같습니다(감사합니다!).