ALSA, PulseAudio 및 Intel HDA PCH 소리가 들리지 않음

ALSA, PulseAudio 및 Intel HDA PCH 소리가 들리지 않음

온보드 사운드 카드는 Realtek ALC298 하나만 있고 고급 사운드 구성이 필요하지 않습니다. 유튜브 동영상 감상, 영화 감상 등을 위한 효과적인 사운드 시스템일 뿐입니다. 지금까지 많은 온라인 기사를 팔로우했습니다. 내가 시도한 모든 것을 요약하면 다음과 같습니다.

  1. 채널이 음소거되어 있는지 확인합니다. 를 사용 alsamixer하고 확인했는데 pavucontrol둘 다 음소거된 채널이 표시되지 않습니다. 3단계(아래 참조)에서 이 단계를 반복했는데 때때로 새 채널이 표시되었지만 결국 소리가 나지 않았습니다.

  2. ALSA인지 아니면 PulseAudio인지 확인하세요. 그래서 나는 다음을 사용했습니다 aplay -l:

****재생 하드웨어 장치 목록****
카드 0: PCH [HDA Intel PCH], 장치 0: ALC298 에뮬레이션 [ALC298 에뮬레이션]
  하위 장치: 1/1
  하위 장치 #0: 하위 장치 #0
카드 0: PCH [HDA Intel PCH], 장치 3: HDMI 0 [HDMI 0]
  하위 장치: 1/1
  하위 장치 #0: 하위 장치 #0
카드 0: PCH [HDA Intel PCH], 장치 7: HDMI 1 [HDMI 1]
  하위 장치: 1/1
  하위 장치 #0: 하위 장치 #0
카드 0: PCH [HDA Intel PCH], 장치 8: HDMI 2 [HDMI 2]
  하위 장치: 1/1
  하위 장치 #0: 하위 장치 #0
카드 0: PCH [HDA Intel PCH], 장치 9: HDMI 3 [HDMI 3]
  하위 장치: 1/1
  하위 장치 #0: 하위 장치 #0
카드 0: PCH [HDA Intel PCH], 장치 10: HDMI 4 [HDMI 4]
  하위 장치: 1/1
  하위 장치 #0: 하위 장치 #0

거기에서 PCM 형식의 wav 파일을 사용하면 aplay -D plughw:0,0 test.wav다음이 제공됩니다.

WAVE 'test.wav' 재생: 서명된 32비트 Little Endian, 속도 44100Hz, 스테레오

하지만 아무것도 아니야! 소리도 없고 스피커나 헤드폰도 없습니다. 나는 이것이 PulseAudio 문제가 아닌 ALSA 문제라고 생각하지만 전체 단계에서 PulseAudio 데몬이 실행되기 때문에 의심이 듭니다. 재미있는 점은 이 단계를 수행했을 때 그놈 사운드 설정에 사운드바가 마치 무언가 재생되는 것처럼 움직이는 것으로 표시되었습니다. :D

  1. 내가 하나 찾았어커널 웹사이트의 기사HDA 오디오 및 컴퓨터를 다시 시작하지 않고도 오디오 코덱을 동적으로 재구성하는 커널 기능에 대해 설명합니다. 나는 hdajackretask저장소의 일부인 이 유틸리티를 찾아 사용할 수 있었고 alsa-toolsGUI를 제공했습니다. 유틸리티는 핀 수정 사항을 user_pin_configs파일에 기록합니다(참고로 재부팅 후 수동으로 확인하세요). 하지만 핀 재할당의 올바른 조합을 알 수 없습니다. 재할당할 수 있는 핀은 다음과 같습니다.
0x12
0x13
0x14
0x17
0x18
0x19
0x1a
0x1일
0x1e
0x1f
0x21
  1. 내 생각은 기본적으로 ALC269내가 본 모델을 사용하는 것입니다.흥미로운 패치 파일구글링할 때. 링크는 Rasp Pi에 대한 것이지만, 그렇기 때문에 시도해 볼 가치가 있다고 생각했습니다 ALC269.지원되는 커널 HDA 오디오 모델. 이것이 아무것도 바꾸지는 않지만 누군가는 그것으로부터 이익을 얻을 수 있습니다.

