You are not logged in.

#1 2026-08-10 19:21

jokabomo
Member
Registered: 2026-08-10
Posts: 6

Scratchy HDMI Audio

I've just installed Q4OS on an old laptop that was running Windows 10. I've got everything working except HDMI audio. The sound cuts in-and-out and when it is in, sounds distorted (like too much gain). If I switch to the laptop's internal speakers everything is fine.

I tried searching for a solution but everything I've read tells me to edit config files that don't exist on my system.

Offline

#2 2026-08-10 19:32

q4osteam
Q4OS Team
Registered: 2015-12-06
Posts: 6,291
Website

Re: Scratchy HDMI Audio

Welcome to the forum smile

Please open a terminal and run:
$ inxi -A

Then, with HDMI selected as the audio output, run:
$ pactl list sinks

Post both outputs here. Since the internal speakers work correctly, let's first identify the HDMI audio device and its profile before changing any configuration files.

Offline

#3 2026-08-11 02:56

jokabomo
Member
Registered: 2026-08-10
Posts: 6

Re: Scratchy HDMI Audio

Ok. Here's the output.

john@q4os-desktop:~$ inxi -A
Audio:
  Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor HD Audio
    driver: snd_hda_intel
  Device-2: Intel 8 Series/C220 Series High Definition Audio
    driver: snd_hda_intel
  API: ALSA v: k6.12.101+deb13-amd64 status: kernel-api
  Server-1: PipeWire v: 1.4.2 status: active
john@q4os-desktop:~$ pactl list sinks
Sink #57
        State: SUSPENDED
        Name: alsa_output.pci-0000_00_1b.0.analog-stereo
        Description: Built-in Audio Analog Stereo
        Driver: PipeWire
        Sample Specification: s32le 2ch 48000Hz
        Channel Map: front-left,front-right
        Owner Module: 4294967295
        Mute: no
        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
        Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
        Properties:
                alsa.card = "1"
                alsa.card_name = "HDA Intel PCH"
                alsa.class = "generic"
                alsa.components = "HDA:111d76e0,103c1966,00100303"
                alsa.device = "0"
                alsa.driver_name = "snd_hda_intel"
                alsa.id = "92HD91BXX Analog"
                alsa.long_card_name = "HDA Intel PCH at 0xb2714000 irq 38"
                alsa.mixer_name = "IDT 92HD91BXX"
                alsa.name = "92HD91BXX Analog"
                alsa.resolution_bits = "16"
                alsa.subclass = "generic-mix"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.sync.id = "00000000:00000000:00000000:00000000"
                api.alsa.card.longname = "HDA Intel PCH at 0xb2714000 irq 38"
                api.alsa.card.name = "HDA Intel PCH"
                api.alsa.path = "front:1"
                api.alsa.pcm.card = "1"
                api.alsa.pcm.stream = "playback"
                audio.channels = "2"
                audio.position = "FL,FR"
                card.profile.device = "3"
                device.api = "alsa"
                device.class = "sound"
                device.icon_name = "audio-card-analog"
                device.id = "49"
                device.profile.description = "Analog Stereo"
                device.profile.name = "analog-stereo"
                device.routes = "2"
                factory.name = "api.alsa.pcm.sink"
                media.class = "Audio/Sink"
                device.description = "Built-in Audio"
                node.name = "alsa_output.pci-0000_00_1b.0.analog-stereo"
                node.nick = "92HD91BXX Analog"
                node.pause-on-idle = "false"
                object.path = "alsa:acp:PCH:3:playback"
                port.group = "playback"
                priority.driver = "1009"
                priority.session = "1009"
                factory.id = "19"
                clock.quantum-limit = "8192"
                client.id = "47"
                node.driver = "true"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "35"
                object.serial = "57"
                api.acp.auto-port = "false"
                api.acp.auto-profile = "false"
                api.alsa.card = "1"
                api.alsa.split-enable = "true"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio1"
                api.dbus.ReserveDevice1.Priority = "-20"
                device.bus = "pci"
                device.bus_path = "pci-0000:00:1b.0"
                device.enum.api = "udev"
                device.form_factor = "internal"
                device.name = "alsa_card.pci-0000_00_1b.0"
                device.nick = "HDA Intel PCH"
                device.plugged.usec = "11047693"
                device.product.id = "0x8c20"
                device.product.name = "8 Series/C220 Series Chipset High Definition Audio Controller"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"
                device.vendor.id = "0x8086"
                device.vendor.name = "Intel Corporation"
                spa.object.id = "4"
                device.string = "1"
        Ports:
                analog-output-speaker: Speakers (type: Speaker, priority: 10000, availability group: Legacy 3, availability unknown)
                analog-output-headphones: Headphones (type: Headphones, priority: 9900, availability group: Legacy 4, not available)
        Active Port: analog-output-speaker
        Formats:
                pcm

