UPDATE: This guide's script ended up working for me, even though I had done all the commands individually on my own previously. Don't really know why, but wanted to throw it out there for anyone else reading this.
(As a preface, I am very much a noob when it comes to Linux, but I have already tried following advice from many different forums to no avail. I have tried throughout to provide clear and necessary information about my system's setup.)
I bought the Lenovo X1 Carbon 7th Gen with the intention of running Ubuntu. When I encountered the Wifi problem described here, I settled on using Ubuntu 19 even though I would prefer LTS with Ubuntu 18. All was going well with the system until I needed to use the microphone for a Zoom call, when I realized that my system did not detect any input devices. See what my GUI sound settings look like - there are no input devices to choose from, but my speakers are working.
After troubleshooting online, I found this forum post describing how to fix the problem when running Arch. I decided to try and follow the guide on my own, since this Lenovo forum post implied that this guide isn't Arch-specific and might work for other distros (e.g. Debian, Ubuntu). However, even after following the guide (taking into account the typos pointed out by user tbw in reply #9, I couldn't get the microphone to be detected.
Currently, this is what my /etc/modprobe.d/blacklist.conf looks like.
# blacklist snd_hda_intel
# blacklist snd_soc_skl
When I uncomment the above blacklist lines, there is no difference in the input sources available but I am unable to use my speakers. Thus, I've left these lines commented for the time being.
Currently, this is what my /etc/pulse/default.pa looks like.
load-module module-alsa-source device=hw:0,7
And here is the result of the following command.
# ls -l /lib/firmware/intel/sof-tplg/
total 200
-rw------- 1 jmarkey jmarkey 44987 Aug 14 13:27 sof-hda-generic-2ch.tplg
-rw------- 1 jmarkey jmarkey 45123 Aug 14 13:27 sof-hda-generic-4ch.tplg
-rw------- 1 jmarkey jmarkey 27543 Aug 14 13:27 sof-hda-generic-idisp-2ch.tplg
-rw------- 1 jmarkey jmarkey 27679 Aug 14 13:27 sof-hda-generic-idisp-4ch.tplg
-rw------- 1 jmarkey jmarkey 15343 Aug 14 13:27 sof-hda-generic-idisp.tplg
lrwxrwxrwx 1 root root 53 Jan 17 00:08 sof-hda-generic.tpl -> /lib/firmware/intel/sof-tplg/sof-hda-generic-4ch.tplg
-rw------- 1 jmarkey jmarkey 32787 Aug 14 13:27 sof-hda-generic.tplg.original
Thus my current system resembles the result of the guide. I even made the edits to the pulse daemon described in the final edit of the original post on the thread, and this is what my /etc/pulse/daemon.conf looks like.
enable-lfe-remixing = yes
; lfe-crossover-freq = 0
lfe-crossover-freq = 250
Here is information about my hardware.
# lspci
00:00.0 Host bridge: Intel Corporation Device 9b61 (rev 0c)
00:02.0 VGA compatible controller: Intel Corporation Device 9b41 (rev 02)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 0c)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Device 02f9
00:14.0 USB controller: Intel Corporation Device 02ed
00:14.2 RAM memory: Intel Corporation Device 02ef
00:14.3 Network controller: Intel Corporation Device 02f0
00:15.0 Serial bus controller [0c80]: Intel Corporation Device 02e8
00:15.1 Serial bus controller [0c80]: Intel Corporation Device 02e9
00:16.0 Communication controller: Intel Corporation Device 02e0
00:1d.0 PCI bridge: Intel Corporation Device 02b0 (rev f0)
00:1d.4 PCI bridge: Intel Corporation Device 02b4 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Device 0284
00:1f.3 Audio device: Intel Corporation Device 02c8
00:1f.4 SMBus: Intel Corporation Device 02a3
00:1f.5 Serial bus controller [0c80]: Intel Corporation Device 02a4
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (10) I219-V
03:00.0 Non-Volatile memory controller: Toshiba America Info Systems Device 011a
05:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:01.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:02.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:04.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
07:00.0 System peripheral: Intel Corporation JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016] (rev 02)
2d:00.0 USB controller: Intel Corporation JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016] (rev 02)
And here's the results of some other commands I've seen requested in forum replies.
# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC285 Analog [ALC285 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
# amixer -c0
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 87
Mono: Playback 66 [76%] [-15.75dB] [on]
Simple mixer control 'Headphone',0
Capabilities: pvolume pswitch
Playback channels: Front Left - Front Right
Limits: Playback 0 - 87
Mono:
Front Left: Playback 0 [0%] [-65.25dB] [off]
Front Right: Playback 0 [0%] [-65.25dB] [off]
Simple mixer control 'Speaker',0
Capabilities: pvolume pswitch
Playback channels: Front Left - Front Right
Limits: Playback 0 - 87
Mono:
Front Left: Playback 87 [100%] [0.00dB] [on]
Front Right: Playback 87 [100%] [0.00dB] [on]
Simple mixer control 'Bass Speaker',0
Capabilities: pswitch
Playback channels: Front Left - Front Right
Mono:
Front Left: Playback [on]
Front Right: Playback [on]
Simple mixer control 'PCM',0
Capabilities: pvolume
Playback channels: Front Left - Front Right
Limits: Playback 0 - 255
Mono:
Front Left: Playback 253 [99%] [-0.40dB]
Front Right: Playback 253 [99%] [-0.40dB]
Simple mixer control 'Mic Boost',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 3 [100%] [30.00dB]
Front Right: 3 [100%] [30.00dB]
Simple mixer control 'Mic Mute-LED Mode',0
Capabilities: enum
Items: 'On' 'Off' 'Follow Capture' 'Follow Mute'
Item0: 'On'
Simple mixer control 'IEC958',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'IEC958',1
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'IEC958',2
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'IEC958',3
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'IEC958',4
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch
Capture channels: Front Left - Front Right
Limits: Capture 0 - 63
Front Left: Capture 63 [100%] [30.00dB] [on]
Front Right: Capture 63 [100%] [30.00dB] [on]
Simple mixer control 'Auto-Mute Mode',0
Capabilities: enum
Items: 'Disabled' 'Enabled'
Item0: 'Enabled'
Please let me know if I should post any other information. Because I'm a noob, I'm not sure if the above information is too much or not enough.
I've also tried a few other fixes as well, notably messing around with alsamixer and pavucontrol, but to no avail. Since messing around with these fixes, the light behind my F4 key has been lit (denoting that the microphone is disabled), but I am unable to turn it off by pressing it (while holding the Fn key and while not holding the Fn key).
--------------EDIT 1---------------
Here's the output of the following command (with the lines commented in the blacklist file).
dmesg | grep sof
[ 0.928838] integrity: Loaded X.509 cert 'Microsoft Corporation UEFI CA 2011: 13adbf4309bd82709c8cd54f316ed522988a1bd4'
[ 0.928847] integrity: Loaded X.509 cert 'Microsoft Windows Production PCA 2011: a92902398e16c49778cd90f99e4f9ae17c55af53'
And then with the blacklist lines uncommented.
dmesg | grep sof
[ 0.934483] integrity: Loaded X.509 cert 'Microsoft Corporation UEFI CA 2011: 13adbf4309bd82709c8cd54f316ed522988a1bd4'
[ 0.934496] integrity: Loaded X.509 cert 'Microsoft Windows Production PCA 2011: a92902398e16c49778cd90f99e4f9ae17c55af53'
[ 2.767718] sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
[ 2.767724] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040380
[ 2.767850] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
[ 2.771861] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 2.776385] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
[ 2.776386] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[ 2.822519] sof-audio-pci 0000:00:1f.3: unexpected ipc interrupt raised!
[ 2.822520] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
[ 5.892335] sof-audio-pci 0000:00:1f.3: error: load fw failed ret: -110
[ 5.892349] sof-audio-pci 0000:00:1f.3: error: status = 0x00000000 panic = 0x00000000
[ 5.892353] sof-audio-pci 0000:00:1f.3: error: failed to reset DSP
[ 5.892354] sof-audio-pci 0000:00:1f.3: error: failed to boot DSP firmware -110
[ 5.892355] sof-audio-pci 0000:00:1f.3: error: sof_probe_work failed err: -110