alsa-ucm-conf icon indicating copy to clipboard operation
alsa-ucm-conf copied to clipboard

Line & Mic In detected, but not working on MPG B650I EDGE WIFI (0db0:36e7)

Open 13r0ck opened this issue 2 years ago • 32 comments

Seems to have been broken by 33b934c29d2911ef060d48b1a0ca9682645b68c8 , as it was completely functional in 1.2.7.2

I did manage to find a patch that fixes the line in on 1.2.8: All it does is disable spdif for that usb id.

Index: alsa-ucm-conf/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf
===================================================================
--- alsa-ucm-conf.orig/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf
+++ alsa-ucm-conf/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf
@@ -100,6 +100,17 @@ If.msi-meg-unify {
	  }
 }
 
+If.b650i {
+	Condition {
+		Type RegexMatch
+		String "${CardComponents}"
+		Regex "USB(0db0:36e7)"
+	}
+	True.Define {
+		SpdifName ""
+	}
+}
+
 If.asus-rog-strix {
	  Condition {
		  Type RegexMatch

But I am struggling to find what is missing to make mic work. Jack detection is fine, and I can get recordings via arecord, but I am missing something with the ucm conf.

Here are the config dumps for a few different situations

Without the patch above

$ alsa-info -> http://alsa-project.org/db/?f=ac8aa25f882540a20c95ee555491a498bd3a88a4

` $ alsaucm dump -c hw:1 text `

Verb.HiFi {
	  Comment "HiFi 2.0 channels"
	  Device.Speaker {
		  Comment Speakers
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Speaker - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackChannels 2
			  PlaybackMixerElem PCM,0
			  PlaybackPCM "_ucm0001.hw:Audio"
			  PlaybackPriority 200
			  TQ HiFi
		  }
	  }
	  Device.Headphones {
		  Comment "Front Headphones"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Headphone - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackMixerElem PCM,1
			  PlaybackPCM "_ucm0001.hw:Audio,1"
			  PlaybackPriority 300
			  TQ HiFi
		  }
	  }
	  Device.SPDIF {
		  Comment "S/PDIF Output"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackMixerElem PCM,2
			  PlaybackPCM "_ucm0001.hw:Audio,3"
			  PlaybackPriority 100
			  TQ HiFi
		  }
	  }
	  Device.Line1 {
		  Comment "Line Input"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Line,0
			  CapturePCM "_ucm0001.hw:Audio,1"
			  CapturePriority 100
			  JackControl "Line - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
	  Device.Mic1 {
		  Comment Microphone
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Mic,0
			  CapturePCM "_ucm0001.hw:Audio,2"
			  CapturePriority 300
			  JackControl "Mic - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
}
Verb."HiFi 5+1" {
	  Comment "HiFi 5.1 channels"
	  Device.Speaker {
		  Comment Speakers
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Speaker - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackChannels 6
			  PlaybackMixerElem PCM,0
			  PlaybackPCM "_ucm0001.hw:Audio"
			  PlaybackPriority 200
			  TQ HiFi
		  }
	  }
	  Device.Headphones {
		  Comment "Front Headphones"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Headphone - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackMixerElem PCM,1
			  PlaybackPCM "_ucm0001.hw:Audio,1"
			  PlaybackPriority 300
			  TQ HiFi
		  }
	  }
	  Device.SPDIF {
		  Comment "S/PDIF Output"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackMixerElem PCM,2
			  PlaybackPCM "_ucm0001.hw:Audio,3"
			  PlaybackPriority 100
			  TQ HiFi
		  }
	  }
	  Device.Line1 {
		  Comment "Line Input"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Line,0
			  CapturePCM "_ucm0001.hw:Audio,1"
			  CapturePriority 100
			  JackControl "Line - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
	  Device.Mic1 {
		  Comment Microphone
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Mic,0
			  CapturePCM "_ucm0001.hw:Audio,2"
			  CapturePriority 300
			  JackControl "Mic - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
}
Verb."HiFi 7+1" {
	  Comment "HiFi 7.1 channels"
	  Device.Speaker {
		  Comment Speakers
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Speaker - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackChannels 8
			  PlaybackMixerElem PCM,0
			  PlaybackPCM "_ucm0001.hw:Audio"
			  PlaybackPriority 200
			  TQ HiFi
		  }
	  }
	  Device.Headphones {
		  Comment "Front Headphones"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Headphone - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackMixerElem PCM,1
			  PlaybackPCM "_ucm0001.hw:Audio,1"
			  PlaybackPriority 300
			  TQ HiFi
		  }
	  }
	  Device.SPDIF {
		  Comment "S/PDIF Output"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackMixerElem PCM,2
			  PlaybackPCM "_ucm0001.hw:Audio,3"
			  PlaybackPriority 100
			  TQ HiFi
		  }
	  }
	  Device.Line1 {
		  Comment "Line Input"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Line,0
			  CapturePCM "_ucm0001.hw:Audio,1"
			  CapturePriority 100
			  JackControl "Line - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
	  Device.Mic1 {
		  Comment Microphone
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Mic,0
			  CapturePCM "_ucm0001.hw:Audio,2"
			  CapturePriority 300
			  JackControl "Mic - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
}


With the patch above

$ alsa-info -> http://alsa-project.org/db/?f=7b95b33ddf71324505c7dd696bcc7f24ca64ca52

` $ alsaucm dump -c hw:1 text `

Verb.HiFi {
	  Comment "HiFi 2.0 channels"
	  Device.Speaker {
		  Comment Speakers
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Speaker - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackChannels 2
			  PlaybackMixerElem PCM,0
			  PlaybackPCM "_ucm0001.hw:Audio"
			  PlaybackPriority 200
			  TQ HiFi
		  }
	  }
	  Device.Headphones {
		  Comment "Front Headphones"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Headphone - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackMixerElem PCM,1
			  PlaybackPCM "_ucm0001.hw:Audio,1"
			  PlaybackPriority 300
			  TQ HiFi
		  }
	  }
	  Device.Line1 {
		  Comment "Line Input"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Line,0
			  CapturePCM "_ucm0001.hw:Audio,1"
			  CapturePriority 100
			  JackControl "Line - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
	  Device.Mic1 {
		  Comment Microphone
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Mic,0
			  CapturePCM "_ucm0001.hw:Audio,2"
			  CapturePriority 300
			  JackControl "Mic - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
}
Verb."HiFi 5+1" {
	  Comment "HiFi 5.1 channels"
	  Device.Speaker {
		  Comment Speakers
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Speaker - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackChannels 6
			  PlaybackMixerElem PCM,0
			  PlaybackPCM "_ucm0001.hw:Audio"
			  PlaybackPriority 200
			  TQ HiFi
		  }
	  }
	  Device.Headphones {
		  Comment "Front Headphones"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Headphone - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackMixerElem PCM,1
			  PlaybackPCM "_ucm0001.hw:Audio,1"
			  PlaybackPriority 300
			  TQ HiFi
		  }
	  }
	  Device.Line1 {
		  Comment "Line Input"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Line,0
			  CapturePCM "_ucm0001.hw:Audio,1"
			  CapturePriority 100
			  JackControl "Line - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
	  Device.Mic1 {
		  Comment Microphone
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Mic,0
			  CapturePCM "_ucm0001.hw:Audio,2"
			  CapturePriority 300
			  JackControl "Mic - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
}
Verb."HiFi 7+1" {
	  Comment "HiFi 7.1 channels"
	  Device.Speaker {
		  Comment Speakers
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Speaker - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackChannels 8
			  PlaybackMixerElem PCM,0
			  PlaybackPCM "_ucm0001.hw:Audio"
			  PlaybackPriority 200
			  TQ HiFi
		  }
	  }
	  Device.Headphones {
		  Comment "Front Headphones"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  JackControl "Headphone - Output Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  PlaybackMixerElem PCM,1
			  PlaybackPCM "_ucm0001.hw:Audio,1"
			  PlaybackPriority 300
			  TQ HiFi
		  }
	  }
	  Device.Line1 {
		  Comment "Line Input"
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Line,0
			  CapturePCM "_ucm0001.hw:Audio,1"
			  CapturePriority 100
			  JackControl "Line - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
	  Device.Mic1 {
		  Comment Microphone
		  Values {
			  CaptureCTL "_ucm0001.hw:Audio"
			  CaptureMixerElem Mic,0
			  CapturePCM "_ucm0001.hw:Audio,2"
			  CapturePriority 300
			  JackControl "Mic - Input Jack"
			  PlaybackCTL "_ucm0001.hw:Audio"
			  TQ HiFi
		  }
	  }
}