도움을 주셔서 감사합니다. 내 Linux 기술은 내 능력을 훨씬 뛰어넘습니다.

추신: manjaro, linux56, 모든 배포판에는 동일한 사운드 카드 문제가 있지만. 나는 사운드가 작동하기를 바라면서 지난 몇 달 동안 거의 모든 배포판을 설치했습니다.

편집 1

을 추가했습니다페이스트빈자세한 alsa-info.sh내용은.

답변1

좋은 소식! ronincoder라는 매우 영리한 Arch 사용자가 헤드폰 잭에 대한 수정 사항을 발견했습니다. ronincoder와 협력하여 커널 패치[1]를 만들었고, 우리 패치가 5.7 커널 버전에 들어갔습니다! 5.4 LTS 커널에서도 사용됩니다. 5.7.2와 5.4.46을 실행했는데 헤드폰 잭의 오디오가 크고 선명했습니다. :)

당신에게 효과가 있나요? Samsung Notebook 9 Pro NP930SBE-K01US 또는 NP930MBE-K04US(ronincoder는 전자, 내 제품은 후자)를 사용하고 있다면 그렇게 할 수 있습니다. alsa_info.sh를 실행하고 "마더보드 이름"을 보면 노트북 모델을 확인할 수 있습니다. NP930SBE-K01US 및 NP930MBE-K04US의 Realtek ALC298 코덱은 각각 "하위 시스템 ID" 0x144dc169 및 0x144dc176으로 자신을 식별합니다. snd_hda_intel이 이러한 ID를 발견하면 수정 사항을 구현합니다.

스피커는 어떻습니까? 커널 버그질라[2]의 내부 스피커에서 소리가 나지 않는 문제를 보고했습니다. Linux 사운드 관리자 Jaroslav Kysela는 HDA 코덱에 연결된 일부 앰프가 있을 수 있다고 추측하지만 이러한 앰프는 BIOS에 의해 초기화되지 않으므로 Linux에서 활성화되지 않습니다. 그는 QEMU를 사용하여 Windows 드라이버용 코덱 통신을 덤프할 것을 권장합니다. 그런 다음 Early Patching [3]을 사용하거나 다른 커널 패치를 작성하여 Linux에서 덤프를 구문 분석하고 통신을 재생할 수 있습니다. Yaroslav가 이것을 제안한 지 한 달이 지났고 약간의 진전을 이루었지만 여전히 좋은 덤프가 없습니다. 저를 돕고 싶으시면 커널 버그질라 토론에 참여해 주세요. ^^

[1] 참고로 패치가 Linus 트리에 커밋 14425f1f521f로 추가되었습니다(ALSA: hda/realtek: Add quirk for Samsung Notebook). [2]https://bugzilla.kernel.org/show_bug.cgi?id=207423 [삼]https://www.kernel.org/doc/html/v4.17/sound/hd-audio/notes.html#early-patching

답변2

구성 파일을 편집하고 교체하여 ElementaryOS(Ubuntu 20.04 기반) sudo vim /etc/modprobe.d/alsa-base.conf의 MacBook Pro 2012에서 소리가 나지 않는 문제를 수정했습니다.

options snd-hda-intel model=generic

통과

# options snd-hda-intel model=generic
options snd-hda-intel probe_mask=1

자세한 설명:

참고: 소리가 나지 않는 문제가 왜 발생했는지, 설치 후 바로 작동했기 때문에 이전에 무엇이 변경되었는지 잘 모르겠습니다.

그러나 pacmd list-cards터미널에서 쿼리하면 출력이 (수정 전)에서 다음으로 변경됩니다.

