Microphone on Lenovo Yoga C930 not working

Haven’t been able to get my microphone to work at all on fresh install. I’ve tried following the directions at Lenovo Yoga c940 - ArchWiki, but blacklisting the snd_hda_intel module gives me no audio at all as sof won’t load automatically. Loading the snd_hda_intel module at least gives me sound but the microphone doesn’t work (nor does the microphone on my Bose QC 35 II headset).

I take that you installed sof-firmware, correct? Please run inxi -Aza and lspci -k

Yes, installed sof-firmware.

pacman -Q --info sof-firmware:
Name : sof-firmware
Version : 1.5.1-1

inxi -Aza:
Audio: Device-1: Intel Sunrise Point-LP HD Audio vendor: Lenovo driver: N/A alternate: snd_hda_intel, snd_soc_skl
bus ID: 00:1f.3 chip ID: 8086:9d71

lspci -k | grep audio -A 2:
00:1f.3 Multimedia audio controller: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
Subsystem: Lenovo Device 3831
Kernel modules: snd_hda_intel, snd_soc_skl

Full output of lspci -k:
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
Subsystem: Lenovo Device 3821
Kernel driver in use: skl_uncore
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
Subsystem: Lenovo Device 3803
Kernel driver in use: i915
Kernel modules: i915
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 08)
Subsystem: Lenovo Device 381c
Kernel driver in use: proc_thermal
Kernel modules: processor_thermal_device
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
Subsystem: Lenovo Device 386a
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
Subsystem: Lenovo Device 385a
Kernel driver in use: intel_pch_thermal
Kernel modules: intel_pch_thermal
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
Subsystem: Lenovo Device 385f
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
Subsystem: Lenovo Device 3857
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:15.3 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3 (rev 21)
Subsystem: Lenovo Device 3809
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
Subsystem: Lenovo Device 3868
Kernel driver in use: mei_me
Kernel modules: mei_me
00:19.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #2 (rev 21)
Subsystem: Lenovo Device 3810
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)
Kernel driver in use: pcieport
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
Kernel driver in use: pcieport
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation Sunrise Point LPC Controller/eSPI Controller (rev 21)
Subsystem: Lenovo Device 3816
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
Subsystem: Lenovo Device 386c
00:1f.3 Multimedia audio controller: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
Subsystem: Lenovo Device 3831
Kernel modules: snd_hda_intel, snd_soc_skl
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
Subsystem: Lenovo Device 3867
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
6b:00.0 Network controller: Intel Corporation Wireless-AC 9260 (rev 29)
Subsystem: Intel Corporation Device 0014
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
6c:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD
Subsystem: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD
Kernel driver in use: nvme

And as far as I see your applied the configuration presented on the Arch wiki, correct? What’s the output of pa-info?

As far as I can tell–it is mostly just blacklisting the two modules, right?

lsmod | grep snd:
snd_seq_dummy 16384 0
snd_hrtimer 16384 1
snd_seq 86016 7 snd_seq_dummy
snd_seq_device 16384 1 snd_seq
snd_timer 45056 2 snd_seq,snd_hrtimer
snd 114688 5 snd_seq,snd_seq_device,snd_timer
soundcore 16384 1 snd

pa-info:
________________
> pulseaudio_ps_do
root 2597 0.0 0.0 3076 788 pts/2 S+ 15:14 0:00 grep pulseaudio
________________
> which pulseaudio
/usr/bin/pulseaudio
________________
> pidof pulseaudio
________________
> pulseaudio --version
pulseaudio 13.99.1-102-gb72724
________________
> pactl info
________________
> pactl list
________________
> cat /etc/pulse/daemon.conf
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
## more information. Default values are commented out. Use either ; or # for
## commenting.

; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; enable-memfd = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no

; high-priority = yes
; nice-level = -11

; realtime-scheduling = yes
; realtime-priority = 5

exit-idle-time=0
; exit-idle-time = 20
; scache-idle-time = 20

; dl-search-path = (depends on architecture)

; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

; resample-method = speex-float-1
; avoid-resampling = false
; enable-remixing = yes
; remixing-use-all-sink-channels = yes
; remixing-produce-lfe = no
; remixing-consume-lfe = no
; lfe-crossover-freq = 0

flat-volumes = no
; flat-volumes = no

; rescue-streams = yes

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000

; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 48000
; default-sample-channels = 2
; default-channel-map = front-left,front-right

