On my laptop (Lenovo Thinkpad L380) the sound through the HDMI doesn’t work. This seems to be a problem with this specific laptop and Fedora running on it. My work laptop (a different Thinkpad) doesn’t have this issue.
Things I’ve noticed:
When plugged in, the HDMI is detected as output device.
Executing a sound test, or playing a video yields no sound through the HDMI cable (plugged into the TV)
This has been the case with F35, F36, F36 KDE Spin, F37, F37 Kinoite (current installation).
The laptop is capable of producing sound through the HDMI port with this cable and this TV.
Things I’ve tried:
Installing different versions of Fedora (see above). No sound is produced through HDMI.
Using pavucontrol, pipewire-media-session, and wireplumber (all separately). No sound is produced through HDMI.
Using a live cd of F36 and F37 to test the sound. No sound is produced through HDMI.
Using an installed version of Ubuntu. Sound was produced through HDMI.
Using a live cd of Ubuntu to test the sound. Sound was produced through HDMI.
Using a live cd of MX Linux to test the sound. Sound was produced through HDMI.
Is there anything I could do to get the sound to work through HDMI?
Thanks in advance.
● pipewire-pulse.socket - PipeWire PulseAudio
Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.socket; enabled; preset: enabled)
Active: active (running) since Sun 2022-11-27 12:37:42 CET; 2h 19min ago
Until: Sun 2022-11-27 12:37:42 CET; 2h 19min ago
Triggers: ● pipewire-pulse.service
Listen: /run/user/1000/pulse/native (Stream)
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/pipewire-pulse.socket
Nov 27 12:37:42 fedora systemd[1170]: Listening on pipewire-pulse.socket - PipeWire PulseAudio.
● pipewire-pulse.service - PipeWire PulseAudio
Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; disabled; preset: disabled)
Active: active (running) since Sun 2022-11-27 12:37:48 CET; 2h 19min ago
TriggeredBy: ● pipewire-pulse.socket
Main PID: 1781 (pipewire-pulse)
Tasks: 2 (limit: 38289)
Memory: 22.0M
CPU: 3.164s
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service
└─1781 /usr/bin/pipewire-pulse
Nov 27 12:37:48 fedora systemd[1170]: Started pipewire-pulse.service - PipeWire PulseAudio.
Nov 27 14:43:33 fedora pipewire-pulse[1781]: mod.protocol-pulse: client 0x562453554750 [libcanberra]: ERROR command:18 (PLAY_SAMPLE) tag:6 error:25 (Input/o>
Nov 27 14:43:33 fedora pipewire-pulse[1781]: mod.protocol-pulse: client 0x562453554750 [libcanberra]: ERROR command:18 (PLAY_SAMPLE) tag:8 error:25 (Input/o>
Nov 27 14:43:33 fedora pipewire-pulse[1781]: mod.protocol-pulse: client 0x562453554750 [libcanberra]: ERROR command:18 (PLAY_SAMPLE) tag:10 error:25 (Input/>
lines 1-25/25 (END)
systemctl status --user wireplumber
● wireplumber.service - Multimedia Service Session Manager
Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
Active: active (running) since Sun 2022-11-27 12:37:43 CET; 2h 21min ago
Main PID: 1284 (wireplumber)
Tasks: 4 (limit: 38289)
Memory: 9.7M
CPU: 17.279s
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
└─1284 /usr/bin/wireplumber
Nov 27 12:37:43 fedora wireplumber[1284]: Can't find xdg-portal: (null)
Nov 27 12:37:43 fedora wireplumber[1284]: found session bus but no portal
Nov 27 12:37:43 fedora wireplumber[1284]: Failed to set scheduler settings: Operation not permitted
Nov 27 12:37:43 fedora wireplumber[1284]: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed?
Nov 27 12:37:43 fedora wireplumber[1284]: PipeWire's libcamera SPA missing or broken. libcamera not supported.
Nov 27 14:43:16 fedora wireplumber[1284]: RFCOMM receive command but modem not available: AT+BTRH?
Nov 27 14:43:16 fedora wireplumber[1284]: RFCOMM receive command but modem not available:
AT+XEVENT=Bose SoundLink,158
Nov 27 14:43:16 fedora wireplumber[1284]: Failed to register battery provider. Error: org.freedesktop.DBus.Error.UnknownMethod
Nov 27 14:43:16 fedora wireplumber[1284]: BlueZ Battery Provider is not available, won't retry to register it. Make sure you are running BlueZ 5.56+ with ex>
Nov 27 14:43:21 fedora wireplumber[1284]: RFCOMM receive command but modem not available: AT+CSRSF=0,0,0,1,0,0,0
lines 1-21/21 (END)
Fedora is not Ubuntu, so to compare it is quite useless.
The goal was to prove that the problem does not lie with any of the hardware (HDMI port, cable, TV), but with the software.
Currently, I have a fresh install (installed yesterday) of F37 Kinoite. I haven’t made any configuration changes. There is no ~/.config/pipewire directory.
After the restart, executing systemctl status --user wireplumber:
● wireplumber.service - Multimedia Service Session Manager
Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
Active: active (running) since Sun 2022-11-27 22:03:07 CET; 5min ago
Main PID: 1239 (wireplumber)
Tasks: 4 (limit: 38289)
Memory: 10.6M
CPU: 192ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
└─1239 /usr/bin/wireplumber
Nov 27 22:03:07 fedora systemd[1127]: Started wireplumber.service - Multimedia Service Session Manager.
Nov 27 22:03:07 fedora wireplumber[1239]: Can't find xdg-portal: (null)
Nov 27 22:03:07 fedora wireplumber[1239]: found session bus but no portal
Nov 27 22:03:07 fedora wireplumber[1239]: Failed to set scheduler settings: Operation not permitted
Nov 27 22:03:07 fedora wireplumber[1239]: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed?
Nov 27 22:03:07 fedora wireplumber[1239]: PipeWire's libcamera SPA missing or broken. libcamera not supported.
● pipewire-pulse.socket - PipeWire PulseAudio
Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.socket; enabled; preset: enabled)
Active: active (running) since Mon 2022-11-28 08:12:12 CET; 19min ago
Until: Mon 2022-11-28 08:12:12 CET; 19min ago
Triggers: ● pipewire-pulse.service
Listen: /run/user/1000/pulse/native (Stream)
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/pipewire-pulse.socket
Nov 28 08:12:12 fedora systemd[1161]: Listening on pipewire-pulse.socket - PipeWire PulseAudio.
● pipewire-pulse.service - PipeWire PulseAudio
Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; disabled; preset: disabled)
Active: active (running) since Mon 2022-11-28 08:12:16 CET; 19min ago
TriggeredBy: ● pipewire-pulse.socket
Main PID: 1786 (pipewire-pulse)
Tasks: 2 (limit: 38289)
Memory: 3.5M
CPU: 72ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service
└─1786 /usr/bin/pipewire-pulse
Nov 28 08:12:16 fedora systemd[1161]: Started pipewire-pulse.service - PipeWire PulseAudio.
Nov 28 08:12:16 fedora pipewire-pulse[1790]: 536870912
systemctl status --user wireplumber
● wireplumber.service - Multimedia Service Session Manager
Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
Active: active (running) since Mon 2022-11-28 08:12:13 CET; 21min ago
Main PID: 1281 (wireplumber)
Tasks: 4 (limit: 38289)
Memory: 9.7M
CPU: 369ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
└─1281 /usr/bin/wireplumber
Nov 28 08:12:13 fedora systemd[1161]: Started wireplumber.service - Multimedia Service Session Manager.
Nov 28 08:12:13 fedora wireplumber[1281]: Can't find xdg-portal: (null)
Nov 28 08:12:13 fedora wireplumber[1281]: found session bus but no portal
Nov 28 08:12:13 fedora wireplumber[1281]: Failed to set scheduler settings: Operation not permitted
Nov 28 08:12:13 fedora wireplumber[1281]: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed?
Nov 28 08:12:13 fedora wireplumber[1281]: PipeWire's libcamera SPA missing or broken. libcamera not supported.
I just saw that I also get this error (I use the basic Workstation setup). If I check with wpctl status it is listed anyway.
nov 29 06:30:41 fedo.local wireplumber[1973]: Can't find xdg-portal: (null)
nov 29 06:30:41 fedo.local wireplumber[1973]: found session bus but no portal
The difference you mentioned about the other Linux Distribution could be that Fedora not delivers the codecs per default. Did you install them?
@ilikelinux I haven’t installed them, but it makes sense why the sound on the other distros work out of the box. I can only find information on how to install the codecs with dnf or with the gnome software center. Is there a recommended way to install them on Kinoite? Should I run all the dnf commands, but with rpm-ostree?
@grumpey the aplay -l output shows more HDMI devices than wpctl. There is however only one HDMI port on my laptop. My first reaction was that they relate to what appears in the KDE audio settings, but the aplay -l output remains the same if I select another audio profile in the settings.
$ rpm-ostree install alsa-sof-firmware
error: "alsa-sof-firmware" is already provided by: alsa-sof-firmware-2.2.2-1.fc37.noarch. Use --allow-inactive to explicitly require it.
"Error trying to play a test sound. The system said
pulseaudio
No setting
"Error trying to play a test sound. The system said
The at this point something strange happened. Note, the current computer state is only the change from pipewire-pulseaudio to pulseaudio. I changed the audio profile to Audio Stereo Duplex (laptop speakers) and the error message was still visible, but after clicking the Front Right speaker test button, the error message disappeared and sound played through the laptop speaker. Then I changed it back to the HDMI profile and the sound worked through the HDMI.
So:
If I unplug the laptop, there is no sound through the laptop speakers. Changing the audio profile to anything else and back then produces audio.
Plugging the HDMI cable back in produces no audio on the default profile (in this case HDMI was selected automatically). Then changing the audio profile to the laptop speakers produce sound through the laptop speakers. Changing it back to HDMI produces sound through the HDMI cable.
With the HDMI cable unplugged (audio profile switched to something else and back again), the laptop sound works. Restarting the laptop and immediately testing the sound doesn’t work; the audio profile needs to be switched to something else and back again before there is sound on the laptop speakers.
There is definitely some problem with pipewire-pulseaudio on my laptop, so this is an improvement, but switching to pulseaudio has introduced another problem.
Questions:
Is this something that can be fixed in pipewire-pulseaudio?
Is there a way to get pulseaudio to work correctly without me having to change an audio profile?
You will want to capture the active profile for each of the working instances, and the index/name of the card.
You can set a default profile by:
creating a file: ~/.config/pulse/default.pa
and adding: set-card-profile <cardindex> <profilename>
or set-card-profile <symbolic name> <profilename>
symbolic name comes from the name from the earlier list cards command.
You can also try setting a fallback device in pavucontrol and see if that works.