You are not logged in.

#26 2019-12-02 16:05:54

dpward
Member
Registered: 2019-11-28
Posts: 4

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

daaku wrote:

dpward, using the linux 5.4.1-arch1 package from testing and the new sof-firmware I finally see the input device. I've made none of the modifications described on this thread, besides installing these two packages. But while the device shows up, it doesn't seem to work (I've tried arecord as well as using it in Chrome via pulseaudio). Here's some debug information that might be useful:

# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: sofsklhdacard [sof-skl_hda_card], device 0: HDA Analog (*) []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: sofsklhdacard [sof-skl_hda_card], device 1: HDA Digital (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsklhdacard [sof-skl_hda_card], device 6: DMIC32 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofsklhdacard [sof-skl_hda_card], device 7: DMIC16 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Finally hoping for a out-of-the-box experience that works!

Does the workaround in this comment help?
Do you have alsa 1.2.1.2 installed (which includes those changes)?

Last edited by dpward (2019-12-02 16:13:24)

Offline

#27 2019-12-02 16:22:50

daaku
Member
Registered: 2019-12-01
Posts: 4

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

Kubuxu, I followed the Install SOF topology step, but saw no changes.

dpward, I don't understand what the workaround is asking to change in /usr/share/alsa/ucm2/sof-hda-dsp/HiFi.conf. The my microphone seems to be detected, however, sound recorded by it, is just a noise described in that bug is exactly what I see (seems right since I'm using the same device as the person who left that comment, X1 Carbon 7th Gen).

Offline

#28 2019-12-02 16:26:57

daaku
Member
Registered: 2019-12-01
Posts: 4

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

dpward wrote:

Do you have alsa 1.2.1.2 installed (which includes those changes)?

Yes I think so, I'm fully updated + linux 5.4.1.arch1-1 from testing:

# pacman -Q|grep alsa
alsa-lib 1.2.1.2-2
alsa-topology-conf 1.2.1-1
alsa-ucm-conf 1.2.1.2-1
alsa-utils 1.2.1-1
zita-alsa-pcmi 0.3.2-2

Offline

#29 2019-12-02 19:14:13

dpward
Member
Registered: 2019-11-28
Posts: 4

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

gilroy wrote:

fresh install of linux 5.3.13-arch1-1 this morning and experiencing the same issues Mocco had

The SOF drivers are disabled in that version. Please install linux 5.4.1-arch1 from the testing repository, and then also install the sof-firmware package.

I am curious if this works, or if you encounter the same issue as daaku. It might be an upstream bug which should be reported here.

Offline

#30 2019-12-02 19:41:09

juphu2Va
Member
Registered: 2019-05-16
Posts: 15

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

X1Yoga (2019) owner here (hardware VERY similar to X1 G7)

I built linux 5.4.1-arch1 and installed the outdated version 1.3.1 of the sof-firmware package. Recording or playing back didn't work with audacity, but testing the speakers using the tool provided by kde worked (the first half second or so was too quiet). I didn't test the microphone with another program.

EDIT: microphone doesn't seem to work with arecord. Also the speakers are now (with linux 5.4.1) only stereo. Before they were I think 4.0

EDIT2: When building the sof-firmware package with the "testing" src available from their ftp repo, it fails to load with

[   17.644053] sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
[   17.644059] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040380
[   17.644180] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
[   17.644343] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[   17.654390] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
[   17.654392] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[   17.698739] sof-audio-pci 0000:00:1f.3: unexpected ipc interrupt raised!
[   17.698741] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
[   20.766462] sof-audio-pci 0000:00:1f.3: error: load fw failed ret: -110
[   20.766497] sof-audio-pci 0000:00:1f.3: error: status = 0x0000002c panic = 0x00000000
[   20.766505] sof-audio-pci 0000:00:1f.3: error: failed to reset DSP
[   20.766507] sof-audio-pci 0000:00:1f.3: error: failed to boot DSP firmware -110
[   20.766510] sof-audio-pci 0000:00:1f.3: error: sof_probe_work failed err: -110

