thesofproject / linux

Linux kernel source tree
Other
91 stars 133 forks source link

How do I install SOF under Ubuntu 18.04 LTS? #1877

Closed katsar0v closed 4 years ago

katsar0v commented 4 years ago

This not a bug, but rather a feature request (maybe for docs). I have Dell Inspiron 7590 which has no microphone working when a fresh Ubuntu is installed (the 3.5mm jack does not work as well). ArchLinux -https://wiki.archlinux.org/index.php/Dell_Inspiron_15_(7590) says it works with the newest sof firmware, but how do I install it under Ubuntu? I hope not every new Dell user has to clone this repo and clone it in order to get the mic working, but it would be much easier to install it via ppa or a .deb file. Thanks in advance, in case somebody decides to help me out here!

plbossart commented 4 years ago

@katsar0v I assume you meant you have Ubuntu 19.10 with its v5.3 kernel, yes?

In that case you should only need firmware and topology files. If I am correct, would you be willing to test some of our install procedures, we are still in need of downstream beta testers.

Thanks!

katsar0v commented 4 years ago

@plbossart I rolled back to Ubuntu 18.04 LTS but have 5.3.0-40-generic (from uname -r)

I tried building from scratch - https://thesofproject.github.io/latest/getting_started/build-guide/build-from-scratch.html but it is really complicated and I would like something more simpler.

As for beta testers - I can do this, as long as I don't have to re-install my whole Ubuntu on a daily basis, it is fine for me

I have also read that the kernels from 5.2+ also support SOF, but am not sure what that means. (link)

plbossart commented 4 years ago

ok, let's try to help, one step at a time.

Step1: make sure the SOF driver is selected:

with 5.3, you need to do this:

gedit /etc/modprobe.d/alsa-base.conf

add blacklist snd-hda-intel blacklist snd-soc-skl

reboot and share the alsa-info.sh link

katsar0v commented 4 years ago

Here you go: http://alsa-project.org/db/?f=6112e1ee9ab2014a99f3cc1c4a726575ad104943

I see this now (which I did not before):

image

Edit: I also see this in pavucontrol:

image

(seems like a white noise, but when I tap on the laptop, it goes up, so the mic kind of works, but does not react on my voice)

plbossart commented 4 years ago

ok, so the driver is already loaded and the card created.

IIRC with older solutions based on the 1.3 firmware we had a very low gain for the dmic, and it was barely usable. can you play with alsamixer and boot the gains for PGA10.0 and PGA11.0 by 20dB?

https://github.com/thesofproject/sof/issues/1675#issuecomment-519915444

katsar0v commented 4 years ago

image

This is what my alsamixer shows. When I visit a voice recorder online, it records the taps on my laptop.

Edit: 3.5mm headphones work now, just mic does not

Edit 2: choosing "Stereo Output + Multichannel Input" allows Chrome to record sound. Choosing "Stereo Output + Stereo Input" gives me no microphone error in Chrome and other apps.

I also noticed that when I set "headset mic boost" to the max I can record the taps on the laptop, otherwise mic is silent: image

plbossart commented 4 years ago

@katsar0v F4 to select capture and scroll right until you see PGA10.0 and PGA11.0, then boost them to the max

katsar0v commented 4 years ago

image

this is what I could see, the 4 columns on the right were on 50%

Edit: the bar here increases, but it is all white noise I think:

image

Edit 2: here is a gif demo (no voice activity, just white noise from fan I think):

demo

Edit 3: here is a pavucontrol demo:

demo2

Edit 4: here is a video, that records when I tap on the laptop in multichannel duplex mode:

https://drive.google.com/file/d/1HTkASAtn39g3WHj38-Wiou1Mlk5aViVC/view?usp=sharing

plbossart commented 4 years ago

forget PulseAudio, can you test with

arecord -Dhw:0,6 -c2 -r48000 -f S32_LE -d 10 mytest.wav