Sink #497
        State: RUNNING
        Name: alsa_output.pci-0000_00_03.0.hdmi-stereo
        Description: Built-in Audio Digital Stereo (HDMI)
        Driver: PipeWire
        Sample Specification: s32le 2ch 48000Hz
        Channel Map: front-left,front-right
        Owner Module: 4294967295
        Mute: no
        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
        Monitor Source: alsa_output.pci-0000_00_03.0.hdmi-stereo.monitor
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS 
        Properties:
                alsa.card = "0"
                alsa.card_name = "HDA Intel HDMI"
                alsa.class = "generic"
                alsa.components = "HDA:80862807,80860101,00100000"
                alsa.device = "3"
                alsa.driver_name = "snd_hda_intel"
                alsa.id = "HDMI 0"
                alsa.long_card_name = "HDA Intel HDMI at 0xb2710000 irq 37"
                alsa.mixer_name = "Intel Haswell HDMI"
                alsa.name = "LG TV"
                alsa.resolution_bits = "16"
                alsa.subclass = "generic-mix"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.sync.id = "00000000:00000000:00000000:00000000"
                api.alsa.card.longname = "HDA Intel HDMI at 0xb2710000 irq 37"
                api.alsa.card.name = "HDA Intel HDMI"
                api.alsa.path = "hdmi:0"
                api.alsa.pcm.card = "0"
                api.alsa.pcm.stream = "playback"
                audio.channels = "2"
                audio.position = "FL,FR"
                card.profile.device = "3"
                device.api = "alsa"
                device.class = "sound"
                device.icon_name = "audio-card-analog"
                device.id = "48"
                device.profile.description = "Digital Stereo (HDMI)"
                device.profile.name = "hdmi-stereo"
                device.routes = "1"
                factory.name = "api.alsa.pcm.sink"
                iec958.codecs = "[\"PCM\"]"
                media.class = "Audio/Sink"
                device.description = "Built-in Audio"
                node.name = "alsa_output.pci-0000_00_03.0.hdmi-stereo"
                node.nick = "LG TV"
                node.pause-on-idle = "false"
                object.path = "alsa:acp:HDMI:3:playback"
                port.group = "playback"
                priority.driver = "696"
                priority.session = "696"
                factory.id = "19"
                clock.quantum-limit = "8192"
                client.id = "47"
                node.driver = "true"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "43"
                object.serial = "497"
                node.max-latency = "16384/48000"
                api.alsa.period-size = "1024"
                api.alsa.period-num = "32"
                api.alsa.headroom = "0"
                api.acp.auto-port = "false"
                api.acp.auto-profile = "false"
                api.alsa.card = "0"
                api.alsa.split-enable = "true"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio0"
                api.dbus.ReserveDevice1.Priority = "-20"
                device.bus = "pci"
                device.bus_path = "pci-0000:00:03.0"
                device.enum.api = "udev"
                device.form_factor = "internal"
                device.name = "alsa_card.pci-0000_00_03.0"
                device.nick = "HDA Intel HDMI"
                device.plugged.usec = "10915591"
                device.product.id = "0x0c0c"
                device.product.name = "Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:03.0/sound/card0"
                device.vendor.id = "0x8086"
                device.vendor.name = "Intel Corporation"
                spa.object.id = "2"
                device.string = "0"
        Ports:
                hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, availability group: Legacy 1, available)
        Active Port: hdmi-output-0
        Formats:
                pcm

Offline

#4 2026-08-11 09:58

q4osteam
Q4OS Team
Registered: 2015-12-06
Posts: 6,291
Website

Re: Scratchy HDMI Audio

This shows that the HDMI audio device is detected correctly:

Intel Haswell HDMI (`snd_hda_intel`)
LG TV is detected as the HDMI output
PipeWire is using the HDMI sink
The HDMI output is available and currently running at 48 kHz stereo

So there is no obvious missing driver or configuration file problem. Check whether the distortion is also present when bypassing PipeWire. With the TV connected, run:
$ speaker-test -D hw:0,3 -c 2 -t pink
Let it run for a few seconds and check whether the sound is still cutting out/distorted.
Press `Ctrl+C` to stop it.

Please post the result and let us know whether the test sound is clean or distorted/cutting out. This will help determine whether the problem is with ALSA/HDMI itself or with PipeWire.

Offline

#5 2026-08-11 17:15

jokabomo
Member
Registered: 2026-08-10
Posts: 6

Re: Scratchy HDMI Audio

I didn't get any sound at all with that command:

john@q4os-desktop:~$ speaker-test -D hw:0,3 -c 2 -t pink

speaker-test 1.2.14

Playback device is hw:0,3
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 64 to 524288
Period size range from 32 to 262144
Periods = 4
was set period_size = 12000
was set buffer_size = 48000
 0 - Front Left
