O PulseAudio não reconhece o Intel HDA após a atualização para o teste Debian (Buster)

9

Percebi um problema durante o verão após a atualização do Debian 9 estável para o teste do Debian 10: O PulseAudio não reconheceu mais meus dispositivos de áudio Intel HDA. Na época, consegui mudar para o áudio do meu monitor conectado via nVidia HDMI, então resolvi o problema esperando que uma atualização futura o corrigisse. Eles não. Avanço rápido de alguns meses e reorganizei meu espaço de trabalho e agora preciso que o Intel HDA volte a funcionar.

Aqui está o que eu olhei até agora ...

Teste do Debian 10

O kernel vê:

# 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]

A ALSA vê:

# 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

o teste do alto-falante reproduz o áudio normalmente como o aplay -D padrão: CARD = PCH /usr/share/sounds/alsa/Front_Left.wav

No entanto, o PulseAudio não vê o dispositivo:

$ 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"

Quando vou às Configurações de som, tudo o que vejo é o dispositivo Dummy Output. (Os dispositivos nVidia não estão mais listados aqui porque, para reorganizar as coisas, estou usando um monitor diferente sem áudio, para que não haja nenhum dispositivo de áudio HDMI conectado no momento.)

Tentei limpar a configuração do PulseAudio pensando que eu poderia ter algum fragmento herdado por meio de:

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

Debian 9 Estável

Eu tenho outra partição nesta máquina que ainda está executando o Debian 9 estável, onde o Intel HDA funciona com o PulseAudio, e parece haver diferenças nos drivers da ALSA versus o Debian 10, então abaixo estão as diferenças que eu notei ...

# 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

E, claro, o Debian 9 vê o Intel HDA no PulseAudio:

$ 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>

Portanto, a pergunta é obviamente: como faço para que o áudio Intel HDA volte a funcionar no PulseAudio com Debian 10? Isso é algo que eu posso corrigir do ponto de vista da configuração ou é um problema de driver que precisa ser corrigido pelos mantenedores da ALSA ou do PulseAudio?

blihp
fonte
1
O Debian 10 Buster ainda está em teste. O máximo que você pode fazer aqui é registrar um relatório de bug e aguardar até que ele seja oficialmente lançado e tenha suporte real.
Nasir Riley
Mas um relatório de bug para quê? (ou seja, os drivers do kernel? ALSA? PulseAudio?) Está claro que o comportamento mudou, mas não está claro para mim qual é a origem do problema. Também não sei se o problema é específico da minha configuração atual ou se uma reinstalação completa (algo que não posso fazer agora) será reproduzida. Os mantenedores de pacotes Debian querem um pacote específico com falha nas etapas de reprodução ... Não acredito que ainda esteja lá.
blihp
Você precisará solucionar o PulseAudio e verificar se há algum problema com o kernel ou algo mais. Você também pode esperar até que seja lançado oficialmente e ver se o problema foi resolvido.
Nasir Riley
@blihp você resolveu seu problema? Estou enfrentando exatamente o mesmo…
nicoco
1
@nicoco A solução que encontrei funciona para você?
blihp

Respostas:

10

Acabei aqui por causa do mesmo problema. Após a atualização do Stretch, o áudio desapareceu. Sintomas e saídas semelhantes (placa Nvidia e som Intel HDA). Ao seguir as instruções, porém, descobri que não conseguia executar esta etapa:

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

Eu descobri que o culpado era a timidez:

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

Depois que eu o matei, eu poderia continuar editando /etc/pulse/default.pa e tudo se encaixava. Ainda não tenho certeza se o problema foi o coletor de PA ausente ou a timidez assumindo o controle.

Também considerei arquivar um relatório de erro, mas não tenho certeza de onde seria mais apropriado. Se você tiver alguma sugestão, ficarei feliz em seguir seu exemplo e adicionar meu apoio ao relatório.

Obrigado por compartilhar a solução!