On 1.2.7.2 ( with USB-Audio.conf quirk to add 0bd0:36e7 to Realtek ALC4080. See https://github.com/alsa-project/alsa-ucm-conf/commit/1923bd19c0bef947c085e2941dd8ed2d1310731e but for 1.2.7.2 )

$ alsa-info -> http://alsa-project.org/db/?f=f148616a3e9b8c0dffffbe57a6bc9ede78c9d309

` $ alsaucm dump -c hw:1 text `

Verb.HiFi {
	Comment "Play HiFi quality Music"
	Device.Speaker {
		Comment Speakers
		Values {
			CaptureCTL "_ucm0001.hw:Audio"
			JackControl "Speaker - Output Jack"
			PlaybackCTL "_ucm0001.hw:Audio"
			PlaybackChannels 2
			PlaybackMixerElem Speaker
			PlaybackPCM "_ucm0001.hw:Audio"
			PlaybackPriority 200
		}
	}
	Device.Line {
		Comment "Line In"
		Values {
			CaptureCTL "_ucm0001.hw:Audio"
			CaptureMixerElem Line
			CapturePCM "_ucm0001.hw:Audio,1"
			CapturePriority 100
			JackControl "Line - Input Jack"
			PlaybackCTL "_ucm0001.hw:Audio"
		}
	}
	Device.Mic1 {
		Comment Microphone
		Values {
			CaptureCTL "_ucm0001.hw:Audio"
			CaptureMixerElem Mic
			CapturePCM "_ucm0001.hw:Audio,2"
			CapturePriority 200
			JackControl "Mic - Input Jack"
			PlaybackCTL "_ucm0001.hw:Audio"
		}
	}
}



13r0ck avatar Feb 14 '23 19:02 13r0ck

The patch above now only seems to fix mic, after plugging something into the speaker jack first. I can't reproduce the behavior I had anymore. Now it is just broken in new ways.

13r0ck avatar Feb 15 '23 22:02 13r0ck

When in the state described here:

amixer -c 1 sset Line,0 100% unmute cap fixes the Line jack. So that Line in just works, but then mic still doesn't work until something is plugged into the speaker

13r0ck avatar Feb 16 '23 01:02 13r0ck

The Line,0 should be controlled in the UCM device:

             EnableSequence [
                        cset "name='${var:Line1Mixer} Capture Switch',index=${var:Line1Mindex} on"
             ]

It looks like that the device is not selected in the audio server.

I would recommend to check jack detection names at first (amixer -c 0 events or alsactl monitor hw:0). Then check the PCM devices using aplay/arecord and correlate mixer controls (alsamixer or amixer). If you gather this information, you can compare the defaults from the Define section and overwrite them for the specific hardware/firmware version.

It's really pity that we have tents versions of firmware for ALC4080.

perexg avatar Feb 16 '23 08:02 perexg

https://github.com/alsa-project/alsa-ucm-conf/blob/master/ucm2/DEBUG.md

perexg avatar Feb 16 '23 08:02 perexg

Thanks for the info! I have read those debug notes a few times and I'm still not sure what do do with this one.

$ amixer -c 1 events

~~SNIP~~

event value: numid=14,iface=CARD,name='Mic - Input Jack'
event value: numid=15,iface=MIXER,name='Mic Capture Switch'

That is the output I get when (un)plugging the mic jack. So the name detection is correct.

Then when I use arecord -Dplughw:1,2 I do get recording from the mic. Which is the same value that is already in ALC4080-HiFi.

I'm not sure what else I should try here. I'm not sure if it is useful, but when I plug into the speaker jack (which then fixes the mic jack), if I run spa-acp-tool -c 1 info it breaks the mic again, which is strange... and maybe means this is a pipewire bug?

13r0ck avatar Feb 16 '23 22:02 13r0ck

It's a question, if PCM 2 device is only for the microphone. You may try also other PCM devices. I guess, if Speaker is somehow connected to Mic, then PCM 2 may be a stream for the mixed output.

Also, don't use spa-acp-tool when the pipewire is running. You should also probably select the right sink/source there.

perexg avatar Feb 17 '23 08:02 perexg

I think it might be a mixed stream? When I plug a jack into the speaker the mic input gets selected for a moment in gnome-control-center. I have tried every combination of possible PCM via the Define section. None of them make the mic work properly. After more testing amixer -c 1 sset Line,0 100% unmute cap is only needed some of the times. I think it might be a fluke because I am changing ucm config and rebooting so many times.

13r0ck avatar Feb 17 '23 21:02 13r0ck

The reboot is not necessary. For pipewire, the command systemctl --user restart wireplumber is sufficient to reload the new UCM configuration.

I would start from scratch:

  1. disable pipewire (systemctl --user stop wireplumber)
  2. test all Jacks - amixer -c 0 events - report it here
  3. turn all mixer settings on (+ unmute + capture flags) - report amixer scontents here
  4. test all possible PCM devices to assign them to the physical plugs (aplay -l, arecord -l)
  5. try to find which mixer elements control volume for a given PCM stream

perexg avatar Feb 19 '23 21:02 perexg

$ amixer -c 1 events

event add: numid=6,iface=CARD,name='Analog In - Input Jack'
event add: numid=9,iface=CARD,name='Clock Source 1 Validity'
event add: numid=13,iface=CARD,name='Clock Source 3 Validity'
event add: numid=17,iface=CARD,name='Clock Source 4 Validity'
event add: numid=20,iface=CARD,name='Clock Source 5 Validity'
event add: numid=24,iface=CARD,name='Clock Source 6 Validity'
event add: numid=25,iface=CARD,name='Headphone - Output Jack'
event add: numid=10,iface=CARD,name='Line - Input Jack'
event add: numid=14,iface=CARD,name='Mic - Input Jack'
event add: numid=21,iface=CARD,name='Speaker - Output Jack'
event add: numid=18,iface=MIXER,name='PCM Playback Switch'
event add: numid=22,iface=MIXER,name='PCM Playback Switch',index=1
event add: numid=19,iface=MIXER,name='PCM Playback Volume'
event add: numid=23,iface=MIXER,name='PCM Playback Volume',index=1
event add: numid=11,iface=MIXER,name='Line Capture Switch'
event add: numid=12,iface=MIXER,name='Line Capture Volume'
event add: numid=15,iface=MIXER,name='Mic Capture Switch'
event add: numid=16,iface=MIXER,name='Mic Capture Volume'
event add: numid=7,iface=MIXER,name='Analog In Capture Switch'
event add: numid=8,iface=MIXER,name='Analog In Capture Volume'
event add: numid=1,iface=PCM,name='Capture Channel Map'
event add: numid=4,iface=PCM,name='Playback Channel Map'
event add: numid=2,iface=PCM,name='Capture Channel Map',device=1
event add: numid=5,iface=PCM,name='Playback Channel Map',device=1
event add: numid=3,iface=PCM,name='Capture Channel Map',device=2
Ready to listen...
Poll ok: 1
event value: numid=14,iface=CARD,name='Mic - Input Jack' # Plug mic in
event value: numid=14,iface=CARD,name='Mic - Input Jack' # Unplug mic
event value: numid=21,iface=CARD,name='Speaker - Output Jack' # plug speaker in
event value: numid=21,iface=CARD,name='Speaker - Output Jack' # unplug speaker
event value: numid=10,iface=CARD,name='Line - Input Jack' # plug line in
event value: numid=10,iface=CARD,name='Line - Input Jack' # unplug line

$ amixer contents

numid=4,iface=MIXER,name='Master Playback Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=3,iface=MIXER,name='Master Playback Volume'
  ; type=INTEGER,access=rw------,values=0,min=0,max=65536,step=1
  : values=
numid=2,iface=MIXER,name='Capture Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=1,iface=MIXER,name='Capture Volume'
  ; type=INTEGER,access=rw------,values=0,min=0,max=65536,step=1
  : values=

$ amixer scontents

Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 65536
  Mono: Playback 0 [0%] [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cvolume-joined cswitch cswitch-joined
  Capture channels: Mono
  Limits: Capture 0 - 65536
  Mono: Capture 0 [0%] [on]

$ arecord -l

**** List of CAPTURE Hardware Devices ****
card 1: Audio [USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Audio [USB Audio], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Audio [USB Audio], device 2: USB Audio [USB Audio #2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
  
$ aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: Generic_1 [HD-Audio Generic], device 3: HDMI 0 [VP2771]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic_1 [HD-Audio Generic], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic_1 [HD-Audio Generic], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic_1 [HD-Audio Generic], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Audio [USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Audio [USB Audio], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

13r0ck avatar Feb 22 '23 17:02 13r0ck

All amixer command should have -c 1 argument otherwise the sound server (not hardware) mixer controls are printed.

Have you tested all PCM devices directly (e.g. aplay -D plughw:1,1 <some_wav> / arecord -vvv -D plughw:1,1 -f dat a.wav) without pulseaudio/pipewire? The first number is the sound card number and second is the PCM device number (for this sound card).

perexg avatar Feb 28 '23 10:02 perexg

All amixer command should have -c 1 argument otherwise the sound server (not hardware) mixer controls are printed.

Oh sorry about that. Here are the updated outputs

$ amixer -c 1 scontents # Before plugging into speaker

Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right - Rear Left - Rear Right - Front Center - Woofer - Side Left - Side Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB] [off]
  Front Right: Playback 87 [100%] [0.00dB] [off]
  Rear Left: Playback 87 [100%] [0.00dB] [off]
  Rear Right: Playback 87 [100%] [0.00dB] [off]
  Front Center: Playback 87 [100%] [0.00dB] [off]
  Woofer: Playback 87 [100%] [0.00dB] [off]
  Side Left: Playback 87 [100%] [0.00dB] [off]
  Side Right: Playback 87 [100%] [0.00dB] [off]
Simple mixer control 'PCM',1
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB] [off]
  Front Right: Playback 87 [100%] [0.00dB] [off]
Simple mixer control 'Line',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 39
  Front Left: Capture 39 [100%] [12.00dB] [off]
  Front Right: Capture 39 [100%] [12.00dB] [off]
Simple mixer control 'Mic',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 39
  Front Left: Capture 39 [100%] [12.00dB] [off]
  Front Right: Capture 39 [100%] [12.00dB] [off]
Simple mixer control 'Analog In',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 39
  Front Left: Capture 39 [100%] [12.00dB] [on]
  Front Right: Capture 39 [100%] [12.00dB] [on]

$ amixer -c 1 scontents # After plugging into speaker

Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right - Rear Left - Rear Right - Front Center - Woofer - Side Left - Side Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB] [off]
  Front Right: Playback 87 [100%] [0.00dB] [off]
  Rear Left: Playback 87 [100%] [0.00dB] [off]
  Rear Right: Playback 87 [100%] [0.00dB] [off]
  Front Center: Playback 87 [100%] [0.00dB] [off]
  Woofer: Playback 87 [100%] [0.00dB] [off]
  Side Left: Playback 87 [100%] [0.00dB] [off]
  Side Right: Playback 87 [100%] [0.00dB] [off]
Simple mixer control 'PCM',1
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB] [off]
  Front Right: Playback 87 [100%] [0.00dB] [off]
Simple mixer control 'Line',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 39
  Front Left: Capture 39 [100%] [12.00dB] [off]
  Front Right: Capture 39 [100%] [12.00dB] [off]
Simple mixer control 'Mic',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 39
  Front Left: Capture 39 [100%] [12.00dB] [on]
  Front Right: Capture 39 [100%] [12.00dB] [on]
Simple mixer control 'Analog In',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 39
  Front Left: Capture 39 [100%] [12.00dB] [on]
  Front Right: Capture 39 [100%] [12.00dB] [on]

$ amixer -c 1 contents # Before and after are the same

numid=6,iface=CARD,name='Analog In - Input Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=9,iface=CARD,name='Clock Source 1 Validity'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=13,iface=CARD,name='Clock Source 3 Validity'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=17,iface=CARD,name='Clock Source 4 Validity'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=20,iface=CARD,name='Clock Source 5 Validity'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=24,iface=CARD,name='Clock Source 6 Validity'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=25,iface=CARD,name='Headphone - Output Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=off
numid=10,iface=CARD,name='Line - Input Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=off
numid=14,iface=CARD,name='Mic - Input Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=21,iface=CARD,name='Speaker - Output Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=off
numid=18,iface=MIXER,name='PCM Playback Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=22,iface=MIXER,name='PCM Playback Switch',index=1
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=19,iface=MIXER,name='PCM Playback Volume'
  ; type=INTEGER,access=rw---R--,values=8,min=0,max=87,step=0
  : values=87,87,87,87,87,87,87,87
  | dBminmax-min=-65.25dB,max=0.00dB
numid=23,iface=MIXER,name='PCM Playback Volume',index=1
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=87,step=0
  : values=87,87
  | dBminmax-min=-65.25dB,max=0.00dB
numid=11,iface=MIXER,name='Line Capture Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=12,iface=MIXER,name='Line Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=39,step=0
  : values=39,39
  | dBminmax-min=-17.25dB,max=12.00dB
numid=15,iface=MIXER,name='Mic Capture Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=16,iface=MIXER,name='Mic Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=39,step=0
  : values=39,39
  | dBminmax-min=-17.25dB,max=12.00dB
numid=7,iface=MIXER,name='Analog In Capture Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=8,iface=MIXER,name='Analog In Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=39,step=0
  : values=39,39
  | dBminmax-min=-17.25dB,max=12.00dB
numid=1,iface=PCM,name='Capture Channel Map'
  ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
  : values=0,0
  | container
    | chmap-fixed=FL,FR
numid=4,iface=PCM,name='Playback Channel Map'
  ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
  : values=0,0
  | container
    | chmap-fixed=FL,FR
    | chmap-fixed=FL,FR,RL,RR
    | chmap-fixed=FL,FR,FC,LFE,RL,RR
    | chmap-fixed=FL,FR,FC,LFE,RL,RR,FLC,FRC
numid=2,iface=PCM,name='Capture Channel Map',device=1
  ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
  : values=0,0
  | container
    | chmap-fixed=FL,FR
numid=5,iface=PCM,name='Playback Channel Map',device=1
  ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
  : values=0,0
  | container
    | chmap-fixed=FL,FR
numid=3,iface=PCM,name='Capture Channel Map',device=2
  ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
  : values=3,4
  | container
    | chmap-fixed=FL,FR

Have you tested all PCM devices directly

This system is acting very weird. I tried that (and just double checked) I can't get arecord to record anything on that computer. All jacks on all hardware devices report 0% (with and without the wireplumber service disabled.) The closest I can get is using audacity, and it detects the microphone on hw1,2 after I plug into the speaker jack. I double checked on another machine to see if maybe the Pop!_OS packaging of alsa-utils was broken. On the other machine arecord works as expected. Fedora has the same behavior on both machines.

Notably in the amixer -c 1 scontents above, the Mic is turned on after the speaker jack is plugged in. amixer -c 1 sset 'Mic',0 100% on cap doesn't fix the issue though. Using a mixer to turn on 'PCM,0', 'PCM',1, or 'Analog In',0 didn't fix the issue either.

13r0ck avatar Mar 01 '23 17:03 13r0ck

I'm a little late to the party, but we also have massive problems with our B650I board.

Context: We run 2 identical PCs, one with normal Fedora 37 and the other with the KDE Plasma spin. Using the Fractal Ridge case, which provides: Mic, Line, Speaker jacks in the back; single jack - combined headphone/mic - in the front

Rear jacks: We can only play sound on the normal rear speaker output jack. Mic Input does not work (no signal), but the jack is detected.

Front jack: Does not work at all. Jack detection works, but no signal.

Jack detection: The KDE audio settings recognizes the separate speaker and headset as separate "things" if those are plugged in after each other. Not so the mics. Connecting a mic to the rear makes the Microphone settings appear, but adding the headset to the front does not add another microphone.

We already updated to latest ucm2-conf (as of today).

I'm willing to provide any details necessary to resolve this issue, but I'm not very deep into audio setup and configuration on Linux. Thanks for any help.

liayn avatar Mar 30 '23 15:03 liayn

This is also an issue with the MSI MPG Z790I (ID: 0db0:62a4)

13r0ck avatar Mar 30 '23 16:03 13r0ck

If things does not work with the native ALSA API (ALSA drivers) then we cannot do much in UCM. I already provided the debug information for UCM. The silent input / output may be caused that something is missing the USB communication / setup. The ALC4080 chips have own firmware and all vendors have a slightly modified version. One way is to use the reverse engineering technique for the windows drivers using qemu.

perexg avatar Mar 30 '23 17:03 perexg

I'm not sure. I tried aplay -d ... some.wav and I could hear it via the front jack. So this seems to work.

liayn avatar Mar 30 '23 21:03 liayn

This seems to have been a pipewire bug, this might fix it https://github.com/pop-os/pipewire/pull/47

13r0ck avatar Apr 12 '23 17:04 13r0ck

This seems to have been a pipewire bug, this might fix it pop-os/pipewire#47

Not sure how a pop-os fix should change things for me on Fedora? This fix is nowhere to see in the real pipewire repo (https://gitlab.freedesktop.org/pipewire/pipewire/-/commits/master?ref_type=heads)

liayn avatar Apr 14 '23 07:04 liayn

No point in upstreaming something that is still being tested. That is what forks are for. Im just keeping this thread updated. Please be paitent (or use pop os 😛)

13r0ck avatar Apr 14 '23 12:04 13r0ck

We will upstream after we have the whole set of audio issues on this motherboard fixed, as @13r0ck said.

jackpot51 avatar Apr 14 '23 13:04 jackpot51

This bug is stale. Re-open when required.

perexg avatar Jan 09 '24 14:01 perexg

@perexg At least with Fedora 39 KDE spin this is not fixed as of today. Just re-tested.

liayn avatar Jan 09 '24 16:01 liayn

@liayn : Describe what does work with the current UCM. Also use native ALSA tools to access the USB driver directly, if you can use the target functionality. UCM is on top of the ALSA drivers. If it's a driver issue, it should be reported at another place.

perexg avatar Jan 09 '24 18:01 perexg

In regards to jack detection no change since https://github.com/alsa-project/alsa-ucm-conf/issues/281#issuecomment-1490493986


systemctl --user status wireplumber.service

wireplumber[2882]: No UCM verb is valid for hw:4


As noted in https://github.com/alsa-project/alsa-ucm-conf/issues/281#issuecomment-1432330365

So that Line in just works, but then mic still doesn't work until something is plugged into the speaker

This I can't confirm. Mic does not work at all, independent of whether a speaker is plugged in.


`amixer -c 4 events`

Front jack:

numid=14,iface=CARD,name='Mic - Input Jack' numid=25,iface=CARD,name='Headphone - Output Jack' numid=12,iface=MIXER,name='Line Capture Volume' numid=19,iface=MIXER,name='PCM Playback Volume'

Rear speaker:

numid=21,iface=CARD,name='Speaker - Output Jack' numid=19,iface=MIXER,name='PCM Playback Volume'

Rear mic:

numid=14,iface=CARD,name='Mic - Input Jack' numid=15,iface=MIXER,name='Mic Capture Switch' numid=16,iface=MIXER,name='Mic Capture Volume'

Rear line-in:

numid=10,iface=CARD,name='Line - Input Jack' numid=11,iface=MIXER,name='Line Capture Switch' numid=12,iface=MIXER,name='Line Capture Volume'

Note: seems like front jack and rear mic are using the same "numid"

`amixer -c 4 contents`
numid=6,iface=CARD,name='Analog In - Input Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=9,iface=CARD,name='Clock Source 1 Validity'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=13,iface=CARD,name='Clock Source 3 Validity'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=17,iface=CARD,name='Clock Source 4 Validity'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=20,iface=CARD,name='Clock Source 5 Validity'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=24,iface=CARD,name='Clock Source 6 Validity'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=25,iface=CARD,name='Headphone - Output Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=10,iface=CARD,name='Line - Input Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=off
numid=14,iface=CARD,name='Mic - Input Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=on
numid=21,iface=CARD,name='Speaker - Output Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=off
numid=18,iface=MIXER,name='PCM Playback Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=22,iface=MIXER,name='PCM Playback Switch',index=1
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=19,iface=MIXER,name='PCM Playback Volume'
  ; type=INTEGER,access=rw---R--,values=8,min=0,max=87,step=0
  : values=64,64,64,64,64,64,64,64
  | dBminmax-min=-65.25dB,max=0.00dB
numid=23,iface=MIXER,name='PCM Playback Volume',index=1
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=87,step=0
  : values=60,60
  | dBminmax-min=-65.25dB,max=0.00dB
numid=11,iface=MIXER,name='Line Capture Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=12,iface=MIXER,name='Line Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=39,step=0
  : values=39,39
  | dBminmax-min=-17.25dB,max=12.00dB
numid=15,iface=MIXER,name='Mic Capture Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=16,iface=MIXER,name='Mic Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=39,step=0
  : values=0,0
  | dBminmax-min=-17.25dB,max=12.00dB
numid=7,iface=MIXER,name='Analog In Capture Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=8,iface=MIXER,name='Analog In Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=39,step=0
  : values=23,23
  | dBminmax-min=-17.25dB,max=12.00dB
numid=1,iface=PCM,name='Capture Channel Map'
  ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
  : values=0,0
  | container
    | chmap-fixed=FL,FR
numid=4,iface=PCM,name='Playback Channel Map'
  ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
  : values=0,0
  | container
    | chmap-fixed=FL,FR
    | chmap-fixed=FL,FR,RL,RR
    | chmap-fixed=FL,FR,FC,LFE,RL,RR
    | chmap-fixed=FL,FR,FC,LFE,RL,RR,FLC,FRC
numid=2,iface=PCM,name='Capture Channel Map',device=1
  ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
  : values=0,0
  | container
    | chmap-fixed=FL,FR
numid=5,iface=PCM,name='Playback Channel Map',device=1
  ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
  : values=0,0
  | container
    | chmap-fixed=FL,FR
numid=3,iface=PCM,name='Capture Channel Map',device=2
  ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
  : values=0,0
  | container
    | chmap-fixed=FL,FR
`amixer -c 4 scontents`
Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right - Rear Left - Rear Right - Front Center - Woofer - Side Left - Side Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 64 [74%] [-17.25dB] [on]
  Front Right: Playback 64 [74%] [-17.25dB] [on]
  Rear Left: Playback 64 [74%] [-17.25dB] [on]
  Rear Right: Playback 64 [74%] [-17.25dB] [on]
  Front Center: Playback 64 [74%] [-17.25dB] [on]
  Woofer: Playback 64 [74%] [-17.25dB] [on]
  Side Left: Playback 64 [74%] [-17.25dB] [on]
  Side Right: Playback 64 [74%] [-17.25dB] [on]
Simple mixer control 'PCM',1
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 60 [69%] [-20.25dB] [off]
  Front Right: Playback 60 [69%] [-20.25dB] [off]
Simple mixer control 'Line',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 39
  Front Left: Capture 39 [100%] [12.00dB] [on]
  Front Right: Capture 39 [100%] [12.00dB] [on]
Simple mixer control 'Mic',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 39
  Front Left: Capture 0 [0%] [-17.25dB] [off]
  Front Right: Capture 0 [0%] [-17.25dB] [off]
Simple mixer control 'Analog In',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 39
  Front Left: Capture 23 [59%] [0.00dB] [on]
  Front Right: Capture 23 [59%] [0.00dB] [on]
`arecord -l`
**** Liste der Hardware-Geräte (CAPTURE) ****
Karte 3: webcam [MD 88366 Full HD webcam], Gerät 0: USB Audio [USB Audio]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 4: Audio [USB Audio], Gerät 0: USB Audio [USB Audio]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 4: Audio [USB Audio], Gerät 1: USB Audio [USB Audio #1]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 4: Audio [USB Audio], Gerät 2: USB Audio [USB Audio #2]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
`aplay -l`
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 1: Generic_1 [HD-Audio Generic], Gerät 3: HDMI 0 [LG ULTRAWIDE]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: Generic_1 [HD-Audio Generic], Gerät 7: HDMI 1 [HDMI 1]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: Generic_1 [HD-Audio Generic], Gerät 8: HDMI 2 [HDMI 2]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: Generic_1 [HD-Audio Generic], Gerät 9: HDMI 3 [HDMI 3]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 4: Audio [USB Audio], Gerät 0: USB Audio [USB Audio]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 4: Audio [USB Audio], Gerät 1: USB Audio [USB Audio #1]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

From the UCM DEBUG infos:

  • There is no alsaucm tool for me.
  • speaker-test runs forever and can't be stopped with ctrl+c. (no matter which CARD/DEV combo I use) Also there is output to hear on the front jack

aplay -D plughw:4,1 /usr/share/sounds/speech-dispatcher/test.wav Nothing to hear


I hope this provides a good overview of what's going on. What should I do next?

liayn avatar Jan 10 '24 08:01 liayn

Could you show amixer -c 4 info, too ? Also, alsaucm tool may be in a different package than alsa-utils (e.g. alsa-ucm-utils in Fedora). If alsaucm test does not work, the UCM config is not valid in your system.

perexg avatar Jan 10 '24 09:01 perexg

amixer -c 4 info

Card sysdefault:4 'Audio'/'Generic USB Audio at usb-0000:0c:00.0-10, high speed'
  Mixer name    : 'USB Mixer'
  Components    : 'USB0db0:36e7'
  Controls      : 25
  Simple ctrls  : 5

Installed alsa-ucm-utils. Thanks.

`alsaucm -c hw:4 dump text`
Verb.HiFi {
        Comment "HiFi 2.0 channels"
        Device.Speaker {
                Comment Speakers
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        JackControl "Speaker - Output Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        PlaybackChannels 2
                        PlaybackMixerElem PCM,0
                        PlaybackPCM "_ucm0001.hw:Audio"
                        PlaybackPriority 200
                        TQ HiFi
                }
        }
        Device.Headphones {
                Comment "Front Headphones"
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        JackControl "Headphone - Output Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        PlaybackMixerElem PCM,1
                        PlaybackPCM "_ucm0001.hw:Audio,1"
                        PlaybackPriority 300
                        TQ HiFi
                }
        }
        Device.SPDIF {
                Comment "S/PDIF Output"
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        PlaybackMixerElem PCM,2
                        PlaybackPCM "_ucm0001.hw:Audio,3"
                        PlaybackPriority 100
                        TQ HiFi
                }
        }
        Device.Line1 {
                Comment "Line Input"
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        CaptureMixerElem Line,0
                        CapturePCM "_ucm0001.hw:Audio,1"
                        CapturePriority 100
                        JackControl "Line - Input Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        TQ HiFi
                }
        }
        Device.Mic1 {
                Comment Microphone
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        CaptureMixerElem Mic,0
                        CapturePCM "_ucm0001.hw:Audio,2"
                        CapturePriority 300
                        JackControl "Mic - Input Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        TQ HiFi
                }
        }
}
Verb."HiFi 5+1" {
        Comment "HiFi 5.1 channels"
        Device.Speaker {
                Comment Speakers
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        JackControl "Speaker - Output Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        PlaybackChannels 6
                        PlaybackMixerElem PCM,0
                        PlaybackPCM "_ucm0001.hw:Audio"
                        PlaybackPriority 200
                        TQ HiFi
                }
        }
        Device.Headphones {
                Comment "Front Headphones"
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        JackControl "Headphone - Output Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        PlaybackMixerElem PCM,1
                        PlaybackPCM "_ucm0001.hw:Audio,1"
                        PlaybackPriority 300
                        TQ HiFi
                }
        }
        Device.SPDIF {
                Comment "S/PDIF Output"
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        PlaybackMixerElem PCM,2
                        PlaybackPCM "_ucm0001.hw:Audio,3"
                        PlaybackPriority 100
                        TQ HiFi
                }
        }
        Device.Line1 {
                Comment "Line Input"
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        CaptureMixerElem Line,0
                        CapturePCM "_ucm0001.hw:Audio,1"
                        CapturePriority 100
                        JackControl "Line - Input Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        TQ HiFi
                }
        }
        Device.Mic1 {
                Comment Microphone
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        CaptureMixerElem Mic,0
                        CapturePCM "_ucm0001.hw:Audio,2"
                        CapturePriority 300
                        JackControl "Mic - Input Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        TQ HiFi
                }
        }
}
Verb."HiFi 7+1" {
        Comment "HiFi 7.1 channels"
        Device.Speaker {
                Comment Speakers
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        JackControl "Speaker - Output Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        PlaybackChannels 8
                        PlaybackMixerElem PCM,0
                        PlaybackPCM "_ucm0001.hw:Audio"
                        PlaybackPriority 200
                        TQ HiFi
                }
        }
        Device.Headphones {
                Comment "Front Headphones"
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        JackControl "Headphone - Output Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        PlaybackMixerElem PCM,1
                        PlaybackPCM "_ucm0001.hw:Audio,1"
                        PlaybackPriority 300
                        TQ HiFi
                }
        }
        Device.SPDIF {
                Comment "S/PDIF Output"
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        PlaybackMixerElem PCM,2
                        PlaybackPCM "_ucm0001.hw:Audio,3"
                        PlaybackPriority 100
                        TQ HiFi
                }
        }
        Device.Line1 {
                Comment "Line Input"
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        CaptureMixerElem Line,0
                        CapturePCM "_ucm0001.hw:Audio,1"
                        CapturePriority 100
                        JackControl "Line - Input Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        TQ HiFi
                }
        }
        Device.Mic1 {
                Comment Microphone
                Values {
                        CaptureCTL "_ucm0001.hw:Audio"
                        CaptureMixerElem Mic,0
                        CapturePCM "_ucm0001.hw:Audio,2"
                        CapturePriority 300
                        JackControl "Mic - Input Jack"
                        PlaybackCTL "_ucm0001.hw:Audio"
                        TQ HiFi
                }
        }
}