if this doesn't work try with -c4 and S24_LE, I don't recall the options

and input this into audacity

katsar0v commented 4 years ago

forget PulseAudio, can you test with

arecord -Dhw:0,6 -c2 -r48000 -f S32_LE -d 10 mytest.wav

if this doesn't work try with -c4 and S24_LE, I don't recall the options

and input this into audacity

Damn this worked! mytest.wav recorded my voice. Should I upload the file? I am not sure what to do with it in audacity

plbossart commented 4 years ago

forget PulseAudio, can you test with arecord -Dhw:0,6 -c2 -r48000 -f S32_LE -d 10 mytest.wav if this doesn't work try with -c4 and S24_LE, I don't recall the options and input this into audacity

Damn this worked! mytest.wav recorded my voice. Should I upload the file? I am not sure what to do with it in audacity

I meant look at the waveform, but if you can hear your voice then that's fine.

So what I think is happening is that your UCM file is wrong.

That should be in /usr/share/alsa/ucm/sof-hda something.

Can you attach the HiFi.conf it here?

katsar0v commented 4 years ago

forget PulseAudio, can you test with arecord -Dhw:0,6 -c2 -r48000 -f S32_LE -d 10 mytest.wav if this doesn't work try with -c4 and S24_LE, I don't recall the options and input this into audacity

Damn this worked! mytest.wav recorded my voice. Should I upload the file? I am not sure what to do with it in audacity

I meant look at the waveform, but if you can hear your voice then that's fine.

So what I think is happening is that your UCM file is wrong.

That should be in /usr/share/alsa/ucm/sof-hda something.

Can you attach the HiFi.conf it here?

The quality from the .wav is really good, I don't think audacity is needed. Here is a screenshot as I could not find sof-hda something:

image

Edit thesofproject/sof#2: just so that you know where I have HiFi.conf (no idea what this file is):

image

plbossart commented 4 years ago

ok, so you don't have a UCM file, that explains why things are broken.

I will have to include @juimonen on this one. Jaska, do you know where we can find a UCM file with hdaudio + mic support that would work with the 5.3 kernel, 1.3 firmware and Ubuntu 18.04 LTS?

@katsar0v please be patient until Monday, it's the week-end already in most parts of the world :-)

katsar0v commented 4 years ago

@plbossart thanks so much for the help! There is hope for my mic and I could hear my voice (in a super good quality)

Just guessing - https://github.com/plbossart/UCM/tree/master/skl_hda_card this has the same name as my card from here:

image

plbossart commented 4 years ago

if you want to experiment before Monday, I took the last UCM file I could find

alsa-ucm-conf$ git checkout 3a2d80ecb74ee4cd02449873ece0407c7da0da4e

sof-hda-dsp.tar.gz

copy this to /usr/share/alsa/ucm and reboot, you should see the dmics. There might be a dependency on alsa-lib though

plbossart commented 4 years ago

@plbossart thanks so much for the help! There is hope for my mic and I could hear my voice (in a super good quality)

Intel makes good products :-)

Just guessing - https://github.com/plbossart/UCM/tree/master/skl_hda_card this has the same name as my card from here:

don't use this, I no longer maintain it.

katsar0v commented 4 years ago

image

image

Nothing changed after reboot. Do you think I should install alsa-lib ?

plbossart commented 4 years ago

@katsar0v we'd need to see the pulseaudio logs then.

The best would be to edit /etc/pulse/client.conf (or daemon.conf), then set autospawm = no

then reboot, open a terminal, and kill all pulse audio instances, if any

then run pulseaudio -vvv &> log.txt, and attach the log.txt. That should tell us what's wrong in the UCM file.

katsar0v commented 4 years ago

image

Here you go:

log.txt

This looks interesting:


