Lunar lake audio no advanced options (for things like eac3) in pavucontrol

Hello,

Using a Lenovo x9-15 laptop with Intel Lunar Lake HD audio on Fedora 43 I can’t see any way to enable hdmi eac3/dts/etc. passthrough in pavucontrol. This is usually activated in the Output Devices tab for devices that support digital outputs (which normally applies to HDMI outputs), under the “Show advanced option” sub menu of the device.

I could see those option on the HDMI outputs with my old laptop. Also if I plug-in an external sound card which supports digital outputs then I can see those options for that device (unfortunately some codecs like eac3 and atmos can only be received through hdmi so using an external sound card is not a solution).

All sounds work perfectly fine otherwise.

Thank you for your help.

Detailed of my system:

Operating System: Fedora Linux 43
KDE Plasma Version: 6.6.4
KDE Frameworks Version: 6.25.0
Qt Version: 6.10.3
Kernel Version: 6.19.12-200.fc43.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 8 × Intel® Core™ Ultra 7 258V
Memory: 32 GiB of RAM (30.9 GiB usable)
Graphics Processor: Intel® Graphics
Manufacturer: LENOVO
System Version: ThinkPad X9-15 Gen 1

Have you found this How To?

1 Like

Hello, thank you for your reply. Yes I had seen this wiki before. I went back and tried some more manual settings to assign the codecs to the audio sinks using pactl but unfortunately it doesn’t work.

When using pw-cli instead of pactl I cannot see any iec958 profiles.