Write error: -5,Input/output error
xrun_recovery failed: -5,Input/output error
Transfer failed: Input/output error

Offline

#6 2026-08-11 17:19

q4osteam
Q4OS Team
Registered: 2015-12-06
Posts: 6,291
Website

Re: Scratchy HDMI Audio

The direct ALSA test also fails, so this doesn't look like a simple PipeWire volume or profile setting. Please run the following immediately after reproducing the problem:
$ dmesg | grep -iE 'snd|hda|hdmi|audio'
$ aplay -l
Please post both outputs. The first command may show an HDMI/Intel HDA error from the kernel, while `aplay -l` will confirm which ALSA HDMI device is available.

Offline

#7 2026-08-12 04:53

jokabomo
Member
Registered: 2026-08-10
Posts: 6

Re: Scratchy HDMI Audio

john@q4os-desktop:~$ dmesg | grep -iE 'snd|hda|hdmi|audio'
[   10.834249] snd_hda_intel 0000:00:03.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[   10.912320] snd_hda_codec_idt hdaudioC1D0: autoconfig for 92HD91BXX: line_outs=1 (0xd/0x0/0x0/0x0/0x0) type:speaker
[   10.912327] snd_hda_codec_idt hdaudioC1D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[   10.912330] snd_hda_codec_idt hdaudioC1D0:    hp_outs=1 (0xb/0x0/0x0/0x0/0x0)
[   10.912332] snd_hda_codec_idt hdaudioC1D0:    mono: mono_out=0x0
[   10.912334] snd_hda_codec_idt hdaudioC1D0:    inputs:
[   10.912336] snd_hda_codec_idt hdaudioC1D0:      Mic=0xa
[   10.912338] snd_hda_codec_idt hdaudioC1D0:      Internal Mic=0x11
[   10.916009] input: HDA Intel HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.0/sound/card0/input14
[   10.916074] input: HDA Intel HDMI HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.0/sound/card0/input15
[   10.916125] input: HDA Intel HDMI HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.0/sound/card0/input16
[   11.052374] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/sound/card1/input17
[   11.052472] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1b.0/sound/card1/input18
[   11.053458] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card1/input19
john@q4os-desktop:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [LG TV]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: 92HD91BXX Analog [92HD91BXX Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Offline

#8 2026-08-12 10:46

q4osteam
Q4OS Team
Registered: 2015-12-06
Posts: 6,291
Website

Re: Scratchy HDMI Audio

The HDMI hardware is detected correctly, and there are no obvious HDMI/HDA errors in `dmesg`. The Intel HDMI controller provides three PCM devices:

device 3: HDMI 0 [LG TV]
device 7: HDMI 1 [HDMI 1]
device 8: HDMI 2 [HDMI 2]

Let's test the other HDMI devices as well.

With the TV connected, try:
$ speaker-test -D hw:0,7 -c 2 -t pink
If that gives an error, stop it with `Ctrl+C` and try:
$ speaker-test -D hw:0,8 -c 2 -t pink
You don't need to wait long — a few seconds is enough.

Please report what happens with `hw:0,7` and `hw:0,8` (sound, no sound, or an error). The important point is that `hw:0,3` is the HDMI device currently detected as the LG TV, but we should verify the other HDMI codecs before changing any system configuration.

Offline

#9 2026-08-13 17:01

jokabomo
Member
Registered: 2026-08-10
Posts: 6

Re: Scratchy HDMI Audio

I ran those commands and got the same result.

john@q4os-desktop:~$ speaker-test -D hw:0,7 -c 2 -t pink

speaker-test 1.2.14

Playback device is hw:0,7
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 64 to 524288
Period size range from 32 to 262144
Periods = 4
was set period_size = 12000
was set buffer_size = 48000
 0 - Unknown
Write error: -5,Input/output error
xrun_recovery failed: -5,Input/output error
Transfer failed: Input/output error
john@q4os-desktop:~$ speaker-test -D hw:0,8 -c 2 -t pink

speaker-test 1.2.14

Playback device is hw:0,8
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 64 to 524288
Period size range from 32 to 262144
Periods = 4
was set period_size = 12000
was set buffer_size = 48000
 0 - Unknown
Write error: -5,Input/output error
xrun_recovery failed: -5,Input/output error
Transfer failed: Input/output error

Then I played some (scratchy) audio via Kodi and retried the test and got a slightly different result. The first test on 0,7 ran and I had to hit ctrl-c to stop it. Still no audio with the test, though.

john@q4os-desktop:~$ speaker-test -D hw:0,7 -c 2 -t pink

speaker-test 1.2.14

Playback device is hw:0,7
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 64 to 524288
Period size range from 32 to 262144
Periods = 4
was set period_size = 12000
was set buffer_size = 48000
 0 - Unknown
 1 - Unknown
Time per period = 35.828018
 0 - Unknown
 1 - Unknown
Time per period = 32.484414
 0 - Unknown
 1 - Unknown
Time per period = 70.555540
 0 - Unknown
 1 - Unknown
^CTime per period = 11.360336
john@q4os-desktop:~$ speaker-test -D hw:0,8 -c 2 -t pink

speaker-test 1.2.14

Playback device is hw:0,8
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 64 to 524288
Period size range from 32 to 262144
Periods = 4
was set period_size = 12000
was set buffer_size = 48000
 0 - Unknown
Write error: -5,Input/output error
xrun_recovery failed: -5,Input/output error
Transfer failed: Input/output error

Offline

#10 2026-08-13 17:20

q4osteam
Q4OS Team
Registered: 2015-12-06
Posts: 6,291
Website

Re: Scratchy HDMI Audio

It looks like this is not simply a PipeWire configuration problem, since the direct ALSA tests also fail. Check reports to the HDMI audio driver. Please run:
$ cat /proc/asound/card0/eld#3.0
$ cat /proc/asound/card0/eld#7.0
$ cat /proc/asound/card0/eld#8.0

Then run:
$ cat /sys/class/drm/card0-*/status

Please post the complete output. Don't change any configuration files yet.

Offline

#11 2026-08-13 18:26

jokabomo
Member
Registered: 2026-08-10
Posts: 6

Re: Scratchy HDMI Audio

john@q4os-desktop:~$ cat /proc/asound/card0/eld#3.0
cat: /proc/asound/card0/eld#3.0: No such file or directory
john@q4os-desktop:~$ cat /proc/asound/card0/eld#7.0
cat: /proc/asound/card0/eld#7.0: No such file or directory
john@q4os-desktop:~$ cat /proc/asound/card0/eld#8.0
cat: /proc/asound/card0/eld#8.0: No such file or directory
john@q4os-desktop:~$ cat /sys/class/drm/card0-*/status
connected
disconnected

Seeing the "No such file or directory", here's this - hopefully it'll help:

john@q4os-desktop:~$ tree -a /proc/asound
/proc/asound
├── card0
│   ├── codec#0
│   ├── eld#0.0
│   ├── eld#0.1
│   ├── eld#0.2
│   ├── id
│   ├── pcm3p
│   │   ├── info
│   │   └── sub0
│   │       ├── hw_params
│   │       ├── info
│   │       ├── prealloc
│   │       ├── prealloc_max
│   │       ├── status
│   │       └── sw_params
│   ├── pcm7p
│   │   ├── info
│   │   └── sub0
│   │       ├── hw_params
│   │       ├── info
│   │       ├── prealloc
│   │       ├── prealloc_max
│   │       ├── status
│   │       └── sw_params
│   └── pcm8p
│       ├── info
│       └── sub0
│           ├── hw_params
│           ├── info
│           ├── prealloc
│           ├── prealloc_max
│           ├── status
│           └── sw_params
├── card1
│   ├── codec#0
│   ├── id
│   ├── pcm0c
│   │   ├── info
│   │   └── sub0
│   │       ├── hw_params
│   │       ├── info
│   │       ├── prealloc
│   │       ├── prealloc_max
│   │       ├── status
│   │       └── sw_params
│   └── pcm0p
│       ├── info
│       └── sub0
│           ├── hw_params
│           ├── info
│           ├── prealloc
│           ├── prealloc_max
│           ├── status
│           └── sw_params
├── cards
├── devices
├── HDMI -> card0
├── hwdep
├── modules
├── oss
│   ├── devices
│   └── sndstat
├── PCH -> card1
├── pcm
├── seq
│   ├── clients
│   ├── drivers
│   ├── queues
│   └── timer
├── timers
└── version

17 directories, 55 files

Last edited by jokabomo (2026-08-13 18:33)

Offline

#12 2026-08-13 19:22

q4osteam
Q4OS Team
Registered: 2015-12-06
Posts: 6,291
Website

Re: Scratchy HDMI Audio

The mistake was simply the ELD filename: ALSA uses `eld#0.0`, `eld#0.1`, and `eld#0.2` here, corresponding to PCM 3/7/8. The `connected / disconnected` result is also useful.

That explains the "No such file" errors - the ELD files on this system are named `eld#0.0`, `eld#0.1`, and `eld#0.2`.

Please run:
$ cat /proc/asound/card0/eld#0.0
$ cat /proc/asound/card0/eld#0.1
$ cat /proc/asound/card0/eld#0.2

Also, run:
$ for f in /sys/class/drm/card0-*/status; do echo "$f: $(cat "$f")"; done

The first command will show what the display reports to the HDMI audio driver. The second will tell us exactly which HDMI/DP connector is connected. Please post the complete output of both commands.

Offline

Board footer

Powered by FluxBB