I: [pulseaudio] (alsa-lib)utils.c: could not open configuration file /usr/share/alsa/ucm/DellInc.-Inspiron7590--0JKGD4/DellInc.-Inspiron7590--0JKGD4.conf
I: [pulseaudio] (alsa-lib)parser.c: error: could not parse configuration for card DellInc.-Inspiron7590--0JKGD4
I: [pulseaudio] (alsa-lib)utils.c: could not open configuration file /usr/share/alsa/ucm/sof-skl_hda_card/sof-skl_hda_card.conf
I: [pulseaudio] (alsa-lib)parser.c: error: could not parse configuration for card sof-skl_hda_card
I: [pulseaudio] (alsa-lib)main.c: error: failed to import sof-skl_hda_card use case configuration -2
I: [pulseaudio] alsa-ucm.c: UCM not available for card sof-skl_hda_card
D: [pulseaudio] conf-parser.c: Parsing configuration file '/usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf'
plbossart commented 4 years ago

I: [pulseaudio] (alsa-lib)utils.c: could not open configuration file /usr/share/alsa/ucm/DellInc.-Inspiron7590--0JKGD4/DellInc.-Inspiron7590--0JKGD4.conf I: [pulseaudio] (alsa-lib)parser.c: error: could not parse configuration for card DellInc.-Inspiron7590--0JKGD4

this is fine, not a real error since there's a fallback

I: [pulseaudio] (alsa-lib)utils.c: could not open configuration file /usr/share/alsa/ucm/sof-skl_hda_card/sof-skl_hda_card.conf I: [pulseaudio] (alsa-lib)parser.c: error: could not parse configuration for card sof-skl_hda_card I: [pulseaudio] (alsa-lib)main.c: error: failed to import sof-skl_hda_card use case configuration -2 I: [pulseaudio] alsa-ucm.c: UCM not available for card sof-skl_hda_card D: [pulseaudio] conf-parser.c: Parsing configuration file '/usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf'

ok so this is likely because there's a name mismatch. I know there were changes in the _ and - used for the card name, so you probably need to match the name of the card with the name of the UCM file.

That's just silly I know :-)

Make sure all files match the card name

katsar0v commented 4 years ago

This is what I see after changing the files:

image image

Log.txt - https://file.io/v2XXbM / https://justpaste.it/1q08a

Interesting:

I: [pulseaudio] alsa-ucm.c: UCM available for card sof-skl_hda_card
I: [pulseaudio] alsa-ucm.c: Set UCM verb to HiFi
I: [pulseaudio] (alsa-lib)main.c: unable to open ctl device 'hw:sofhdadsp'
I: [pulseaudio] (alsa-lib)main.c: error: failed to initialize new use case: HiFi
E: [pulseaudio] alsa-ucm.c: Failed to get the verb HiFi
I: [pulseaudio] alsa-ucm.c: Set UCM verb to Hdmi
D: [pulseaudio] alsa-ucm.c: Got PlaybackPCM for device HDMI3: hw:sofhdadsp,5
D: [pulseaudio] alsa-ucm.c: Got PlaybackChannels for device HDMI3: 2
D: [pulseaudio] alsa-ucm.c: Got JackControl for device HDMI3: HDMI/DP,pcm=5 Jack
D: [pulseaudio] alsa-ucm.c: No _conflictingdevs for device HDMI3
D: [pulseaudio] alsa-ucm.c: No _supporteddevs for device HDMI3
D: [pulseaudio] alsa-ucm.c: Got PlaybackPCM for device HDMI2: hw:sofhdadsp,4
D: [pulseaudio] alsa-ucm.c: Got PlaybackChannels for device HDMI2: 2
D: [pulseaudio] alsa-ucm.c: Got JackControl for device HDMI2: HDMI/DP,pcm=4 Jack
D: [pulseaudio] alsa-ucm.c: No _conflictingdevs for device HDMI2
D: [pulseaudio] alsa-ucm.c: No _supporteddevs for device HDMI2
D: [pulseaudio] alsa-ucm.c: Got PlaybackPCM for device HDMI1: hw:sofhdadsp,3
D: [pulseaudio] alsa-ucm.c: Got PlaybackChannels for device HDMI1: 2
D: [pulseaudio] alsa-ucm.c: Got JackControl for device HDMI1: HDMI/DP,pcm=3 Jack
D: [pulseaudio] alsa-ucm.c: No _conflictingdevs for device HDMI1
D: [pulseaudio] alsa-ucm.c: No _supporteddevs for device HDMI1
I: [pulseaudio] module-alsa-card.c: Found UCM profiles
plbossart commented 4 years ago

