Skip to content
codepayne edited this page Mar 5, 2023 · 6 revisions

WARNING

Do not use this kernel if you need to use the internal (DMIC) or Headphones MIC. The MICs are working but pulseaudio/pipewire do not recognize them properly.

Description

This repository is based on Pop_OS kernel 6.0.12 with my new sound patches on top. Features of this kernel:

  • The driver now supports the internal mic (DMIC) and the external one from the headphones.
  • No more issues with suspending the laptop since it is based on an older kernel
  • There are no more issues with jack handling, meaning you can insert the headphones, remove the headphones during sleep, wake the laptop and the sound should be still working ok.
  • For people that have a hard time configuring the kernel, a working config file is inside the repository. Just copy the file working-config-huawei-laptops.config to .config:
cp working-config-huawei-laptops.config .config

Then build the kernel

Configuring

If using your own config file you have to enable these config options: SND_SOC_AMD_ACP_COMMON, SND_SOC_AMD_ACP_PCI, SND_AMD_ASOC_RENOIR, SND_AMD_ASOC_REMBRANDT, SND_SOC_AMD_LEGACY_MACH, SND_SOC_AMD_SOF_MACH, SND_SOC_ES8316, SND_SOC_ACPI

Remove any sound drivers that were blacklisted with the old version of the driver (in /etc/modprobe.d/blacklist.conf), this kernel should be loading the correct drivers without any modifications.

Also remove any explicit loading of sound drivers (in /etc/modules-load.d/modules.conf).

Limitations

There is still an issue with this driver: you have to use the alsa-ucm files from , without those files your volume value will not be saved during inserting and removing headphones, and the speaker volume will be low.

In order to install the alsa-ucm files you have to run these commands:

curl -L -o alsa-ucm-conf.tar.gz https://github.com/codepayne/alsa-ucm-conf/archive/refs/heads/acp3x-es83xx.tar.gz
sudo tar xvzf alsa-ucm-conf.tar.gz -C /usr/share/alsa --strip-components=1 "*/ucm" "*/ucm2"

The current alsa-ucm doesn't properly switch between the DMIC and the Headphone MIC, more work is needed here.

Open an issue in github if something that is not a limitation that is mentioned here is not working for you.