ports:
    analog-input-mic: Mikrofon (priority 8700, latency offset 0 usec, available: unknown)
        properties:
            device.icon_name = "audio-input-microphone"
    analog-output-speaker: Lautsprecher (priority 10000, latency offset 0 usec, available: unknown)
        properties:
            device.icon_name = "audio-speakers"
    analog-output-headphones: Kopfhörer (priority 9900, latency offset 0 usec, available: no)
        properties:
            device.icon_name = "audio-headphones"
    iec958-stereo-output: Digitalausgang (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
        properties:

(수리 후):

ports:
    [Out] Speaker: Speaker (priority 100, latency offset 0 usec, available: unknown)
        properties:
            
    [Out] Headphones: Headphones (priority 200, latency offset 0 usec, available: no)
        properties:
            
    [In] Mic2: Headphones Stereo Microphone (priority 200, latency offset 0 usec, available: unknown)
        properties:

(여기서 구문의 차이점에 유의하세요.)

또한 출력이 sudo vim aplay -l(수정 전)에서 다음으로 변경되었습니다.

Karte 0: PCH [HDA Intel PCH], Gerät 0: Generic Analog [Generic Analog]
  Sub-Geräte: 0/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 1: Generic Digital [Generic Digital]           
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

(수리 후):

Karte 0: PCH [HDA Intel PCH], Gerät 0: CS4206 Analog [CS4206 Analog]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 1: CS4206 Digital [CS4206 Digital]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

답변3

여기서 문제는 Realtek의 ALC298의 버스 요구 사항, 즉 I2S가 다르다는 것입니다. linux56부터는 I2S 오디오 코덱이 지원되지 않는데, 이는 새로운 표준인 것으로 보입니다. Lenovo, Samsung 및 Huawei는 이 새로운 I2S 표준을 준수하는 사운드 카드를 사용하는 것으로 보이며 이 문제와 관련하여 해결되지 않은 스레드/주제가 많이 발견되었습니다.

저와 다른 사람이 Samsung Notebook Pro 9를 사용하면서 헤드폰 문제를 해결하는 해결 방법을 찾았습니다. 이 솔루션은 "초기 패치"라는 커널 기능을 사용하여 기본 핀, 동사, 모델 및 기타 ALSA 관련 설정 속성을 선택적으로 재정의합니다. 대체 사용자 정의 커널 패치를 포함한 전체 정보는 다음에서 찾을 수 있습니다.아치 리눅스 포럼.

답변4

아래 지침을 시도해 보세요. 내 시스템에서 비슷한 문제를 해결할 수 있기 때문입니다.

  1. "aplay" 명령을 실행했는데 아무 소리도 들리지 않습니다. "sudo aplay" 명령을 실행하는 것은 어떻습니까? ALSA가 작동 중이면 소리를 들을 수 있습니다.

  2. 펄스오디오가 귀하의 시스템에서 실행되고 있는 것 같습니다. 그러나 alsa-lib와 snd-hda-intel 드라이버 사이에는 일부 호환성 문제가 있을 수 있습니다.

    $pacmd 목록 카드

"포트"에서 결과를 확인하세요. 스피커와 관련된 내용이 표시되지 않으면 pulseaudio가 사운드 카드를 인식하지 못하는 것입니다.

  1. "/usr/share/alsa/ucm2/HDA-Intel/HDA-Intel.conf" 파일을 편집합니다. "Define.Use" 뒤에 빈 문자열이 표시되면 문자열에 "3"을 입력하면 됩니다. 그런 다음 저장하십시오.

  2. 컴퓨터를 다시 시작하십시오. 여전히 소리가 들리지 않으면 사운드 카드가 "더미 출력"인지 확인하세요. 그렇다면 "/etc/modprobe.d/alsa-base.conf" 끝에 "options snd-hda-intel model=generic"을 추가하세요.

문제는 주로 "HDA-Intel.conf"로 인해 발생합니다. 개발자가 왜 "Define.Use" 문자열을 비워두었는지 이해가 되지 않습니다.

관련 정보