ok let's see on Monday what @juimonen thinks. Have a nice week-end.

juimonen commented 4 years ago

@katsar0v, we should have some working ucm for 18 LTS ubuntu's here: https://github.com/thesofproject/alsa-ucm-conf/tree/sof_ucm1

It should at least get the ucm loaded, if you could try that, let's see after that what happens :)

Your Pulseaudio will use software volumes, which should work (I think). If you want hw volumes and possible mute leds blinking you need to update pulseaudio and sof topology, but that's another story then.

katsar0v commented 4 years ago

@juimonen I can see the input now (and it reacts on my voice):

image

Recording voice works in firefox:

image

Edit: my laptops fan tends to be noisy, and the mic catches the fan's noise, is there a way to somehow filter it out? If I decrease mic's volume it is okay, but I have to scream, so the mic can hear me.

Edit 2: nevermind, the mic is on the display and I have to open the lid to isolate fan noise

So I think we solved this! For some reason it does not work with Chrome, but I will inspect this. Many many many thanks! I assume SOF was already installed on Ubuntu, but not configured for my sound card, is this correct? I created the issue thinking that I dont have SOF at all, but correct me if I am wrong. I tried building it from scratch a couple of time before, but with no success.

Edit: had to do this - https://askubuntu.com/a/668329/590118 and run pulseaudio -k after reboot, afterwards the mic was working on all apps. Thank you again!

plbossart commented 4 years ago

Summary of the required changes:

  1. update the kernel to v5.3

  2. edit /etc/modprobe.d/alsa-base.conf to add

blacklist snd-hda-intel blacklist snd-soc-skl

  1. fetch https://github.com/thesofproject/alsa-ucm-conf/tree/sof_ucm1/ucm/sof-skl_hda_card and copy the directory to /usr/share/alsa/ucm
katsar0v commented 4 years ago

@plbossart correct, 0. is done via just sudo apt update && sudo apt upgrade. 1. and 2. were somehow unclear (or undocumented) for me. I also wasn't aware if sof was properly (or at all) installed. Let me know if I can help you further here.

giorgionicoletti commented 4 years ago

This solution worked wonderfully until yesterday on my Dell Inspiron 7590, Ubuntu 18.04 LTS and kernel v5.3.0-42. Today, on startup the sound stopped working altogether and Ubuntu was not detecting any soundcard (I could only see "Dummy output" in the settings). I don't recall doing anything particularly nor updating anything. I couldn't even open alsamixer (with error "cannot open mixer").

I had to remove the blacklist from /etc/modprobe.d/alsa-base.conf and add the option snd-hda-intel dmic_detect=0. Now I have the sound back but the internal microphone is not detected again (it is shown as unplugged in pavucontrol and no input is present in the settings). So it's back to square one.

If I blacklist snd-hda-intel and snd-soc-skl and run lspci -nnk | grep -A2 audio the kernel driver in use is sof-audio-pci, but I get only the dummy output, no sound nor mic and pavucontrol/Consiguration returns "no cards available for configuration".

I'm far from being an expert, so any help would be greatly appreciated. Thanks.

kv2019i commented 4 years ago

@giorgionicoletti wrote:

I don't recall doing anything particularly nor updating anything. I couldn't even open alsamixer (with error "cannot open mixer").