EDIT3: This https://github.com/thesofproject/sof/issues/2134 might be relevant, even if for other hardware.

EDIT4: Sound doesn't work in firefox, but in VLC. EDIT5: Nevermind, application specific volume was set down to 0.

Last edited by juphu2Va (2019-12-03 19:49:21)

Offline

#31 2019-12-12 20:45:24

orychalk
Member
Registered: 2019-12-12
Posts: 1

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

Hello,

Just to say that work too for my HP x360 1030 G4 smile

Many THANKS smile

Offline

#32 2019-12-12 23:37:36

darose
Member
Registered: 2004-04-13
Posts: 135

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

orychalk wrote:

Hello,

Just to say that work too for my HP x360 1030 G4 smile

Many THANKS smile

I have same model as you, but not (quite) working.  Speakers work, microphone shows up, but mike doesn't record.

What configuration do you have running that you were able to get it to work?

I'm running with the following configuration:
* linux 5.4.1.arch1-1
* sof-firmware 1.3.1-1
* cd /usr/lib/firmware/intel/sof-tplg && ln -s sof-hda-generic-4ch.tplg sof-hda-generic.tplg

Any suggestions what else I might need to do to get this work?

Thanks,

DR

Offline

#33 2019-12-13 21:23:47

Alexander1705
Member
Registered: 2016-11-18
Posts: 2

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

So, I tried to install linux-mainline (5.5rc1-1) kernel with sof-firmware (1.3.1-1).

The mic is finally detected! It even seems to record stereo, but the quality is terrible, it is hardly possible to understand speech.
Any ideas, how to improve that?

Offline

#34 2019-12-16 20:46:32

amada
Member
Registered: 2019-12-15
Posts: 1

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

I don't see why you couldn't try the newer 1.4.1 release, which includes new topology files as well. 1.4.1 by the way works on my end except for mic playback, although I am using an old 5.3 kernel. It's frustrating because while the mic worked with 1.3 (and with no distortion), JACK server doesn't work. I'm considering upgrading to 5.4 pf and seeing if that will help matters.

edit: after I had cleared out the sof folder and uploaded the topology from the newest release (with the symlink from the 4ch to the main generic .tplg file), and copied the signed .ri file to the correct place, I've got both speakers and mic + line in working. Unfortunately JACK still wont start (saying it cannot initialize the audio driver). Can anyone test JACK on their end to see if they have the same behaviour?

Last edited by amada (2019-12-17 03:29:29)

Offline

#35 2019-12-18 21:09:32

darose
Member
Registered: 2004-04-13
Posts: 135

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

darose wrote:

I have same model as you, but not (quite) working.  Speakers work, microphone shows up, but mike doesn't record.

What configuration do you have running that you were able to get it to work?

I'm running with the following configuration:
* linux 5.4.1.arch1-1
* sof-firmware 1.3.1-1
* cd /usr/lib/firmware/intel/sof-tplg && ln -s sof-hda-generic-4ch.tplg sof-hda-generic.tplg

Looks like I *finally* got this working!  (On my HP EliteBook x360 1030 G4)

Last piece of the puzzle apparently was that my microphone is hardware device 0,6, rather than 0,7 like most other people have posted.

So for the record, this is the configuration that works for me:
* linux 5.4.1.arch1-1
* sof-firmware 1.3.1-1
* cd /usr/lib/firmware/intel/sof-tplg && ln -s sof-hda-generic-4ch.tplg sof-hda-generic.tplg
* echo "load-module module-alsa-source device=hw:0,6" >> /etc/pulse/default.pa

Looking forward to removing some of these hacks once kernel 5.5 comes out.

Offline

#36 2019-12-19 17:57:20

darose
Member
Registered: 2004-04-13
Posts: 135

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