Ntropia
fonte
2
Acabei de remover a timidez do meu sistema - obrigado!
DSZ
exatamente mesmo problema, removê-lo resolvido o problema, provavelmente eu usei timidez no passado, mas não recentemente, por isso mesmo se houver talvez solução mais adequada, a remoção é muito bem :)
muni764
Eu não o instalei em primeiro lugar e ainda enfrento problemas semelhantes.
Martin Ueding 22/08/19
No meu caso, foi o muroardque estava amarrando o dispositivo de som. Um lembrete: fuserprovavelmente não será capaz de lhe dizer algo útil, a menos que você lembre de executá-lo como root.
rakslice
FYI: Eu tive o mesmo problema. E eu corrigi da mesma maneira - no entanto, fuser -v /dev/snd/*não produziu nada. Ainda assim eu o corrigi desinstalando a timidez!
christianparpart
8

Acabei de ter esse problema exato e a desinstalação do Timidity resolveu o problema. Literalmente, como o pacote foi removido pelo apt, vi uma notificação mostrando que tenho uma placa de som (interpretada como uma alteração de volume).

Debianuser
fonte
2
Exatamente o mesmo problema aqui também. Sou desenvolvedor Debian, então posso lhe dizer onde procurar. Veja bugs.debian.org/910048 ("timidez: a atualização para 2.14.0-2 interrompeu o som via pulseaudio")
Steve McIntyre
mesmo problema, obrigado
muni764 08/07/19
@SteveMcIntyre O erro é bugs.debian.org/901148
LatinSuD
De fato, um simples apt-get purge timidityresolveu todos os meus problemas, depois de mexer por horas ... Muito obrigado por compartilhar sua solução.
Clément
Eu tenho um sistema e timiditynão foi instalado para começar. Ainda não tenho som mesmo depois pulseaudio --start. E usando aplayeu recebo alguns sons.
Martin Ueding 22/08/19
5

Se alguém mais se deparar com isso, aqui está uma solução alternativa para forçar o PulseAudio a usar o dispositivo ALSA ...

Primeiro, confirme se você conhece a placa de som e o dispositivo corretos que deseja, reproduzindo algum áudio diretamente via ALSA:

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

No meu caso, eu queria a saída de áudio óptico com base na minha aplay -lsaída, como visto na minha pergunta acima:

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

Anote o número do cartão e do dispositivo e adicione uma entrada em /etc/pulse/default.pa(substitua 0,1 pelo que funcionou para você na etapa anterior):

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

Eu adicionei esta linha imediatamente antes da linha .ifexists module-udev-detect.so no arquivo (ou seja, abaixo da linha ### Carregar drivers de áudio estaticamente comentário )

Em seguida, execute o seguinte como o usuário em que sua sessão da área de trabalho está conectada (ou seja, não como root):

pulseaudio --kill
pulseaudio --start

Em seguida, você poderá abrir as Configurações de som para ver e selecionar o cartão:

insira a descrição da imagem aqui

Neste ponto, você deve ter a reprodução de áudio através do PulseAudio funcionando novamente. (Algo que notei é que pacmd list-cardsvai ainda não listar o cartão mesmo que agora trabalha) Lembrete: Esta é uma solução e não a correção a longo prazo isso não deixe de fazer uma nota a si mesmo para desfazer isso em algum momento no futuro para ver se foi corrigido corretamente. Mas o áudio fica funcionando por enquanto.

blihp
fonte
0

eu tinha apenas um dummy-sink e nenhum áudio depois do debian 9 para o debian 10 upgrade

aplay -l falhou, relatando erro ao abrir 99-pulse.conf

eu criei /etc/alsa/conf.d/99-pulse.confcom o conteúdo retirado de uma instalação do Xubuntu:

# 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
    }
]

isso resolveu meus problemas

nd34567s32e
fonte
Este arquivo já existe no sistema que eu tinha instalado com Debian 9 e atualizado para Debian 10.
Martin Ueding