pw-cli ls Device
        id 40, type PipeWire:Interface:Device/3
                object.serial = "1896"
                factory.id = "15"
                client.id = "50"
                device.api = "libcamera"
                device.description = "Unknown device"
                device.name = "libcamera_device.0"
                media.class = "Video/Device"
        id 49, type PipeWire:Interface:Device/3
                object.serial = "55"
                factory.id = "15"
                client.id = "50"
                device.api = "alsa"
                device.description = "Lunar Lake-M HD Audio Controller"
                device.name = "alsa_card.pci-0000_00_1f.3-platform-sof_sdw"
                device.nick = "sof-soundwire"
                media.class = "Audio/Device"
        id 54, type PipeWire:Interface:Device/3
                object.serial = "59"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0"
                media.class = "Video/Device"
        id 55, type PipeWire:Interface:Device/3
                object.serial = "60"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.2"
                media.class = "Video/Device"
        id 56, type PipeWire:Interface:Device/3
                object.serial = "61"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.3"
                media.class = "Video/Device"
        id 57, type PipeWire:Interface:Device/3
                object.serial = "62"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.4"
                media.class = "Video/Device"
        id 58, type PipeWire:Interface:Device/3
                object.serial = "63"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.5"
                media.class = "Video/Device"
        id 59, type PipeWire:Interface:Device/3
                object.serial = "64"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.6"
                media.class = "Video/Device"
        id 60, type PipeWire:Interface:Device/3
                object.serial = "65"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.7"
                media.class = "Video/Device"
        id 61, type PipeWire:Interface:Device/3
                object.serial = "66"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.8"
                media.class = "Video/Device"
        id 62, type PipeWire:Interface:Device/3
                object.serial = "67"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.9"
                media.class = "Video/Device"
        id 63, type PipeWire:Interface:Device/3
                object.serial = "68"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.10"
                media.class = "Video/Device"
        id 64, type PipeWire:Interface:Device/3
                object.serial = "69"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.11"
                media.class = "Video/Device"
        id 65, type PipeWire:Interface:Device/3
                object.serial = "70"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.12"
                media.class = "Video/Device"
        id 66, type PipeWire:Interface:Device/3
                object.serial = "71"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.3"
                media.class = "Video/Device"
        id 67, type PipeWire:Interface:Device/3
                object.serial = "72"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.13"
                media.class = "Video/Device"
        id 68, type PipeWire:Interface:Device/3
                object.serial = "73"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.14"
                media.class = "Video/Device"
        id 69, type PipeWire:Interface:Device/3
                object.serial = "74"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.15"
                media.class = "Video/Device"
        id 70, type PipeWire:Interface:Device/3
                object.serial = "75"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.16"
                media.class = "Video/Device"
        id 71, type PipeWire:Interface:Device/3
                object.serial = "76"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.17"
                media.class = "Video/Device"
        id 72, type PipeWire:Interface:Device/3
                object.serial = "77"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.18"
                media.class = "Video/Device"
        id 73, type PipeWire:Interface:Device/3
                object.serial = "78"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.19"
                media.class = "Video/Device"
        id 74, type PipeWire:Interface:Device/3
                object.serial = "79"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.20"
                media.class = "Video/Device"
        id 75, type PipeWire:Interface:Device/3
                object.serial = "80"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.21"
                media.class = "Video/Device"
        id 76, type PipeWire:Interface:Device/3
                object.serial = "81"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.22"
                media.class = "Video/Device"
        id 77, type PipeWire:Interface:Device/3
                object.serial = "82"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.4"
                media.class = "Video/Device"
        id 78, type PipeWire:Interface:Device/3
                object.serial = "83"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.23"
                media.class = "Video/Device"
        id 79, type PipeWire:Interface:Device/3
                object.serial = "84"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.24"
                media.class = "Video/Device"
        id 80, type PipeWire:Interface:Device/3
                object.serial = "85"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.5"
                media.class = "Video/Device"
        id 81, type PipeWire:Interface:Device/3
                object.serial = "86"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.6"
                media.class = "Video/Device"
        id 82, type PipeWire:Interface:Device/3
                object.serial = "87"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.7"
                media.class = "Video/Device"
        id 83, type PipeWire:Interface:Device/3
                object.serial = "88"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.8"
                media.class = "Video/Device"
        id 84, type PipeWire:Interface:Device/3
                object.serial = "89"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.9"
                media.class = "Video/Device"
        id 85, type PipeWire:Interface:Device/3
                object.serial = "90"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "ipu7"
                device.name = "v4l2_device.pci-0000_00_05.0.10"
                media.class = "Video/Device"
        id 86, type PipeWire:Interface:Device/3
                object.serial = "1895"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "C922 Pro Stream Webcam"
                device.name = "v4l2_device.pci-0000_00_14.0-usb-0_3.1.4_1.0.2"
                media.class = "Video/Device"
        id 122, type PipeWire:Interface:Device/3
                object.serial = "1894"
                factory.id = "15"
                client.id = "50"
                device.api = "v4l2"
                device.description = "C922 Pro Stream Webcam"
                device.name = "v4l2_device.pci-0000_00_14.0-usb-0_3.1.4_1.0"
                media.class = "Video/Device"
        id 206, type PipeWire:Interface:Device/3
                object.serial = "1897"
                factory.id = "15"
                client.id = "50"
                device.api = "alsa"
                device.description = "C922 Pro Stream Webcam"
                device.name = "alsa_card.usb-046d_C922_Pro_Stream_Webcam_2E5DB5DF-02"
                device.nick = "C922 Pro Stream Webcam"
                media.class = "Audio/Device"