Hmmm ... looks like I spoke too soon.  The microphone works ... in that it picks up sound.  However, volume is very low, and speech sounds like it's in slow machine.  Looks like I've got more debugging to do.  :-(

Offline

#37 2019-12-19 18:40:56

darose
Member
Registered: 2004-04-13
Posts: 135

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

This really is a huge nuisance!!!

Offline

#38 2019-12-24 16:13:02

JayDoe
Member
Registered: 2014-09-20
Posts: 23

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

Did anyone experience problems with switching to headphones, and may this workaround also solve that issue?

In my case, if I connect my headphones to the audio out, Alsa/Pulse/Gnome is not switching to the headphones and also is not detecting them.

Offline

#39 2019-12-24 22:51:47

darose
Member
Registered: 2004-04-13
Posts: 135

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

darose wrote:

Hmmm ... looks like I spoke too soon.  The microphone works ... in that it picks up sound.  However, volume is very low, and speech sounds like it's in slow motion.  Looks like I've got more debugging to do.  :-(

OK, I think I've *finally* got this working.  Final issue was forcing pulse to use 4 channels for recording.  (That was why it was recording everything at half speed.)

Final configuration:

* linux 5.4.2.arch1-1
* sof-firmware 1.3.1-1
* cd /usr/lib/firmware/intel/sof-tplg && ln -s sof-hda-generic-4ch.tplg sof-hda-generic.tplg
* echo "load-module module-alsa-source device=hw:0,6 channels=4" >> /etc/pulse/default.pa

Last edited by darose (2019-12-24 22:52:02)

Offline

#40 2019-12-25 00:11:18

Alexander1705
Member
Registered: 2016-11-18
Posts: 2

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

I can't manage to get mic detected with 'linux' kernel, but got it detected with 'linux-mainline' 5.5.0.

* linux-mainline 5.5rc2
* sof-firmware 1.3.1-1
* cd /usr/lib/firmware/intel/sof-tplg && ln -s sof-hda-generic-4ch.tplg sof-hda-generic.tplg
* echo "load-module module-alsa-source device=hw:sofhdadsp,6 channels=4" >> /etc/pulse/default.pa

Sound in applications is still slow, but I was experimenting with arecord and could get a perfectly fine record using the next options:
arecord -d 5 -c 4 -r 48000 -D hw:sofhdadsp,6 -f S32_LE /tmp/voice.wav

The '-f S32_LE' flag is what made the difference.

Is there any way to make this configuration default for all applications?

Offline

#41 2020-01-05 22:31:09

farzad_bah1276
Member
From: Germany
Registered: 2020-01-05
Posts: 1

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

darose wrote:
darose wrote:

Hmmm ... looks like I spoke too soon.  The microphone works ... in that it picks up sound.  However, volume is very low, and speech sounds like it's in slow motion.  Looks like I've got more debugging to do.  :-(

OK, I think I've *finally* got this working.  Final issue was forcing pulse to use 4 channels for recording.  (That was why it was recording everything at half speed.)

Final configuration:

* linux 5.4.2.arch1-1
* sof-firmware 1.3.1-1
* cd /usr/lib/firmware/intel/sof-tplg && ln -s sof-hda-generic-4ch.tplg sof-hda-generic.tplg
* echo "load-module module-alsa-source device=hw:0,6 channels=4" >> /etc/pulse/default.pa

Thanks for the discussion. Worked nicely on fedora 31.

* linux 5.4.7
* sof-firmware : couldn't actually figure out! worked out of the box
* mv /usr/lib/firmware/intel/sof-tplg/sof-hda-generic.tplg /usr/lib/firmware/intel/sof-tplg/sof-hda-generic.tplg_bak
* cd /usr/lib/firmware/intel/sof-tplg && ln -s sof-hda-generic-4ch.tplg sof-hda-generic.tplg
* echo "load-module module-alsa-source device=hw:0,7 channels=4" >> /etc/pulse/default.pa

Last edited by farzad_bah1276 (2020-01-06 07:02:44)

Offline

#42 2020-01-06 00:24:29

darose
Member
Registered: 2004-04-13
Posts: 135

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

IIUC, this won't work with linux 5.4.7 on Arch, though, because Arch has SOF disabled in the kernel after 5.4.2 (until 5.5).

Offline

#43 2020-01-12 16:42:59

Kubuxu
Member
Registered: 2019-11-17
Posts: 8

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

darose wrote:

IIUC, this won't work with linux 5.4.7 on Arch, though, because Arch has SOF disabled in the kernel after 5.4.2 (until 5.5).

I'm running 5.4.8-arch1-1 and my mic is working.

Offline

#44 2020-01-12 18:54:03

darose
Member
Registered: 2004-04-13
Posts: 135

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

Kubuxu wrote:

I'm running 5.4.8-arch1-1 and my mic is working.

Really?  Would you mind posting your configuration?  (Like I did in https://bbs.archlinux.org/viewtopic.php … #p1879313)

Offline

#45 2020-01-15 12:46:25

moreka
Member
Registered: 2020-01-15
Posts: 1

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

On 5.4.11-arch1-1 kernel, the SOF is loaded as seen below:

# zcat /proc/config.gz | grep SOF | grep SND

gives

CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SOF_PCI=m
CONFIG_SND_SOC_SOF_ACPI=m
CONFIG_SND_SOC_SOF_OF=m
CONFIG_SND_SOC_SOF_OPTIONS=m
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
# CONFIG_SND_SOC_SOF_DEBUG is not set
CONFIG_SND_SOC_SOF=m
CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
CONFIG_SND_SOC_SOF_INTEL_ACPI=m
CONFIG_SND_SOC_SOF_INTEL_PCI=m
CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
CONFIG_SND_SOC_SOF_INTEL_COMMON=m
# CONFIG_SND_SOC_SOF_BAYTRAIL_SUPPORT is not set
# CONFIG_SND_SOC_SOF_BROADWELL_SUPPORT is not set
CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
CONFIG_SND_SOC_SOF_MERRIFIELD=m
CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_APOLLOLAKE=m
CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_GEMINILAKE=m
CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_CANNONLAKE=m
CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_COFFEELAKE=m
CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_ICELAKE=m
CONFIG_SND_SOC_SOF_COMETLAKE_LP=m
CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
CONFIG_SND_SOC_SOF_COMETLAKE_H=m
CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_TIGERLAKE=m
CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
CONFIG_SND_SOC_SOF_HDA_COMMON=m
CONFIG_SND_SOC_SOF_HDA_LINK=y
CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
CONFIG_SND_SOC_SOF_HDA=m
CONFIG_SND_SOC_SOF_XTENSA=m

However, I cannot set up the mic as the DSP gets paniced...

Offline

#46 2020-01-15 15:18:45

darose
Member
Registered: 2004-04-13
Posts: 135

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

I think DMIC detect is still disabled in that kernel.  It looks like it only got enabled in 5.4.1 and 5.4.2

Offline

#47 2020-01-15 23:59:51

Kubuxu
Member
Registered: 2019-11-17
Posts: 8

Re: [SOLVED] Fix for microphone on Lenovo X1 Gen 7

At this point I'm not sure which topology file I'm running.
I think it is the one from first post in this thread, as sof-hda-generic.tplg or sof-hda-generic-4ch.tplg (both are replaced by the same file on my system).
sha256 of the file: 4733d52a2203a4a4861cbeb431661d681a9d89250d20710f7723cb4f28821480
I'm getting occasional DSP panic (about once a day) but otherwise it works.
I have also following modules on my blacklist:

blacklist snd_hda_intel
blacklist snd_soc_skl

EDIT: it stopped working after updating to 5.4.11.arch1-1, getting DSP panic right away.
EDIT2: Works after downgrading to 5.4.10.arch1-1

Last edited by Kubuxu (2020-01-16 00:04:58)

Offline

Board footer

Powered by FluxBB