테스트를 위해 Debian으로 업그레이드한 후 PulseAudio가 Intel HDA(Buster)를 인식하지 못합니다.

테스트를 위해 Debian으로 업그레이드한 후 PulseAudio가 Intel HDA(Buster)를 인식하지 못합니다.

여름 동안 테스트를 위해 Debian 9 Stable에서 Debian 10으로 업그레이드한 후 문제를 발견했습니다. PulseAudio가 더 이상 Intel HDA 오디오 장치를 인식하지 못했습니다. 당시에는 nVidia HDMI를 통해 연결된 모니터 오디오로 전환할 수 있었기 때문에 문제를 회피했으며 향후 업데이트에서 문제가 해결되기를 바랍니다. 그들은하지 않습니다. 몇 달이 지나서 작업 공간을 재배치했고 이제 Intel HDA를 다시 작동시켜야 했습니다.

지금까지 본 내용은 이렇습니다...

데비안 10 테스트

커널은 그것을 본다:

# dmesg | grep HDA
[  +0.005509] input: HDA Intel PCH Front Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input17
[  +0.000073] input: HDA Intel PCH Rear Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input18
[  +0.000057] input: HDA Intel PCH Line as /devices/pci0000:00/0000:00:1b.0/sound/card0/input19
[  +0.000054] input: HDA Intel PCH Line Out Front as /devices/pci0000:00/0000:00:1b.0/sound/card0/input20
[  +0.000052] input: HDA Intel PCH Line Out Surround as /devices/pci0000:00/0000:00:1b.0/sound/card0/input21
[  +0.000051] input: HDA Intel PCH Line Out CLFE as /devices/pci0000:00/0000:00:1b.0/sound/card0/input22
[  +0.000053] input: HDA Intel PCH Line Out Side as /devices/pci0000:00/0000:00:1b.0/sound/card0/input23
[  +0.000058] input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input24
[followed by NVidia HDMI audio devices that are recognized]

# lspci -nnk | grep -A2 Audio
00:1b.0 Audio device [0403]: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller [8086:1e20] (rev 04)
    Subsystem: Gigabyte Technology Co., Ltd 7 Series/C216 Chipset Family High Definition Audio Controller [1458:a002]
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_hda_intel
[followed by NVidia HDMI audio devices that are recognized]

ALSA는 다음을 확인했습니다.

# aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: Generic Analog [Generic Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: Generic Digital [Generic Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
[followed by NVidia HDMI audio devices that are recognized]

# aplay -L | grep PCH
default:CARD=PCH
    HDA Intel PCH, Generic Analog
sysdefault:CARD=PCH
    HDA Intel PCH, Generic Analog
front:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Digital
dmix:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
dmix:CARD=PCH,DEV=1
    HDA Intel PCH, Generic Digital
dsnoop:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
dsnoop:CARD=PCH,DEV=1
    HDA Intel PCH, Generic Digital
hw:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
hw:CARD=PCH,DEV=1
    HDA Intel PCH, Generic Digital
plughw:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
plughw:CARD=PCH,DEV=1
    HDA Intel PCH, Generic Digital

스피커 테스트는 aplay -D와 마찬가지로 정상적으로 오디오를 재생합니다. 기본값: CARD=PCH /usr/share/sounds/alsa/Front_Left.wav

그러나 PulseAudio는 장치를 전혀 볼 수 없습니다.

$ pacmd list-sinks
1 sink(s) available.
  * index: 0
    name: <auto_null>
    driver: <module-null-sink.c>
    flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
    state: SUSPENDED
    suspend cause: IDLE
    priority: 1000
    volume: front-left: 55705 /  85% / -4.24 dB,   front-right: 55705 /  85% / -4.24 dB
            balance 0.00
    base volume: 65536 / 100% / 0.00 dB
    volume steps: 65537
    muted: no
    current latency: 0.00 ms
    max request: 344 KiB
    max rewind: 344 KiB
    monitor source: 0
    sample spec: s16le 2ch 44100Hz
    channel map: front-left,front-right
                 Stereo
    used by: 0
    linked by: 0
    configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
    module: 16
    properties:
        device.description = "Dummy Output"
        device.class = "abstract"
        device.icon_name = "audio-card"

