pulseaudio: нет HDMI-выхода после обновления с 22 до 24.04

Вопрос или проблема

После обновления до версии 24.04 я не могу заставить HDMI-аудиовыход работать с pulseaudio. Я не использую pipewire. Alsa работает нормально. Я пробовал менять профили и изменять ядра до 5.15 и 6.13, безрезультатно. Любая помощь приветствуется.

$ inxi -A
Audio:
  Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor HD Audio driver: snd_hda_intel
  Device-2: Intel 9 Series Family HD Audio driver: snd_hda_intel
  API: ALSA v: k6.13.0-061300-generic status: kernel-api
  Server-1: PulseAudio v: 16.1 status: active

$ aplay -L | grep hdmi
hdmi:CARD=HDMI,DEV=0
hdmi:CARD=HDMI,DEV=1
hdmi:CARD=HDMI,DEV=2

$ pacmd list-cards
1 card(s) available.
    index: 0
    name: <alsa_card.pci-0000_00_03.0>
    driver: <module-alsa-card.c>
    owner module: 8
    properties:
        alsa.card = "1"
        alsa.card_name = "HDA Intel HDMI"
        alsa.long_card_name = "HDA Intel HDMI at 0xf7c34000 irq 31"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:00:03.0"
        sysfs.path = "/devices/pci0000:00/0000:00:03.0/sound/card1"
        device.bus = "pci"
        device.vendor.id = "8086"
        device.vendor.name = "Intel Corporation"
        device.product.id = "0c0c"
        device.product.name = "Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller"
        device.form_factor = "internal"
        device.string = "1"
        device.description = "Built-in Audio"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    profiles:
        output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (priority 5700, available: no)
        output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Output (priority 600, available: no)
        output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Output (priority 600, available: no)
        output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (priority 5700, available: no)
        output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Output (priority 600, available: no)
        output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Output (priority 600, available: no)
        off: Off (priority 0, available: unknown)
    active profile: <output:hdmi-stereo-extra2>
    sinks:
        alsa_output.pci-0000_00_03.0.hdmi-stereo-extra2/#11: Built-in Audio Digital Stereo (HDMI 3)
    sources:
        alsa_output.pci-0000_00_03.0.hdmi-stereo-extra2.monitor/#11: Monitor of Built-in Audio Digital Stereo (HDMI 3)
    ports:
        hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "video-display"
        hdmi-output-2: HDMI / DisplayPort 3 (priority 5700, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "video-display"

# обратите внимание 'available: no' на всех профилях.

$ pacmd list-sinks
1 sink(s) available.
  * index: 15
        name: <alsa_output.pci-0000_00_03.0.hdmi-stereo-extra2>
        driver: <module-alsa-card.c>
        flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: IDLE
        suspend cause: (none)
        priority: 9030
        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: 35.38 ms
        max request: 6 KiB
        max rewind: 6 KiB
        monitor source: 15
        sample spec: s16le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 0
        linked by: 1
        configured latency: 40.00 ms; range is 0.50 .. 1999.82 ms
        card: 0 <alsa_card.pci-0000_00_03.0>
        module: 8
        properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "HDMI 2"
                alsa.id = "HDMI 2"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "8"
                alsa.card = "1"
                alsa.card_name = "HDA Intel HDMI"
                alsa.long_card_name = "HDA Intel HDMI at 0xf7c34000 irq 31"
                alsa.driver_name = "snd_hda_intel"
                device.bus_path = "pci-0000:00:03.0"
                sysfs.path = "/devices/pci0000:00/0000:00:03.0/sound/card1"
                device.bus = "pci"
                device.vendor.id = "8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "0c0c"
                device.product.name = "Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller"
                device.form_factor = "internal"
                device.string = "hdmi:1,2"
                device.buffering.buffer_size = "352768"
                device.buffering.fragment_size = "176384"
                device.access_mode = "mmap+timer"
                device.profile.name = "hdmi-stereo-extra2"
                device.profile.description = "Digital Stereo (HDMI 3)"
                device.description = "Built-in Audio Digital Stereo (HDMI 3)"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-pci"
        ports:
                hdmi-output-2: HDMI / DisplayPort 3 (priority 5700, latency offset 0 usec, available: no)
                        properties:
                                device.icon_name = "video-display"
        active port: <hdmi-output-2>

$ journalctl -k | grep -iE '00:03.0|00:1b.0|snd|hda|alsa|sof|sound|hdmi|codec'
Feb 12 23:17:56 htpc kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-6.13.0-061300-generic root=UUID=724653e7-68e6-4f2f-8616-63cf19d5160c ro nomdmonddf nomdmonisw nomdmonddf nomdmonisw mitigations=off snd-hda-intel.snoop=0
Feb 12 23:17:56 htpc kernel: Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.13.0-061300-generic root=UUID=724653e7-68e6-4f2f-8616-63cf19d5160c ro nomdmonddf nomdmonisw nomdmonddf nomdmonisw mitigations=off snd-hda-intel.snoop=0
Feb 12 23:17:56 htpc kernel: software IO TLB: area num 4.
Feb 12 23:17:56 htpc kernel: pci 0000:00:03.0: [8086:0c0c] type 00 class 0x040300 PCIe Root Complex Integrated Endpoint
Feb 12 23:17:56 htpc kernel: pci 0000:00:03.0: BAR 0 [mem 0xf7c34000-0xf7c37fff 64bit]
Feb 12 23:17:56 htpc kernel: pci 0000:00:1b.0: [8086:8ca0] type 00 class 0x040300 PCIe Root Complex Integrated Endpoint
Feb 12 23:17:56 htpc kernel: pci 0000:00:1b.0: BAR 0 [mem 0xf7c30000-0xf7c33fff 64bit]
Feb 12 23:17:56 htpc kernel: pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
Feb 12 23:17:56 htpc kernel: pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
Feb 12 23:17:56 htpc kernel: PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
Feb 12 23:17:56 htpc kernel: software IO TLB: mapped [mem 0x00000000c8beb000-0x00000000ccbeb000] (64MB)
Feb 12 23:17:58 htpc kernel: snd_hda_intel 0000:00:03.0: Force to non-snoop mode by module option
Feb 12 23:17:58 htpc kernel: snd_hda_intel 0000:00:1b.0: Force to non-snoop mode by module option
Feb 12 23:17:58 htpc kernel: snd_hda_intel 0000:00:03.0: Force to non-snoop mode by module option
Feb 12 23:17:58 htpc kernel: snd_hda_codec_generic hdaudioC0D0: autoconfig for Generic: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:line
Feb 12 23:17:58 htpc kernel: snd_hda_codec_generic hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
Feb 12 23:17:58 htpc kernel: snd_hda_codec_generic hdaudioC0D0:    hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
Feb 12 23:17:58 htpc kernel: snd_hda_codec_generic hdaudioC0D0:    mono: mono_out=0x0
Feb 12 23:17:58 htpc kernel: snd_hda_codec_generic hdaudioC0D0:    dig-out=0x11/0x1e
Feb 12 23:17:58 htpc kernel: snd_hda_codec_generic hdaudioC0D0:    inputs:
Feb 12 23:17:58 htpc kernel: snd_hda_codec_generic hdaudioC0D0:      Rear Mic=0x18
Feb 12 23:17:58 htpc kernel: snd_hda_codec_generic hdaudioC0D0:      Front Mic=0x19
Feb 12 23:17:58 htpc kernel: snd_hda_codec_generic hdaudioC0D0:      Line=0x1a
Feb 12 23:17:58 htpc kernel: snd_hda_intel 0000:00:03.0: Force to non-snoop mode by module option
Feb 12 23:17:58 htpc kernel: input: HDA Intel PCH Rear Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input13
Feb 12 23:17:58 htpc kernel: input: HDA Intel PCH Front Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input14
Feb 12 23:17:58 htpc kernel: input: HDA Intel PCH Line as /devices/pci0000:00/0000:00:1b.0/sound/card0/input15
Feb 12 23:17:58 htpc kernel: input: HDA Intel PCH Line Out as /devices/pci0000:00/0000:00:1b.0/sound/card0/input16
Feb 12 23:17:58 htpc kernel: input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input17
Feb 12 23:17:58 htpc kernel: snd_hda_intel 0000:00:03.0: Force to non-snoop mode by module option
Feb 12 23:17:58 htpc kernel: snd_hda_intel 0000:00:03.0: Force to non-snoop mode by module option
Feb 12 23:17:59 htpc kernel: snd_hda_intel 0000:00:03.0: Force to non-snoop mode by module option
Feb 12 23:17:59 htpc kernel: snd_hda_intel 0000:00:03.0: Force to non-snoop mode by module option
Feb 12 23:17:59 htpc kernel: snd_hda_intel 0000:00:03.0: Force to non-snoop mode by module option
Feb 12 23:17:59 htpc kernel: snd_hda_intel 0000:00:03.0: Force to non-snoop mode by module option
Feb 12 23:17:59 htpc kernel: snd_hda_intel 0000:00:03.0: Force to non-snoop mode by module option
Feb 12 23:17:59 htpc kernel: snd_hda_intel 0000:00:03.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
Feb 12 23:17:59 htpc kernel: input: HDA Intel HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.0/sound/card1/input20
Feb 12 23:17:59 htpc kernel: input: HDA Intel HDMI HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.0/sound/card1/input21
Feb 12 23:17:59 htpc kernel: input: HDA Intel HDMI HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.0/sound/card1/input22
Feb 12 23:17:59 htpc kernel: snd_hda_codec_hdmi hdaudioC1D0: HDMI: audio coding xtype 11 not expected

$ aplay -D "plughw:1,3" /usr/share/sounds/purple/login.wav
# это работает

$ paplay /usr/share/sounds/purple/login.wav
# это не работает

Только один раз у меня получилось заставить paplay издать звук после выполнения команды pactl set-card-profile 0 "output:hdmi-stereo-extra2", но это больше не помогает.

Все каналы включены в alsamixer.

pavucontrol показывает все профили как “(неподключено)(недоступно)”

.

Ответ или решение

Обновление операционной системы до версии 24.04 привело к проблемам с выводом звука через HDMI, особенно используя PulseAudio. Ваше оборудование использует драйвер snd_hda_intel для аудиоустройств, и хотя ALSA работает корректно, PulseAudio демонстрирует проблемы. Конфигурации ядра 5.15 и 6.13 не улучшили ситуацию. Рассмотрим возможные причины и решения данной проблемы.

Теория

Проблемы с HDMI-выходом могут возникать по нескольким причинам, включая несовместимость драйверов, недочёты в конфигурации PulseAudio или дефектное распознавание устройств. PulseAudio, будучи сервером звука, надстраивается над ALSA и должен корректно указывать устройства вывода. Если PulseAudio отображает HDMI-профили как "недоступные", это обычно указывает на то, что устройства не распознаются системой или у них некорректная конфигурация.

Ваши отчёты показывают, что в PulseAudio доступны только "недоступные" профили для HDMI, несмотря на то, что ALSA корректно идентифицирует HDMI устройства:

  • pacmd list-cards и pacmd list-sinks содержат профили для HDMI, но все они имеют статус "недоступно".
  • pavucontrol также показывает профили как "(не подключены)(недоступны)", указывая на проблему конфигурации или определения устройств.

Пример

На форуме Arch Linux и других сообществах Linux пользователи делятся схожими проблемами при переходе на новые версии дистрибутивов, особенно Ubuntu. Подобные случаи часто решаются через ручное вмешательство в настройки конфигурации PulseAudio или ALSA. Среди типичных рекомендаций:

  1. Обновление конфигурационных файлов.
  2. Проверка параметров загрузки ядра, особенно связанных с snd_hda_intel.
  3. Переход на PipeWire при сохранении проблем с PulseAudio.

Применение

Чтобы решить вашу проблему, выполните следующие шаги:

  1. Проверка конфигурации PulseAudio: Проверьте, есть ли изменения в конфигурации PulseAudio, которые могли произойти во время обновления. Для этого обратите внимание на файлы в директории ~/.config/pulse/ и восстановите их из резервной копии или переименуйте, чтобы PulseAudio создал новые.

  2. Перенастройка драйверов:

    • Убедитесь, что не осталось старых установок или конфигурационных файлов, связанных с ALSA или PulseAudio, которые могут влиять на работу системы.
    • Найдите команды, применяемые к snd_hda_intel, такие как snoop и non-snoop, и опытным путём попробуйте изменить их значения.
  3. Проверка устройства и доступных профилей:

    • Воспользуйтесь alsa-tools и другими утилитами, чтобы убедиться, что устройства правильно загружаются и отображаются. Попробуйте перезагрузить service PulseAudio:
      pulseaudio --kill
      pulseaudio --start
  4. Проверка HDMI-кабеля и порта: Попробуйте использовать другой HDMI-кабель или подключить к другому HDMI-порту, поскольку аппаратные неисправности также могут быть причиной.

  5. Нахождение временного решения при помощи ALSA: Поскольку команды aplay работают корректно, можно использовать временные меры с ALSA, пока не решится проблема в PulseAudio.

  6. Использование PipeWire: Рассмотрите возможность перехода на PipeWire как современную альтернативу PulseAudio, если последние средства не приводят к улучшению. PipeWire более адаптивен к новым драйверам и устройствам.

  7. Обновление и проверка программного обеспечения: Убедитесь, что программное обеспечение PulseAudio и ALSA находится в актуальном состоянии. Периодические обновления могут исправлять ошибки, включая вашу.

Таким образом, детализированное понимание конфигураций, активное участие в сообществе и пробные настройки помогут обеспечить стабильный звук через HDMI после обновления. Важно проверять каждое изменение и тестировать систему, чтобы чётко идентифицировать, что именно решило проблему.

Оцените материал
Добавить комментарий

Капча загружается...