breath icon indicating copy to clipboard operation
breath copied to clipboard

Latest commits: no audio on Apollo Lake SOF

Open RodBarnes opened this issue 2 years ago • 10 comments

@MilkyDeveloper I have been running on an image from a fast USB and built from commit bdb8ba which was at the point where my last PR was accepted. Everything has been working fine -- see #176.

I just built an image using the latest commit 8eb866 because I wanted to test the jack detection. But after building it and running apl-sof-setup-audio with a reboot, no audio devices are found. This was odd so I flashed a new USB image from the earlier bdb8ba commit (the one I've been doing my work on) and configured it. Same thing; no audio detected. I don't get it.

Why I am now getting no audio devices detected despite the image I use regularly has all audio working, BT, etc.? Makes no sense.

What do you suggest I check to figure out what is happening here? Ideally, I'd like to have an image from the latest commit that works.

RodBarnes avatar Jun 17 '22 03:06 RodBarnes

I’m confused by this too. SOF devices used to be well supported. The only variable changing is the kernel.

sudo alsa-info (Upload the file made) would be super helpful.

Once I iron this out and pin the kernel to a different version, this should be fixed for good. I don’t have a SOF device, so there’s no easy way for me to test this.

MilkyDeveloper avatar Jun 17 '22 05:06 MilkyDeveloper

Ok, please check my steps here. I've been on the road a lot lately and may have forgotten some things...

  1. I updated my fork to match.
  2. I built an image from main (commit 8eb866) using FEATURES=ISO,KEYMAP bash setup.sh gnome ubuntu jammy-22.04.
  3. I flashed that image to a USB, inserted it, booted from it, and connected WiFI.
  4. Ran apl-sof-setup-audio then rebooted.
  5. Went to Settings > Sound and the only output device is Dummy output.

Am I missing something here? Output of sudo alsa-info is here.

I then set my head to commit bdb8ba (the commit where my working copy was built), built a fresh image, and repeated steps 3-5. I get the same results: no output devices found.

However, if I boot from my regular-use image (built from commit bdb8ba), it continues to show all devices and everything works fine. For comparison, output of sudo alsa-info from that image is here.

Comparing the two outputs:

  • The working image is showing a "tree" under Card/Driver. The non-working image shows nothing there; no tree is found.
  • Under "All loaded modules", the working image shows three additional modules not found in the other output: snd_soc_skl, snd_soc_sst_dsp, and snd_soc_sst_ipc.

RodBarnes avatar Jun 17 '22 16:06 RodBarnes

echo 'blacklist snd_hda_intel' | sudo tee /etc/modprobe.d/alsa-disable-sst

Thanks for comparing these two outputs. I’ve removed the snd_soc_skl line.

MilkyDeveloper avatar Jun 17 '22 17:06 MilkyDeveloper

Clarification: Did you want me to run that command? Or should I try another pull/build?

RodBarnes avatar Jun 17 '22 18:06 RodBarnes

You should solely run the command.

MilkyDeveloper avatar Jun 17 '22 20:06 MilkyDeveloper

I ran the command on the latest image I'd built from 8eb866. Nothing seemed different. I rebooted; still no output devices.

RodBarnes avatar Jun 17 '22 21:06 RodBarnes

I see PipeWire is installed, which might be incompatible. Everything else is detected fine. This explains a lot.

Try uninstalling PipeWire but keeping PulseAudio. If that doesn’t work, uninstall PulseAudio too and tell me the output of speaker-test.

MilkyDeveloper avatar Jun 17 '22 22:06 MilkyDeveloper

Interesting... I distinctly remember that Pipewire did NOT work on my system; you suggested it during our original testing with audio -- it worked for one user (I forget who) -- but it totally failed for me and I had to go back to using only PulseAudio.

On the 8eb866 image, I did sudo apt remove pipewire then rebooted. Now it only boots to command line; no DE. Very weird...

I just did a check on my working image -- doing apt list | grep pipewire and this was the output:

rod@sleek:~$ apt list | grep pipewire gstreamer1.0-pipewire/jammy,now 0.3.48-1ubuntu1 amd64 [installed,automatic] libpipewire-0.3-0/jammy,now 0.3.48-1ubuntu1 amd64 [installed,automatic] libpipewire-0.3-common/jammy,now 0.3.48-1ubuntu1 all [installed,automatic] libpipewire-0.3-dev/jammy 0.3.48-1ubuntu1 amd64 libpipewire-0.3-modules/jammy,now 0.3.48-1ubuntu1 amd64 [installed,automatic] pipewire-audio-client-libraries/jammy 0.3.48-1ubuntu1 amd64 pipewire-bin/jammy,now 0.3.48-1ubuntu1 amd64 [installed,automatic] pipewire-doc/jammy 0.3.48-1ubuntu1 all pipewire-media-session/jammy,now 0.4.1-2ubuntu1 amd64 [installed,automatic] pipewire-pulse/jammy 0.3.48-1ubuntu1 amd64 pipewire-tests/jammy 0.3.48-1ubuntu1 amd64 pipewire/jammy,now 0.3.48-1ubuntu1 amd64 [installed,automatic]

This is odd given that: 1) I am sure it had been removed, and 2) this is the working image.

RodBarnes avatar Jun 17 '22 22:06 RodBarnes

I think:

systemctl —user stop pipewire.socket

would do the trick. I forgot that Pipewire is now a dependency of GNOME (though PA is still compatible).

MilkyDeveloper avatar Jun 17 '22 23:06 MilkyDeveloper

Ran that command and rebooted. It was looking more like the normal boot messages but still came to command-line.

NOTE: I will be leaving tomorrow morning for another week-long trip. I will pick this up when I return and will be home for a month; sufficient time to dig into this deeply and figure out what is different between the two images.

RodBarnes avatar Jun 18 '22 00:06 RodBarnes