IEC958 (S/PDIF) not working
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.
Related videos on Youtube
Admin
Updated on September 18, 2022Comments
-
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:
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: Input device includes a monitor (is that correct??) Output device shows bouncing bar on the vumeter:
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 about 4 yearsAbove 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 over 2 yearsThis 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!