pw-cli e alsa_card.pci-0000_00_1f.3-platform-sof_sdw EnumProfile
  Object: size 160, type Spa:Pod:Object:Param:Profile (262151), id Spa:Enum:ParamId:EnumProfile (8)
    Prop: key Spa:Pod:Object:Param:Profile:index (1), flags 00000000
      Int 0
    Prop: key Spa:Pod:Object:Param:Profile:name (2), flags 00000000
      String "off"
    Prop: key Spa:Pod:Object:Param:Profile:description (3), flags 00000000
      String "Off"
    Prop: key Spa:Pod:Object:Param:Profile:priority (4), flags 00000000
      Int 0
    Prop: key Spa:Pod:Object:Param:Profile:available (5), flags 00000000
      Id 2        (Spa:Enum:ParamAvailability:yes)
    Prop: key Spa:Pod:Object:Param:Profile:classes (7), flags 00000000
      Struct: size 16
        Int 0
  Object: size 488, type Spa:Pod:Object:Param:Profile (262151), id Spa:Enum:ParamId:EnumProfile (8)
    Prop: key Spa:Pod:Object:Param:Profile:index (1), flags 00000000
      Int 1
    Prop: key Spa:Pod:Object:Param:Profile:name (2), flags 00000000
      String "HiFi (HDMI1, HDMI2, HDMI3, Headphones, Headset, Mic)"
    Prop: key Spa:Pod:Object:Param:Profile:description (3), flags 00000000
      String "Play HiFi quality Music (HDMI1, HDMI2, HDMI3, Headphones, Headset, Mic)"
    Prop: key Spa:Pod:Object:Param:Profile:priority (4), flags 00000000
      Int 10300
    Prop: key Spa:Pod:Object:Param:Profile:available (5), flags 00000000
      Id 2        (Spa:Enum:ParamAvailability:yes)
    Prop: key Spa:Pod:Object:Param:Profile:classes (7), flags 00000000
      Struct: size 232
        Int 2
        Struct: size 96
          String "Audio/Source"
          Int 2
          String "card.profile.devices"
          Array: child.size 4, child.type Spa:Int
            Int 4
            Int 5
        Struct: size 104
          String "Audio/Sink"
          Int 4
          String "card.profile.devices"
          Array: child.size 4, child.type Spa:Int
            Int 0
            Int 1
            Int 2
            Int 3
  Object: size 488, type Spa:Pod:Object:Param:Profile (262151), id Spa:Enum:ParamId:EnumProfile (8)
    Prop: key Spa:Pod:Object:Param:Profile:index (1), flags 00000000
      Int 2
    Prop: key Spa:Pod:Object:Param:Profile:name (2), flags 00000000
      String "HiFi (HDMI1, HDMI2, HDMI3, Headset, Mic, Speaker)"
    Prop: key Spa:Pod:Object:Param:Profile:description (3), flags 00000000
      String "Play HiFi quality Music (HDMI1, HDMI2, HDMI3, Headset, Mic, Speaker)"
    Prop: key Spa:Pod:Object:Param:Profile:priority (4), flags 00000000
      Int 10200
    Prop: key Spa:Pod:Object:Param:Profile:available (5), flags 00000000
      Id 2        (Spa:Enum:ParamAvailability:yes)
    Prop: key Spa:Pod:Object:Param:Profile:classes (7), flags 00000000
      Struct: size 232
        Int 2
        Struct: size 96
          String "Audio/Source"
          Int 2
          String "card.profile.devices"
          Array: child.size 4, child.type Spa:Int
            Int 4
            Int 5
        Struct: size 104
          String "Audio/Sink"
          Int 4
          String "card.profile.devices"
          Array: child.size 4, child.type Spa:Int
            Int 0
            Int 1
            Int 2
            Int 6
  Object: size 400, type Spa:Pod:Object:Param:Profile (262151), id Spa:Enum:ParamId:EnumProfile (8)
    Prop: key Spa:Pod:Object:Param:Profile:index (1), flags 00000000
      Int 3
    Prop: key Spa:Pod:Object:Param:Profile:name (2), flags 00000000
      String "pro-audio"
    Prop: key Spa:Pod:Object:Param:Profile:description (3), flags 00000000
      String "Pro Audio"
    Prop: key Spa:Pod:Object:Param:Profile:priority (4), flags 00000000
      Int 1
    Prop: key Spa:Pod:Object:Param:Profile:available (5), flags 00000000
      Id 0        (Spa:Enum:ParamAvailability:unknown)
    Prop: key Spa:Pod:Object:Param:Profile:classes (7), flags 00000000
      Struct: size 240
        Int 2
        Struct: size 96
          String "Audio/Source"
          Int 2
          String "card.profile.devices"
          Array: child.size 4, child.type Spa:Int
            Int 13
            Int 14
        Struct: size 112
          String "Audio/Sink"
          Int 6
          String "card.profile.devices"
          Array: child.size 4, child.type Spa:Int
            Int 7
            Int 8
            Int 9
            Int 10
            Int 11
            Int 12

It looks like you are using a SOF driver. You might need to install additional firmware packages to get full functionality with that driver.[1]


  1. ↩︎

Also, did you check for muted or disabled digital outputs in alsamixer?

Thank you for your reply. I had some of the other firmware installed and I had checked alsamixer already, and couldn’t see anything obviously wrong there.

I wonder if the sof driver just doesn’t support parse advanced codecs like eac3 and such, but it would seems strange. Also it seems to be the only audio driver for Lunar Lake Laptops…

It really feels like the passthrough on digital output is somehow not detected (even though it is through hdmi).

I’ll see if anything changes with Fedora 44 and report here.

1 Like