0

Nouveau claims HDMI audio support is done for recent cards, including my 980 Ti. How do I enable it? PulseAudio knows about it:

$ pacmd list-sinks
3 sink(s) available.
    index: 1
    name: <alsa_output.pci-0000_01_00.1.hdmi-surround>
    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,   rear-left: 65536 / 100% / 0.00 dB,   rear-right: 65536 / 100% / 0.00 dB,   front-center: 65536 / 100% / 0.00 dB,   lfe: 65536 / 100% / 0.00 dB
            balance 0.00
    base volume: 65536 / 100% / 0.00 dB
    volume steps: 65537
    muted: no
    current latency: 24.52 ms
    max request: 20 KiB
    max rewind: 20 KiB
    monitor source: 2
    sample spec: s16le 6ch 44100Hz
    channel map: front-left,front-right,rear-left,rear-right,front-center,lfe
                 Surround 5.1
    used by: 0
    linked by: 1
    configured latency: 40.00 ms; range is 0.50 .. 1999.82 ms
    card: 0 <alsa_card.pci-0000_01_00.1>
    module: 6
    properties:
        alsa.resolution_bits = "16"
        device.api = "alsa"
        device.class = "sound"
        alsa.class = "generic"
        alsa.subclass = "generic-mix"
        alsa.name = "HDMI 0"
        alsa.id = "HDMI 0"
        alsa.subdevice = "0"
        alsa.subdevice_name = "subdevice #0"
        alsa.device = "3"
        alsa.card = "1"
        alsa.card_name = "HDA NVidia"
        alsa.long_card_name = "HDA NVidia at 0xa3080000 irq 17"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:01:00.1"
        sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1"
        device.bus = "pci"
        device.vendor.id = "10de"
        device.vendor.name = "NVIDIA Corporation"
        device.product.id = "0fb0"
        device.product.name = "GM200 High Definition Audio"
        device.string = "hdmi:1"
        device.buffering.buffer_size = "1058304"
        device.buffering.fragment_size = "529152"
        device.access_mode = "mmap+timer"
        device.profile.name = "hdmi-surround"
        device.profile.description = "Digital Surround 5.1 (HDMI)"
        device.description = "GM200 High Definition Audio Digital Surround 5.1 (HDMI)"
        alsa.mixer_name = "Nvidia GPU 70 HDMI/DP"
        alsa.components = "HDA:10de0070,1043855b,00100100"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    ports:
        hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "video-display"
    active port: <hdmi-output-0>
[…]

But after connecting HDMI and turning the receiver on all of the profiles are still unavailable:

$ pacmd list-cards
4 card(s) available.
    index: 0
    name: <alsa_card.pci-0000_01_00.1>
    driver: <module-alsa-card.c>
    owner module: 6
    properties:
        alsa.card = "1"
        alsa.card_name = "HDA NVidia"
        alsa.long_card_name = "HDA NVidia at 0xa3080000 irq 17"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:01:00.1"
        sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1"
        device.bus = "pci"
        device.vendor.id = "10de"
        device.vendor.name = "NVIDIA Corporation"
        device.product.id = "0fb0"
        device.product.name = "GM200 High Definition Audio"
        device.string = "1"
        device.description = "GM200 High Definition Audio"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    profiles:
        output:hdmi-stereo: Digital Stereo (HDMI) Output (priority 5900, available: no)
        output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (priority 800, available: no)
        output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (priority 800, available: no)
        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)
        output:hdmi-stereo-extra3: Digital Stereo (HDMI 4) Output (priority 5700, available: no)
        output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4) Output (priority 600, available: no)
        output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4) Output (priority 600, available: no)
        off: Off (priority 0, available: unknown)
    active profile: <output:hdmi-surround>
    sinks:
        alsa_output.pci-0000_01_00.1.hdmi-surround/#1: GM200 High Definition Audio Digital Surround 5.1 (HDMI)
    sources:
        alsa_output.pci-0000_01_00.1.hdmi-surround.monitor/#2: Monitor of GM200 High Definition Audio Digital Surround 5.1 (HDMI)
    ports:
        hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "video-display"
        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"
        hdmi-output-3: HDMI / DisplayPort 4 (priority 5600, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "video-display"
[…]

The video card is already connected to two monitors using DisplayPort.

This is not the same question as How to enable both built-in audio output and HDMI audio output with PulseAudio? because I can't get HDMI to work at all, and not the same as How to force HDMI audio (intel card) to be enabled despite receiving broken EDID because I don't have an Intel card.

  • First step is to see if you get the correct EDID (cat /sys/class/drm/YOUR_CARD/edid | edid-decode, check for audio data block; not sure if this works with nouveau/nvidia driver) and see if it gets translated in the correct ELD ("EDID-like data"), cat /proc/asound/card*/eld\#*. If the EDID is broken, you have to substitute one, even if you don't have an Intel graphics card... so do read the second answer you linked, it does have important information about how everything works. – dirkt Mar 17 at 12:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.