You are not logged in.

#1 2025-02-26 17:59:16

Gargantuar
Member
Registered: 2025-02-26
Posts: 11

[SOLVED] No "HDMI" in WirePlumber/PipeWire

I'm trying to play audio through HDMI. My Dell laptop doesn't have an HDMI port, so I use an adapter to USB-C.

pacman -Qs pipewire
----
local/libpipewire 1:1.2.7-1
    Low-latency audio/video router and processor - client library
local/libwireplumber 0.5.8-1
    Session / policy manager implementation for PipeWire - client library
local/pipewire 1:1.2.7-1
    Low-latency audio/video router and processor
local/pipewire-alsa 1:1.2.7-1
    Low-latency audio/video router and processor - ALSA configuration
local/pipewire-audio 1:1.2.7-1
    Low-latency audio/video router and processor - Audio support
local/pipewire-jack 1:1.2.7-1
    Low-latency audio/video router and processor - JACK replacement
local/pipewire-session-manager 1:1.2.7-1
    Session manager for PipeWire (default provider)
local/qemu-audio-pipewire 9.2.0-2
    QEMU PipeWire audio driver
local/wireplumber 0.5.8-1
    Session / policy manager implementation for PipeWire

The HDMI device `hdmi:0` is visible:

aplay -L
-----
null
    Discard all samples (playback) or generate zero samples (capture)
pipewire
    PipeWire Sound Server
default
    Default ALSA Output (currently PipeWire Media Server)
sysdefault:CARD=PCH
    HDA Intel PCH, ALC3271 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3271 Analog
    Front output / input
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3271 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3271 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3271 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3271 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3271 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3271 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=PCH,DEV=0
    HDA Intel PCH, HDTV
    HDMI Audio Output
hdmi:CARD=PCH,DEV=1
    HDA Intel PCH, HDMI 1
    HDMI Audio Output
hdmi:CARD=PCH,DEV=2
    HDA Intel PCH, HDMI 2
    HDMI Audio Output
hdmi:CARD=PCH,DEV=3
    HDA Intel PCH, HDMI 3
    HDMI Audio Output

Test with `speaker-test -Dhdmi:0 -c2` also works as expected.

However, the relevant audio output of WirePlumber is:

wpctl status
-----
Audio
 ├─ Devices:
 │      42. Built-in Audio                      [alsa]
 │
 ├─ Sinks:
 │  *   51. Built-in Audio Analog Stereo        [vol: 0.60]
 │
 ├─ Sources:
 │  *   52. Built-in Audio Analog Stereo        [vol: 1.00 MUTED]
 │
 ├─ Filters:
 │
 └─ Streams:

No HDMI. Indeed:

wpctl inspect 51
-----
id 51, type PipeWire:Interface:Node
    alsa.card = "0"
    alsa.card_name = "HDA Intel PCH"
    alsa.class = "generic"
    alsa.components = "HDA:10ec0299,10280a5c,00100002 HDA:80862812,80860101,00100000"
    alsa.device = "0"
    alsa.driver_name = "snd_hda_intel"
    alsa.id = "ALC3271 Analog"
    alsa.long_card_name = "HDA Intel PCH at 0x6079288000 irq 197"
    alsa.mixer_name = "Realtek ALC3271"
    alsa.name = "ALC3271 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 0x6079288000 irq 197"
    api.alsa.card.name = "HDA Intel PCH"
    api.alsa.path = "front:0"
    api.alsa.pcm.card = "0"
    api.alsa.pcm.stream = "playback"
    audio.channels = "2"
    audio.position = "FL,FR"
    card.profile.device = "7"
  * client.id = "41"
    clock.quantum-limit = "8192"
    device.api = "alsa"
    device.class = "sound"
  * device.id = "42"
    device.profile.description = "Analog Stereo"
    device.profile.name = "analog-stereo"
    device.routes = "2"
  * factory.id = "19"
    factory.name = "api.alsa.pcm.sink"
    library.name = "audioconvert/libspa-audioconvert"
  * media.class = "Audio/Sink"
  * node.description = "Built-in Audio Analog Stereo"
    node.driver = "true"
    node.loop.name = "data-loop.0"
  * node.name = "alsa_output.pci-0000_00_1f.3.analog-stereo"
  * node.nick = "ALC3271 Analog"
    node.pause-on-idle = "false"
  * object.path = "alsa:acp:PCH:7:playback"
  * object.serial = "51"
    port.group = "playback"
  * priority.driver = "1009"
  * priority.session = "1009"

As you can see, this is `hw:0`, not `hdmi:0`. Do you have any ideas? Laptop audio output also works.

Last edited by Gargantuar (2025-06-24 19:50:28)

Offline

#2 2025-02-26 18:18:21

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 24,845

Re: [SOLVED] No "HDMI" in WirePlumber/PipeWire

It's  part of the same card and thus if it's being differentiated it's going to be a separate profile or port. Check

pactl list cards
pactl list sinks

if you find your hdmi under the profiles use

pactl set-card-profile $cardname $profilename

or

pactl set-sink-port $sinkname $portname

respectively.

Offline

#3 2025-06-21 16:08:07

Gargantuar
Member
Registered: 2025-02-26
Posts: 11

Re: [SOLVED] No "HDMI" in WirePlumber/PipeWire

Sry for the late reply.

Thanks, the first options via profiles worked (`output:hdmi-stereo`). I still have two questions:

1. Is it possible to do this with `wpctl` only instead of `pactl`?
2. Is it possible to automate this upon plugging in an HDMI cable? (I'm using sway, btw.)

Offline

#4 2025-06-24 16:40:32

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 24,845

Re: [SOLVED] No "HDMI" in WirePlumber/PipeWire

It is much simpler to do this with pactl because you can use actual sink names instead of indices, don't make this a hill to die on. Yes you could use wpctl, but since it doesn't support sink names you need to identify the correct id every time you're attempting to run wpctl.

Once set, this should™ be remembered, is it not?

Last edited by V1del (2025-06-25 00:51:41)

Offline

#5 2025-06-24 19:42:06

Gargantuar
Member
Registered: 2025-02-26
Posts: 11

Re: [SOLVED] No "HDMI" in WirePlumber/PipeWire

V1del wrote:

Once set, this should™️ be remembered, is it not?

You're right, it does.

Offline

Board footer

Powered by FluxBB