; default-fragments = 4
; default-fragment-size-msec = 25

; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0
________________
> cat /etc/pulse/client.conf
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

## Configuration file for PulseAudio clients. See pulse-client.conf(5) for
## more information. Default values are commented out. Use either ; or # for
## commenting.

; default-sink =
; default-source =
; default-server =
; default-dbus-server =

autospawn = no
; autospawn = yes
; daemon-binary = /usr/bin/pulseaudio
; extra-arguments = --log-target=syslog

; cookie-file =

; enable-shm = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB

; auto-connect-localhost = no
; auto-connect-display = no
________________
> cat /etc/pulse/default.pa
#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

# This startup script is used only if PulseAudio is started per-user
# (i.e. not in system mode)

.fail

### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore

### Automatically augment property information from .desktop files
### stored in /usr/share/application
load-module module-augment-properties

### Should be after module-*-restore but before module-*-detect
load-module module-switch-on-port-available

### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink

### Lenovo SOF Fix
load-module module-alsa-sink device=hw:0,0 channels=4
load-module module-alsa-source device=hw:0,6 channels=4

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif

### Automatically connect sink and source if JACK server is present
.ifexists module-jackdbus-detect.so
.nofail
load-module module-jackdbus-detect channels=2
.fail
.endif

### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif

### Load several protocols
load-module module-dbus-protocol
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish

### Load the RTP receiver module (also configured via paprefs, see above)
#load-module module-rtp-recv

### Load the RTP sender module (also configured via paprefs, see above)
#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
#load-module module-rtp-send source=rtp.monitor

### Load additional modules from GSettings. This can be configured with the paprefs tool.
### Please keep in mind that the modules configured by paprefs might conflict with manually
### loaded modules.
.ifexists module-gsettings.so
.nofail
load-module module-gsettings
.fail
.endif


### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent modules
### that look up the default sink/source get the right value
load-module module-default-device-restore

### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink

### Honour intended role device property
load-module module-intended-roles

### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle

### If autoexit on idle is enabled we want to make sure we only quit
### when no local session needs us anymore.
.ifexists module-console-kit.so
load-module module-console-kit
.endif
.ifexists module-systemd-login.so
load-module module-systemd-login
.endif

### Enable positioned event sounds
load-module module-position-event-sounds

### Cork music/video streams when a phone stream is active
load-module module-role-cork

### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply

### Make some devices default
#set-default-sink output
#set-default-source input
________________
> cat /etc/pulse/system.pa
#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

# This startup script is used only if PulseAudio is started in system
# mode.

### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev/hal support)
load-module module-detect
.endif

### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix

### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent modules
### that look up the default sink/source get the right value
load-module module-default-device-restore

### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink

### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle

### Enable positioned event sounds
load-module module-position-event-sounds
________________
> ls -alt /dev/snd/*
crw-rw----+ 1 root audio 116, 1 Sep 14 15:14 /dev/snd/seq
crw-rw----+ 1 root audio 116, 33 Sep 14 15:14 /dev/snd/timer
________________
> lsof /dev/snd/*
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pipewire 2493 atrifix 28u CHR 116,1 0t0 17675 /dev/snd/seq
pipewire 2493 atrifix 29u CHR 116,1 0t0 17675 /dev/snd/seq
________________
> jacks_do
________________
> aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
samplerate
Rate Converter Plugin Using Samplerate Library
speexrate
Rate Converter Plugin Using Speex Resampler
jack
JACK Audio Connection Kit
oss
Open Sound System
pipewire
PipeWire Sound Server
pulse
PulseAudio Sound Server
speex
Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
Plugin for channel upmix (4,6,8)
vdownmix
Plugin for channel downmix (stereo) with a simple spacialization
default
Default ALSA Output (currently PulseAudio Sound Server)
________________
> arecord -L
null
Discard all samples (playback) or generate zero samples (capture)
samplerate
Rate Converter Plugin Using Samplerate Library
speexrate
Rate Converter Plugin Using Speex Resampler
jack
JACK Audio Connection Kit
oss
Open Sound System
pipewire
PipeWire Sound Server
pulse
PulseAudio Sound Server
speex
Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
Plugin for channel upmix (4,6,8)
vdownmix
Plugin for channel downmix (stereo) with a simple spacialization
default
Default ALSA Output (currently PulseAudio Sound Server)
________________
> alsa_info_do
upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.65
!!################################

!!Script ran on: Mon Sep 14 22:14:31 UTC 2020


!!Linux Distribution
!!------------------

ID_LIKE=arch


!!DMI Information
!!---------------

Manufacturer: LENOVO
Product Name: 81EQ
Product Version: Lenovo YOGA C930-13IKB Glass
Firmware Version: 8GCN32WW
Board Vendor: LENOVO
Board Name: LNVNB161216


!!ACPI Device Status Information
!!---------------

/sys/bus/acpi/devices/ACPI0003:00/status 15
/sys/bus/acpi/devices/ACPI000C:00/status 15
/sys/bus/acpi/devices/IDEA0100:00/status 15
/sys/bus/acpi/devices/INT0E0C:00/status 15
/sys/bus/acpi/devices/INT33A1:00/status 15
/sys/bus/acpi/devices/INT33D0:00/status 15
/sys/bus/acpi/devices/INT33D3:00/status 15
/sys/bus/acpi/devices/INT3400:00/status 15
/sys/bus/acpi/devices/INT3403:01/status 15
/sys/bus/acpi/devices/INT340E:00/status 15
/sys/bus/acpi/devices/INT3F0D:00/status 15
/sys/bus/acpi/devices/ITE8353:00/status 15
/sys/bus/acpi/devices/LIC0001:00/status 15
/sys/bus/acpi/devices/MSFT0101:00/status 15
/sys/bus/acpi/devices/PNP0103:00/status 15
/sys/bus/acpi/devices/PNP0C02:00/status 3
/sys/bus/acpi/devices/PNP0C02:05/status 3
/sys/bus/acpi/devices/PNP0C09:00/status 15
/sys/bus/acpi/devices/PNP0C0A:00/status 31
/sys/bus/acpi/devices/PNP0C0C:00/status 15
/sys/bus/acpi/devices/PNP0C0D:00/status 15
/sys/bus/acpi/devices/PNP0C0F:00/status 9
/sys/bus/acpi/devices/PNP0C0F:01/status 9
/sys/bus/acpi/devices/PNP0C0F:02/status 9
/sys/bus/acpi/devices/PNP0C0F:03/status 9
/sys/bus/acpi/devices/PNP0C0F:04/status 9
/sys/bus/acpi/devices/PNP0C0F:05/status 9
/sys/bus/acpi/devices/PNP0C0F:06/status 9
/sys/bus/acpi/devices/PNP0C0F:07/status 9
/sys/bus/acpi/devices/SYNA2B31:00/status 15
/sys/bus/acpi/devices/USBC000:00/status 15
/sys/bus/acpi/devices/VPC2004:00/status 15
/sys/bus/acpi/devices/WCOM5195:00/status 15
/sys/bus/acpi/devices/YMC2017:00/status 15
/sys/bus/acpi/devices/device:17/status 15
/sys/bus/acpi/devices/device:20/status 15
/sys/bus/acpi/devices/device:32/status 15


!!Kernel Information
!!------------------

Kernel release: 5.8.6-1-MANJARO
Operating System: GNU/Linux
Architecture: x86_64
Processor: unknown
SMP Enabled: Yes


!!ALSA Version
!!------------

Driver version: k5.8.6-1-MANJARO
Library version: 1.2.3.2
Utilities version: 1.2.3


!!Loaded ALSA modules
!!-------------------



!!Sound Servers on this system
!!----------------------------

Pulseaudio:
Installed - Yes (/usr/bin/pulseaudio)
Running - No

Jack:
Installed - Yes (/usr/bin/jackd)
Running - No


!!Soundcards recognised by ALSA
!!-----------------------------

--- no soundcards ---


!!PCI Soundcards installed in the system
!!--------------------------------------

00:1f.3 Multimedia audio controller [0401]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d71] (rev 21)
Subsystem: Lenovo Device [17aa:3831]


!!Loaded sound module options
!!---------------------------


!!ALSA Device nodes
!!-----------------

crw-rw----+ 1 root audio 116, 1 Sep 14 15:14 /dev/snd/seq
crw-rw----+ 1 root audio 116, 33 Sep 14 15:14 /dev/snd/timer


!!Aplay/Arecord output
!!--------------------

APLAY

aplay: device_list:274: no soundcards found...

ARECORD

arecord: device_list:274: no soundcards found...

!!Amixer output
!!-------------


!!Alsactl output
!!--------------

--startcollapse--
--endcollapse--


!!All Loaded Modules
!!------------------

8250_dw
ac
acpi_thermal_rel
aesni_intel
af_alg
agpgart
algif_hash
algif_skcipher
atkbd
battery
bluetooth
bnep
btbcm
btintel
btrtl
btusb
ccm
cec
cfg80211
cmac
coretemp
crc16
crc32_pclmul
crc32c_generic
crc32c_intel
crct10dif_pclmul
cryptd
crypto_simd
crypto_user
drm
drm_kms_helper
ecc
ecdh_generic
evdev
ext4
fat
fb_sys_fops
fuse
ghash_clmulni_intel
glue_helper
hid
hid_generic
hid_multitouch
hid_sensor_accel_3d
hid_sensor_als
hid_sensor_hub
hid_sensor_iio_common
hid_sensor_trigger
i2c_algo_bit
i2c_hid
i2c_i801
i2c_smbus
i8042
i915
iTCO_vendor_support
iTCO_wdt
ideapad_laptop
idma64
industrialio
industrialio_triggered_buffer
input_leds
int3400_thermal
int3403_thermal
int340x_thermal_zone
intel_cstate
intel_gtt
intel_lpss
intel_lpss_pci
intel_pch_thermal
intel_pmc_bxt
intel_powerclamp
intel_rapl_common
intel_rapl_msr
intel_soc_dts_iosf
intel_uncore
intel_wmi_thunderbolt
intel_xhci_usb_role_switch
ip_tables
irqbypass
iwlmvm
iwlwifi
jbd2
joydev
kfifo_buf
kvm
kvm_intel
libarc4
libps2
loop
mac80211
mac_hid
mbcache
mc
mei
mei_hdcp
mei_me
mousedev
nls_cp437
nls_iso8859_1
pcspkr
processor_thermal_device
rapl
rc_core
rfcomm
rfkill
rng_core
roles
serio
serio_raw
sg
snd
snd_hrtimer
snd_seq
snd_seq_device
snd_seq_dummy
snd_timer
soundcore
sparse_keymap
squashfs
syscopyarea
sysfillrect
sysimgblt
tpm
tpm_crb
tpm_tis
tpm_tis_core
typec
typec_ucsi
ucsi_acpi
uinput
usbhid
uvcvideo
vfat
videobuf2_common
videobuf2_memops
videobuf2_v4l2
videobuf2_vmalloc
videodev
wacom
wmi
wmi_bmof
x86_pkg_temp_thermal
x_tables
xhci_hcd
xhci_pci
xhci_pci_renesas


!!ALSA/HDA dmesg
!!--------------

[ 0.141923] ACPI: Added _OSI(Linux-Dell-Video)
[ 0.141923] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[ 0.141923] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)

And the pulseaudio configuration.

Anyway, please run sudo dmesg | grep snd

sudo dmesg | grep snd is empty. Ran alsa-info.sh, that info is here: pastebin.com/jLyzkCPb

What about sudo dmesg | grep sof ?

Actually, I don’t think the Arch wiki applies here. The C940 and C930 seem to have different audio controllers.

Can you run

sudo modprobe snd_hda_intel && sleep 3 && sudo dmesg | grep -i 'snd' && sleep 3 && sudo rmmod snd_hda_intel

then

sudo modprobe snd_soc_skl && sleep 3 && sudo dmesg | grep -i 'soc' && sleep 3 && sudo rmmod snd_soc_skl

?

Yoga C940 laptops have a 10th gen Intel CPU and Cannon Lake audio which should have support for the internal digital microphone array from sof-firmware

But Yoga C930 has an 8th generation Kaby Lake CPU, which is not likely to have support for internal digital microphone from sof-firmware for some time yet
thesofproject/sof · GitHub - Kaby Lake support · Issue #1899
The only option possible at the moment is to force use of the ‘legacy’ snd_hda_intel driver so most of the onboard audio will work without the internal microphone

the modprobe option to blacklist snd_hda_intel should be replaced with this:

options snd-intel-dspcfg dsp_driver=1

This github page has a workaround solution for the speakers
GitHub - droserasprout/lenovo-yoga-c930-linux: Varions fixes to provide full hardware support of Lenovo Yoga C930 on Linux

If any better solutions are found they are likely to be posted on the github page or the sofproject bug report first

Got it. Thank you guys for your help.

1 Like