ALSA, PulseAudio 및 Intel HDA PCH(소리 없음)

ALSA, PulseAudio 및 Intel HDA PCH(소리 없음)

저는 Realtek ALC298이라는 단일 온보드 사운드 카드만 가지고 있으며 고급 사운드 구성이 필요하지 않습니다. YouTube 비디오를 듣고, 영화를 보는 등 작동하는 사운드 시스템입니다. 지금까지 저는 많은 온라인 기사를 팔로우했습니다. 내가 시도한 모든 것을 요약하면 다음과 같습니다.

  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

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

WAVE 'test.wav' 재생: 부호 있는 32비트 Little Endian, 속도 44100Hz, 스테레오

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

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

여기에 도움을 주시면 감사하겠습니다. 나는 내 리눅스 기술을 훨씬 넘어섰습니다.

추신: 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에서 덤프를 구문 분석하고 통신을 재생할 수 있습니다. Jaroslav가 이 제안을 한 지 한 달이 지났고 약간의 진전을 이루었지만 여전히 좋은 덤프가 없습니다. 저를 돕고 싶으시면 커널 버그질라 토론에 참여해 주세요. ^^

[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를 사용하는 다른 한 사람에게 도움이 되는 헤드폰을 수정하는 해결 방법을 찾았습니다. 이 솔루션은 "Early Patching"이라는 커널 기능을 사용하여 기본 핀, 동사, 모델 및 기타 ALSA 관련 항목을 선택적으로 재정의합니다. 속성. 대체 사용자 정의 커널 패치를 포함한 전체 정보는 다음에서 찾을 수 있습니다.아치 리눅스 포럼.

답변4

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

  1. "aplay" 명령을 실행했지만 아무 소리도 들리지 않습니다. "sudo aplay" 명령을 실행해 보는 것은 어떨까요? ALSA가 작동 중이면 소리가 들립니다.

  2. 나는 귀하의 시스템에서 pulseaudio가 실행되고 있다고 생각합니다. 그러나 alsa-lib와 snd-hda-intel 드라이버 사이에는 몇 가지 호환 문제가 있을 수 있습니다.

    $pacmd 목록 카드

"포트"에 대한 결과를 확인하십시오. 스피커와 관련된 내용이 보이지 않는다면 펄스오디오에서 사운드 카드를 인식할 수 없다는 뜻입니다.

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

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

이 문제는 주로 "HDA-Intel.conf"로 인해 발생합니다. 개발자가 "Define.Use" 문자열을 빈 상태로 유지하는 이유를 정말로 이해하지 못합니다.

관련 정보