liayn avatar Jan 10 '24 09:01 liayn

Try the above patch (4b8c56ceab4a7a32c2b07328876426f904233c49). It's just a variation of patch proposed in this issue description. I would expect, that more ALC4080 hw variants may not have the S/PDIF device present.

perexg avatar Jan 11 '24 14:01 perexg

@perexg Thanks I applied the patch and restarted wireplumber.

The effect now:

Rear speaker: :white_check_mark: Rear mic: :x: no jack detection Rear line: :x: no jack detection Front: speaker :white_check_mark: ; mic :x: detected, but no input

liayn avatar Jan 11 '24 15:01 liayn

The alsaucm dump provides all information for the current configuration to test the devices / jack names with the native ALSA tools. If you discover that something is set wrongly for your platform, give feedback. Otherwise, we cannot do much. For example: Analog In - Input Jack is for what ?

Also, are you on latest BIOS release? Vendors usually upgrade the ALC4080 firmware, too.

perexg avatar Jan 12 '24 20:01 perexg

@perexg Yes I'm of course on the latest BIOS 7D73v16.

For example: Analog In - Input Jack is for what ?

I provided the dump above, but I honestly don't know where I could see this mapping between what amixer outputs and what alsaucm dump says.

I'm, obviously, not too deep into audio things in Linux. I tried to take away as much as I can from all the things written above. I still lack understanding on what information you would need to find the culprit.

Nevertheless, I fully understand that your free support time is exhausted at some point. Thanks for all the help so far! We meanwhile employed dedicated USB Audio-Hardware to workaround this issue. So basically we do not use the mainboard's audio features at all (which is a pity).

liayn avatar Jan 15 '24 07:01 liayn

The debugging using the standard ALSA tools is described in https://github.com/alsa-project/alsa-ucm-conf/blob/master/ucm2/DEBUG.md . In the UCM dump, you see a list of used ALSA PCM device names and controls. If something is difficult to understand, please, put a comment to this document to improve things.

perexg avatar Jan 15 '24 14:01 perexg