사운드 설정에 들어가면 가상 출력 장치만 보입니다. (nVidia 장치는 재배치 당시 오디오 없이 다른 모니터를 사용하고 있었기 때문에 여기에 더 이상 나열되지 않습니다. 따라서 현재 HDMI 오디오 장치가 연결되어 있지 않습니다.)

몇 가지 레거시 문제가 있을 수 있다고 생각하여 PulseAudio 구성을 지우려고 했습니다.

rm ~/.pulse/* ~/.config/pulse/*

데비안 9 안정 버전

이 컴퓨터에는 Intel HDA가 PulseAudio에서 작동하는 Debian 9 stable을 실행하는 또 다른 파티션이 있고 ALSA 드라이버와 Debian 10 사이에는 확실히 차이점이 있습니다. 아래에 제가 알아차린 차이점이 있습니다.

# aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC887-VD Digital [ALC887-VD Digital]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

# aplay -L | grep PCH

sysdefault:CARD=PCH
    HDA Intel PCH, ALC887-VD Analog
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Digital
dmix:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
dmix:CARD=PCH,DEV=1
    HDA Intel PCH, ALC887-VD Digital
dsnoop:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
dsnoop:CARD=PCH,DEV=1
    HDA Intel PCH, ALC887-VD Digital
hw:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
hw:CARD=PCH,DEV=1
    HDA Intel PCH, ALC887-VD Digital
plughw:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
plughw:CARD=PCH,DEV=1
    HDA Intel PCH, ALC887-VD Digital

물론 Debian 9에서는 PulseAudio에서 Intel HDA를 볼 수 있습니다.

$ pacmd list-sinks
1 sink(s) available.
  * index: 2
    name: <alsa_output.pci-0000_00_1b.0.iec958-stereo>
    driver: <module-alsa-card.c>
    flags: HARDWARE HW_MUTE_CTRL DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
    state: RUNNING
    suspend cause: 
    priority: 9958
    volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
            balance 0.00
    base volume: 65536 / 100% / 0.00 dB
    volume steps: 65537
    muted: no
    current latency: 24.26 ms
    max request: 4 KiB
    max rewind: 344 KiB
    monitor source: 3
    sample spec: s16le 2ch 48000Hz
    channel map: front-left,front-right
                 Stereo
    used by: 1
    linked by: 1
    configured latency: 25.00 ms; range is 0.50 .. 1837.50 ms
    card: 1 <alsa_card.pci-0000_00_1b.0>
    module: 7
    properties:
        alsa.resolution_bits = "16"
        device.api = "alsa"
        device.class = "sound"
        alsa.class = "generic"
        alsa.subclass = "generic-mix"
        alsa.name = "ALC887-VD Digital"
        alsa.id = "ALC887-VD Digital"
        alsa.subdevice = "0"
        alsa.subdevice_name = "subdevice #0"
        alsa.device = "1"
        alsa.card = "0"
        alsa.card_name = "HDA Intel PCH"
        alsa.long_card_name = "HDA Intel PCH at 0xf5130000 irq 30"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:00:1b.0"
        sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
        device.bus = "pci"
        device.vendor.id = "8086"
        device.vendor.name = "Intel Corporation"
        device.product.id = "1e20"
        device.product.name = "7 Series/C216 Chipset Family High Definition Audio Controller"
        device.form_factor = "internal"
        device.string = "iec958:0"
        device.buffering.buffer_size = "352800"
        device.buffering.fragment_size = "176400"
        device.access_mode = "mmap+timer"
        device.profile.name = "iec958-stereo"
        device.profile.description = "Digital Stereo (IEC958)"
        device.description = "Built-in Audio Digital Stereo (IEC958)"
        alsa.mixer_name = "Realtek ALC887-VD"
        alsa.components = "HDA:10ec0887,1458a002,00100302"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    ports:
        iec958-stereo-output: Digital Output (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
            properties:

    active port: <iec958-stereo-output>

따라서 질문은 분명합니다. Debian 10의 PulseAudio에서 Intel HDA 오디오를 다시 작동시키는 방법은 무엇입니까? 구성 관점에서 볼 때 이는 내가 해결할 수 있는 문제입니까, 아니면 ALSA 또는 PulseAudio 유지 관리자가 해결해야 하는 드라이버 문제입니까?

답변1

같은 문제로 인해 여기까지 왔습니다. Stretch에서 업그레이드한 후 오디오가 사라졌습니다. 유사한 증상 및 출력(Nvidia 카드 및 Intel HDA 사운드). 그러나 지침을 따르는 동안 이 단계를 수행할 수 없다는 것을 발견했습니다.

root@desk:~# aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Center.wav
aplay: main:828: audio open error: Device or resource busy

나는 그 범인이 소심함이라는 것을 발견했습니다.

root@desk:~# fuser -v /dev/snd/*
                     USER        PID ACCESS COMMAND
/dev/snd/pcmC0D0p:   timidity   1274 F...m timidity
/dev/snd/seq:        timidity   1274 F.... timidity

일단 죽이면 편집을 계속할 수 /etc/pulse/default.pa있고 모든 것이 제자리에 있습니다. 문제가 PA 싱크가 부족한 것인지 아니면 인계받기에 소심한 것인지는 아직도 잘 모르겠습니다.

버그 보고서 제출도 고려했지만 어느 것이 더 적절한지 잘 모르겠습니다. 제안 사항이 있으시면 기꺼이 이를 따르고 보고서에 지원을 추가하겠습니다.

솔루션을 공유해 주셔서 감사합니다!

답변2

방금 이 문제가 발생했는데 Timidity를 제거하면 문제가 해결되었습니다. 말 그대로 apt에서 패키지를 제거했을 때 사운드 카드가 있다는 알림(볼륨 변경으로 설명됨)을 봤습니다.

답변3

다른 사람이 이 문제에 직면할 경우 PulseAudio가 ALSA 장치를 사용하도록 하는 해결 방법은 다음과 같습니다.

먼저 ALSA를 통해 직접 오디오를 재생하여 필요한 사운드 카드와 장비가 올바른지 확인하세요.

aplay -D plughw:<CARD#>,<DEVICE#> /usr/share/sounds/alsa/Front_Center.wav

내 경우에는 광학 오디오 출력을 원하므로 aplay -l위 질문에 표시된 대로 내 출력을 기준으로 하면 다음과 같습니다.

aplay -D plughw:0,1 /usr/share/sounds/alsa/Front_Center.wav

카드 및 장치 번호를 기록하고 항목을 추가합니다 /etc/pulse/default.pa(0,1을 이전 단계에서 적합한 값으로 대체).

load-module module-alsa-sink device=plughw:0,1

전에 이 줄을 추가했어요.ifexists 모듈-udev-Detect.so파일의 행(예:### 오디오 드라이버의 정적 로딩논평)

그런 다음 데스크톱 세션에 로그인한 사용자로 다음 명령을 실행합니다(예:아니요루트로):

pulseaudio --kill
pulseaudio --start

그런 다음 사운드 설정을 열어 카드를 보고 선택할 수 있습니다.

여기에 이미지 설명을 입력하세요.

이 시점에서 다시 PulseAudio를 통해 오디오를 재생할 수 있습니다. (내가 알아차린 한 가지는 pacmd list-cards이것이아직지금 작동하더라도 카드를 나열하지 마세요) 알림: 이는 장기적인 수정이 아닌 해결 방법이므로 나중에 어느 시점에 실행 취소하여 작동하는지 확인할 수 있도록 메모해 두시기 바랍니다. 올바르게 수정하세요. 하지만 지금은 오디오가 작동합니다.

답변4

Debian 9에서 Debian 10으로 업그레이드한 후 가상 수신기만 있고 오디오는 없습니다.

aplay -l실패, 99-pulse.conf 열기 오류 보고

/etc/alsa/conf.d/99-pulse.confXubuntu 설치 내용을 사용하여 만들었습니다 .

# PulseAudio alsa plugin configuration file to set the pulseaudio plugin as
# default output for applications using alsa when pulseaudio is running.
hook_func.pulse_load_if_running {
    lib "libasound_module_conf_pulse.so"
    func "conf_pulse_hook_load_if_running"
}

@hooks [
    {
        func pulse_load_if_running
        files [
            "/usr/share/alsa/pulse-alsa.conf"
        ]
        errors false
    }
]

이것은 내 문제를 해결했습니다.

관련 정보