Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
13r0ck opened this issue Feb 14, 2023 · 30 comments
Open

Comments

@13r0ck
Copy link
Contributor

13r0ck commented Feb 14, 2023

Seems to have been broken by 33b934c , 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 1923bd1 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
Copy link
Contributor Author

13r0ck commented Feb 15, 2023

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
Copy link
Contributor Author

13r0ck commented Feb 16, 2023

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

@perexg
Copy link
Member

perexg commented Feb 16, 2023

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
Copy link
Member

perexg commented Feb 16, 2023

@13r0ck
Copy link
Contributor Author

13r0ck commented Feb 16, 2023

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 13r0ck changed the title Liine & Mic In detected, but not working on MPG B650I EDGE WIFI (0db0:36e7) Line & Mic In detected, but not working on MPG B650I EDGE WIFI (0db0:36e7) Feb 17, 2023
@perexg
Copy link
Member

perexg commented Feb 17, 2023

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.

@13r0ck
Copy link
Contributor Author

13r0ck commented Feb 17, 2023

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.

@perexg
Copy link
Member

perexg commented Feb 19, 2023

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

@13r0ck
Copy link
Contributor Author

13r0ck commented Feb 22, 2023

$ 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

@perexg
Copy link
Member

perexg commented Feb 28, 2023

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).

@13r0ck
Copy link
Contributor Author

13r0ck commented Mar 1, 2023

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.

@liayn
Copy link

liayn commented Mar 30, 2023

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.

@13r0ck
Copy link
Contributor Author

13r0ck commented Mar 30, 2023

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

@perexg
Copy link
Member

perexg commented Mar 30, 2023

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.

@liayn
Copy link

liayn commented Mar 30, 2023

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

@13r0ck
Copy link
Contributor Author

13r0ck commented Apr 12, 2023

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

@liayn
Copy link

liayn commented Apr 14, 2023

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)

@13r0ck
Copy link
Contributor Author

13r0ck commented Apr 14, 2023

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 😛)

@jackpot51
Copy link

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

@perexg
Copy link
Member

perexg commented Jan 9, 2024

This bug is stale. Re-open when required.

@perexg perexg closed this as completed Jan 9, 2024
@liayn
Copy link

liayn commented Jan 9, 2024

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

@perexg
Copy link
Member

perexg commented Jan 9, 2024

@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 perexg reopened this Jan 9, 2024
@liayn
Copy link

liayn commented Jan 10, 2024

In regards to jack detection no change since #281 (comment)


systemctl --user status wireplumber.service

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


As noted in #281 (comment)

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?

@perexg
Copy link
Member

perexg commented Jan 10, 2024

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.

@liayn
Copy link

liayn commented Jan 10, 2024

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
                }
        }
}

perexg added a commit that referenced this issue Jan 11, 2024
… WIFI)

Link: #281
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
@perexg
Copy link
Member

perexg commented Jan 11, 2024

Try the above patch (4b8c56c). 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.

@liayn
Copy link

liayn commented Jan 11, 2024

@perexg Thanks I applied the patch and restarted wireplumber.

The effect now:

Rear speaker: ✅
Rear mic: ❌ no jack detection
Rear line: ❌ no jack detection
Front: speaker ✅ ; mic ❌ detected, but no input

@perexg
Copy link
Member

perexg commented Jan 12, 2024

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.

@liayn
Copy link

liayn commented Jan 15, 2024

@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).

@perexg
Copy link
Member

perexg commented Jan 15, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants