IEC958 (S/PDIF) not working

7,934

The answer is actually so simple that it's silly that it's not included in the default gnome audio control panel.

Step 1:

sudo apt install libavresample-dev pavucontrol libasound2-plugins-extra

Step 2:

pavucontrol

Step 3:

Tick all the boxes for the advanced audio codecs

Step 4:

Enjoy amazing sound over S/PDIF out (optical or coax) to a speaker set that supports it. enter image description here

Share:
7,934

Related videos on Youtube

Admin
Author by

Admin

Updated on September 18, 2022

Comments

  • Admin
    Admin over 1 year

    I can't get my IEC958 output working. The optical wire is physically connected to a powered 192KHz DAC via my sound card:

    ツ sudo lspci |grep -i audio 00:1b.0 Audio device: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller (rev 04)

    I have several devices detected:

    devices

    When I select the first, "HDMI / DisplayPort 2 - Built-in Audio", sound comes out of the speaker integral to my monitor.

    When I select the second, "Line Out - Built-in Audio" sound comes out of the headphone jack I have connected directly to the sound card.

    I know for a fact that the DAC works because I was using it with Archlinux as recently as two days ago and nothing has changed in the physical setup.

    Everything appears to be set up correctly in pavucontrol:

    Configuration. Again, if I select HDMI or Line Out, I get sound. Just not with S/PDIF: config Input device includes a monitor (is that correct??) input Output device shows bouncing bar on the vumeter: output

    The sound card is integral to my motherboard. Some more diagnostic info:

    ツ aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 1: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
      Subdevices: 0/1
      Subdevice #0: subdevice #0
    card 1: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    
    ツ pacmd list-cards
    1 card(s) available.
        index: 0
        name: 
        driver: 
        owner module: 7
        properties:
            alsa.card = "1"
            alsa.card_name = "HDA Intel PCH"
            alsa.long_card_name = "HDA Intel PCH at 0xf7d30000 irq 46"
            alsa.driver_name = "snd_hda_intel"
            device.bus_path = "pci-0000:00:1b.0"
            sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"
            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 = "1"
            device.description = "Built-in Audio"
            module-udev-detect.discovered = "1"
            device.icon_name = "audio-card-pci"
        profiles:
            input:analog-stereo: Analog Stereo Input (priority 65, available: no)
            output:analog-stereo: Analog Stereo Output (priority 6500, available: unknown)
            output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (priority 6565, available: unknown)
            output:analog-surround-21: Analog Surround 2.1 Output (priority 1300, available: unknown)
            output:analog-surround-21+input:analog-stereo: Analog Surround 2.1 Output + Analog Stereo Input (priority 1365, available: unknown)
            output:analog-surround-40: Analog Surround 4.0 Output (priority 1200, available: unknown)
            output:analog-surround-40+input:analog-stereo: Analog Surround 4.0 Output + Analog Stereo Input (priority 1265, available: unknown)
            output:analog-surround-41: Analog Surround 4.1 Output (priority 1300, available: unknown)
            output:analog-surround-41+input:analog-stereo: Analog Surround 4.1 Output + Analog Stereo Input (priority 1365, available: unknown)
            output:analog-surround-50: Analog Surround 5.0 Output (priority 1200, available: unknown)
            output:analog-surround-50+input:analog-stereo: Analog Surround 5.0 Output + Analog Stereo Input (priority 1265, available: unknown)
            output:analog-surround-51: Analog Surround 5.1 Output (priority 1300, available: unknown)
            output:analog-surround-51+input:analog-stereo: Analog Surround 5.1 Output + Analog Stereo Input (priority 1365, available: unknown)
            output:analog-surround-71: Analog Surround 7.1 Output (priority 1200, available: unknown)
            output:analog-surround-71+input:analog-stereo: Analog Surround 7.1 Output + Analog Stereo Input (priority 1265, available: unknown)
            output:iec958-stereo: Digital Stereo (IEC958) Output (priority 5500, available: unknown)
            output:iec958-stereo+input:analog-stereo: Digital Stereo (IEC958) Output + Analog Stereo Input (priority 5565, available: unknown)
            output:hdmi-stereo: Digital Stereo (HDMI) Output (priority 5900, available: no)
            output:hdmi-stereo+input:analog-stereo: Digital Stereo (HDMI) Output + Analog Stereo Input (priority 5965, available: no)
            output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (priority 800, available: no)
            output:hdmi-surround+input:analog-stereo: Digital Surround 5.1 (HDMI) Output + Analog Stereo Input (priority 865, available: no)
            output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (priority 800, available: no)
            output:hdmi-surround71+input:analog-stereo: Digital Surround 7.1 (HDMI) Output + Analog Stereo Input (priority 865, available: no)
            output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (priority 5700, available: unknown)
            output:hdmi-stereo-extra1+input:analog-stereo: Digital Stereo (HDMI 2) Output + Analog Stereo Input (priority 5765, available: unknown)
            off: Off (priority 0, available: unknown)
        active profile: 
        sinks:
            alsa_output.pci-0000_00_1b.0.iec958-stereo/#59: Built-in Audio Digital Stereo (IEC958)
        sources:
            alsa_output.pci-0000_00_1b.0.iec958-stereo.monitor/#59: Monitor of Built-in Audio Digital Stereo (IEC958)
        ports:
            analog-input-front-mic: Front Microphone (priority 8500, latency offset 0 usec, available: no)
                properties:
                    device.icon_name = "audio-input-microphone"
            analog-input-rear-mic: Rear Microphone (priority 8200, latency offset 0 usec, available: no)
                properties:
                    device.icon_name = "audio-input-microphone"
            analog-input-linein: Line In (priority 8100, latency offset 0 usec, available: no)
                properties:
    
            analog-output-lineout: Line Out (priority 9900, latency offset 0 usec, available: yes)
                properties:
    
            analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: no)
                properties:
                    device.icon_name = "audio-headphones"
            iec958-stereo-output: Digital Output (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
                properties:
    
            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: yes)
                properties:
                    device.icon_name = "video-display"
                    device.product.name = "VX2770 SERIES"
    
    ツ pacmd list-sinks
    1 sink(s) available.
      * index: 59
        name: 
        driver: 
        flags: HARDWARE HW_MUTE_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: RUNNING
        suspend cause: (none)
        priority: 9038
        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: 7.67 ms
        max request: 1 KiB
        max rewind: 1 KiB
        monitor source: 59
        sample spec: s16le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 3
        linked by: 3
        configured latency: 8.00 ms; range is 8.00 .. 371.52 ms
        card: 0 
        module: 7
        properties:
            alsa.resolution_bits = "16"
            device.api = "alsa"
            device.class = "sound"
            alsa.class = "generic"
            alsa.subclass = "generic-mix"
            alsa.name = "ALC892 Digital"
            alsa.id = "ALC892 Digital"
            alsa.subdevice = "0"
            alsa.subdevice_name = "subdevice #0"
            alsa.device = "1"
            alsa.card = "1"
            alsa.card_name = "HDA Intel PCH"
            alsa.long_card_name = "HDA Intel PCH at 0xf7d30000 irq 46"
            alsa.driver_name = "snd_hda_intel"
            device.bus_path = "pci-0000:00:1b.0"
            sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"
            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:1"
            device.buffering.buffer_size = "65536"
            device.buffering.fragment_size = "32768"
            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 ALC892"
            alsa.components = "HDA:10ec0892,104384fb,00100302 HDA:80862806,80860101,00100000"
            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: 
    
    ツ cat /etc/modprobe.d/alsa-base.conf     
    # autoloader aliases
    install sound-slot-0 /sbin/modprobe snd-card-0
    install sound-slot-1 /sbin/modprobe snd-card-1
    install sound-slot-2 /sbin/modprobe snd-card-2
    install sound-slot-3 /sbin/modprobe snd-card-3
    install sound-slot-4 /sbin/modprobe snd-card-4
    install sound-slot-5 /sbin/modprobe snd-card-5
    install sound-slot-6 /sbin/modprobe snd-card-6
    install sound-slot-7 /sbin/modprobe snd-card-7
    
    # Cause optional modules to be loaded above generic modules
    install snd /sbin/modprobe --ignore-install snd $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe --quiet --use-blacklist snd-seq ; }
    #
    # Workaround at bug #499695 (reverted in Ubuntu see LP #319505)
    install snd-pcm /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; }
    install snd-mixer /sbin/modprobe --ignore-install snd-mixer $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-mixer-oss ; : ; }
    install snd-seq /sbin/modprobe --ignore-install snd-seq $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; /sbin/modprobe --quiet --use-blacklist snd-seq-oss ; : ; }
    #
    install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; : ; }
    # Cause optional modules to be loaded above sound card driver modules
    install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-emu10k1-synth ; }
    install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq ; }
    
    # Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
    install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist saa7134-alsa ; : ; }
    # Prevent abnormal drivers from grabbing index 0
    options bt87x index=-2
    options cx88_alsa index=-2
    options saa7134-alsa index=-2
    options snd-atiixp-modem index=-2
    options snd-intel8x0m index=-2
    options snd-via82xx-modem index=-2
    options snd-usb-audio index=-2
    options snd-usb-caiaq index=-2
    options snd-usb-ua101 index=-2
    options snd-usb-us122l index=-2
    options snd-usb-usx2y index=-2
    # Ubuntu #62691, enable MPU for snd-cmipci
    options snd-cmipci mpu_port=0x330 fm_port=0x388
    # Keep snd-pcsp from being loaded as first soundcard
    options snd-pcsp index=-2
    # Keep snd-usb-audio from beeing loaded as first soundcard
    options snd-usb-audio index=-2
    
    options snd-hda-intel index=1
    
    ツ iecset audio on
    snd_ctl_open: No such file or directory
    
    ツ lsmod|grep snd
    snd_hda_codec_hdmi     49152  1
    snd_hda_codec_realtek   106496  1
    snd_hda_codec_generic    73728  1 snd_hda_codec_realtek
    snd_hda_intel          40960  4
    snd_hda_codec         126976  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
    snd_hda_core           81920  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
    snd_hwdep              20480  1 snd_hda_codec
    snd_pcm                98304  5 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
    snd_seq_midi           16384  0
    snd_seq_midi_event     16384  1 snd_seq_midi
    snd_rawmidi            32768  1 snd_seq_midi
    snd_seq                65536  2 snd_seq_midi,snd_seq_midi_event
    snd_seq_device         16384  3 snd_seq,snd_seq_midi,snd_rawmidi
    snd_timer              32768  2 snd_seq,snd_pcm
    snd                    81920  18 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi
    

    Note: I have gone through most of the steps here, https://help.ubuntu.com/community/SoundTroubleshootingProcedure, and I have searched extensively, spending several hours on this yesterday. I am befuddled and posting here as a last resort.

  • noobuntu
    noobuntu about 4 years
    Above answer did work for me, however had to make the necessary changes in the sound settings to hdmi instead. Strange but the spdif sound output definitely definitely working now (definitely no sound over hdmi cable, i'm running it over dvi).
  • dgreene
    dgreene over 2 years
    This worked for me on Ubuntu 20.04; my S/PDIF output was previously capped at two output channels. After installing and enabling the advanced options, I was able to output on 5.1 channels and separately control the volume. Thank you so much!