That hints at a problem in driver probe. Can you share output of alsa-info.sh (instructions https://wiki.ubuntu.com/Audio/AlsaInfo) when the problem happens?

giorgionicoletti commented 4 years ago

@kv2019i Sure, there you go: http://alsa-project.org/db/?f=b72bcfd31ec3695aa4bf23f28edc7408975f397a. This is the output I get when I add the two blacklist lines to alsa-base.conf and sounds stop working.

katsar0v commented 4 years ago

This solution worked wonderfully until yesterday on my Dell Inspiron 7590, Ubuntu 18.04 LTS and kernel v5.3.0-42. Today, on startup the sound stopped working altogether and Ubuntu was not detecting any soundcard (I could only see "Dummy output" in the settings). I don't recall doing anything particularly nor updating anything. I couldn't even open alsamixer (with error "cannot open mixer").

I had to remove the blacklist from /etc/modprobe.d/alsa-base.conf and add the option snd-hda-intel dmic_detect=0. Now I have the sound back but the internal microphone is not detected again (it is shown as unplugged in pavucontrol and no input is present in the settings). So it's back to square one.

If I blacklist snd-hda-intel and snd-soc-skl and run lspci -nnk | grep -A2 audio the kernel driver in use is sof-audio-pci, but I get only the dummy output, no sound nor mic and pavucontrol/Consiguration returns "no cards available for configuration".

I'm far from being an expert, so any help would be greatly appreciated. Thanks.

I also see "dummy output" from times to times, but a reboot usually fixes it. Am using 5.3.0-40-generic though

giorgionicoletti commented 4 years ago

I also see "dummy output" from times to times, but a reboot usually fixes it. Am using 5.3.0-40-generic though

Nope, unfortunately a reboot does not fix it. I think that I had 5.3.0-42-generic all along though (I tried this solution no later than six days ago), so I can't really get my head around to what happened.

Jeff406 commented 4 years ago

I have this laptop too, tried many times all the fixes available in arch linux (manjaro) with the latest kernel but no hope. The internal microphone is working unstably and all the issues are still not fixed as mentioned in https://bugzilla.redhat.com/show_bug.cgi?id=1772498#c209 (view other comments). I think we'll have to wait for the update of sof-firmware and related ucm stuffs.

kv2019i commented 4 years ago

@giorgionicoletti wrote:

@kv2019i Sure, there you go: http://alsa-project.org/db/?f=b72bcfd31ec3695aa4bf23f28edc7408975f397a.

Aa, ok. So this is something else, there's actually kernel error hit when registering the card:

RIP: 0010:skl_hda_hdmi_jack_init 0x3f/0x110 [snd_soc_skl_hda_dsp]

Could you post full dmesg and your kernel config (.config or config file in /boot your distro has shipped)? The oops is on a code path related to the hdac-hdmi driver. We switched to different codec driver in 5.5. So it could be a bug specific to 5.3/5.4. With dmesg+config I can confirm this.

plbossart commented 4 years ago

@giorgionicoletti looks like an ubuntu kernel update gone wrong. Can you try and boot from a previous version with the "advanced options" grub menu and select 5.3.0-40-generic which seemed to work before?

giorgionicoletti commented 4 years ago

@plbossart you're right! I thought I checked and did not update the kernel, but apparently I was wrong. Booting 5.30.0-40 seems to work as before.

plbossart commented 4 years ago

ok it's probably an Ubuntu kernel update that's missing backported patches or not using the right configuration. @jason77-wang is this something you can help with?

giorgionicoletti commented 4 years ago

Aa, ok. So this is something else, there's actually kernel error hit when registering the card:

RIP: 0010:skl_hda_hdmi_jack_init 0x3f/0x110 [snd_soc_skl_hda_dsp]

Could you post full dmesg and your kernel config (.config or config file in /boot your distro has shipped)? The oops is on a code path related to the hdac-hdmi driver. We switched to different codec driver in 5.5. So it could be a bug specific to 5.3/5.4. With dmesg+config I can confirm this.

In case you still need them, I'm uploading both the full dmesg and the config file of 5.30.0-42.

dmesg.txt

kernel-config.txt

plbossart commented 4 years ago

@giorgionicoletti it's pretty clear it's an issue with HDMI, but we'd need to see what changed in the Ubuntu kernel tree between 5.30.0-40 and 5.30.0-42. I don't know where the git tree is personally.

giorgionicoletti commented 4 years ago

@giorgionicoletti it's pretty clear it's an issue with HDMI, but we'd need to see what changed in the Ubuntu kernel tree between 5.30.0-40 and 5.30.0-42. I don't know where the git tree is personally.

I think I will roll back to 5.30.0-40 for the time being since I'm also noticing other weird things going on (the system hangs on reboot most of the time). However, if you need anything please ask. I really appreciate your help!

kv2019i commented 4 years ago

Ok thanks @giorgionicoletti . It seems 5.30.0-42 enables the common HDMI driver (i.e. backports the patchset from upstream 5.5):

http://changelogs.ubuntu.com/changelogs/pool/main/l/linux/linux_5.3.0-42.34/changelog

alsa/sof: change to use hda hdmi codec driver to make hdmi audio on the docking station work (LP: #1855666)

I can see also that in the kconfig you uploaded, the COMMON_HDMI_CODEC option is correctly set:

kernel-config.txt: CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y

But in the kernel oops, code hits a path that is only run if the new HDMI codec is disabled (which should not happen). Let me dig this a bit.

kv2019i commented 4 years ago

@giorgionicoletti Ok, problem rootcaused. I took the same Ubuntu-5.3.0-42.34 kernel and could reproduce it on of my test devices.

Rootcause for failure is this missing patch from the backport: 8ce1cbd6ce0 ASoC: topology: fix soc_tplg_fe_link_create() - link->dobj initialization order

Essentially ASoC core did not call "add_dai_link" callbacks, so the HDMI PCM nodes did not get added. The error was made worse by a missing check on existance of PCM nodes. This too is fixed in Linux upstream (with upstream, a similar bug would have just disabled HDMI).

So in short, this is a bug specific to Ubuntu kernels. I can see this is fixed eoan kernel Ubuntu-5.3.0-43.36 (https://bugs.launchpad.net/bugs/1864061).

kv2019i commented 4 years ago

@Jeff406 wrote:

I have this laptop too, tried many times all the fixes available in arch linux (manjaro) with the latest kernel but no hope. The internal microphone is working unstably and all the issues are still not fixed as mentioned in https://bugzilla.redhat.com/show_bug.cgi?id=1772498#c209 (view other comments). I think we'll have to wait for the update of sof-firmware and related ucm stuffs.

It's a bit hard to act on this info. There are a number of things out of our control in SOF, including the audio codec drivers, pulseaudio integration and packaging of the firmware files for each kernel version. But in general, if a laptop works with one distro, it really should work with others as well, or there is some distro specific issue (that should be fixable by copying the solution from other distros). Based on your info, you have a laptop that should work now. The Redhat/Fedora bug you refer to is closed as fixed. Similarly for Ubuntu, based on above latest 19.10 kernel will work with SOF. For Arch/Manjaro, I found at least this: https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_7)#Audio .. stating it is working.

If there is a specific problem in SOF drivers or firmware, we can try to help, but without specifics, we can't really do that.

giorgionicoletti commented 4 years ago

@giorgionicoletti Ok, problem rootcaused. I took the same Ubuntu-5.3.0-42.34 kernel and could reproduce it on of my test devices.

Rootcause for failure is this missing patch from the backport: 8ce1cbd ASoC: topology: fix soc_tplg_fe_link_create() - link->dobj initialization order

Essentially ASoC core did not call "add_dai_link" callbacks, so the HDMI PCM nodes did not get added. The error was made worse by a missing check on existance of PCM nodes. This too is fixed in Linux upstream (with upstream, a similar bug would have just disabled HDMI).

So in short, this is a bug specific to Ubuntu kernels. I can see this is fixed eoan kernel Ubuntu-5.3.0-43.36 (https://bugs.launchpad.net/bugs/1864061).

Great. Thank you very much!

armantorkzaban commented 4 years ago

Is there a way to install SOF under Debian Bullseye (5.4.0-4-amd64) ? I would like to participate as a tester if possible. Device info:

00:1f.3 Multimedia audio controller [0401]: Intel Corporation Cannon Lake PCH cAVS [8086:a348] (rev 10) DeviceName: Onboard - Sound Subsystem: Dell Cannon Lake PCH cAVS [1028:0924]

plbossart commented 4 years ago

@armantorkzaban do you have DMICs available on this device? You should see something in the dmesg log related to microphones.

If yes, you will need to install the firmware and topology (from https://github.com/thesofproject/sof-bin/tree/stable-v1.4.2) and see how this works.

katsar0v commented 4 years ago

image

So I got the kernel 5.3.0-42-generic as well and see only this, just to confirm. Is there 43 for Ubuntu 18?

astromatt42 commented 4 years ago

Hi, I am experiencing the same issues on LM 19.3 (based on 18.04) with kernel 5.3.0-40 (5.3.0-42 causes many other issues hence I am sticking with -40 for now) I have followed the suggested steps by blacklisting the two drivers and copying the SOF files in the appropriate directory - this results in no sound and no mic. However there may be a hint here, blacklisting and removing the folder with the SOF files brings sound back but no mic. Does this mean that something goes belly up when these files are loaded by the kernel?

DMESG with the files: https://pastebin.com/uPvLv8St

DMESG without the files: https://pastebin.com/7uwYxKDj

alsa-info output: https://alsa-project.org/db/?f=164f61033f3d90808c4f7f072c4e234628e8a9ff

I wish I was better at troubleshooting these things. Thanks for your help,

Matt

kv2019i commented 4 years ago

@katsar0v @mattmax42 Probably in both of your cases, you now have the kernel drivers correctly loading, but you are missing the ALSA UCM files, so Pulseaudio cannot find the sound devices. Please see https://github.com/thesofproject/linux/issues/1877#issuecomment-596600017 for how to do this on older distros.

@mattmax42 That is expected. When you remove the blacklisting, your system goes back to using the older snd-hda-intel driver where the audio DSP is bypassed (the hardware supports usage with and without the DSP). This drive does not support directly connected digital microphones, and on a system like yours, this means microphone won't work. Your system has UCM files for this driver, so Pulseaudio otherwise works.

When you add the blacklist rule, the DSP-enabled SOF driver is loaded (your alsa-info log shows the driver is ok), but as you don't have the UCM files installed, Pulseaudio cannot find the sound devices.

astromatt42 commented 4 years ago

HI, sorry maybe I wasn't quite clear enough: I have blacklisted the two drivers and copied the UCM files as suggested in the post. lscpi reports sof-audio-pci as the Kernel driver in use, however no sound, no mic. I get a dummy output and no input devices. If I keep the blacklisting but remove the files, I get at least my output back.

The relevant lines in the dmesg output for the situation with the blacklisting and the files in place:

https://pastebin.com/AmBCagqB

Thanks,

Matt

astromatt42 commented 4 years ago

Ok, having just rebooted with the files deleted but the blacklist in place: It loads the sof-audio-pci driver, I have a working output device ('sof-skl_hda_card' and 'Multichannel Output sof-skl_hda_card') an input device is listed as 'Multichannel Input sof-skl_hda_card' but does not work. To me this looks like it must be loading the UCM files from somewhere else but maybe hasn't got the right files for the mic?